Python中的三元布尔数学

我写了这个小脚本来计算狗年。前两个狗年是人类的 10.5 年,之后的所有其他年份都是 4 年。


human_age = int(input("Enter the human age to convert it to doggy years: "))

    valid = (human_age <=2)

    def convert_to_dog_years(human_age):

        if valid:

            dog_years = human_age * 10.5

            print('Dog age is:', int(dog_years))

        elif not valid:

            dog_years = ((((human_age - 2) * 4) + 21))

            print('Dog age is:', int(dog_years))

    convert_to_dog_years(human_age)

我在想更多的事情:我想指定数学运算,给它们两个名称,一个用于 0-2 的数字,另一个用于 2 及以上的数字。然后我想用一个布尔值来决定我想应用哪个数学过程。


这在python中可能吗?


0-2    = dog_years = human_age * 10.5

>=2    = dog_years = ((((human_age - 2) * 4) + 21))


human_age = int(input("Enter the human age to convert it to doggy years: "))

valid = (human_age <=2)

def convert_to_dog_years(human_age):

    if valid 0-2 else 2&up

        print('Dog age is:', int(dog_years))

convert_to_dog_years(human_age)


哔哔one
浏览 113回答 2
2回答

三国纷争

虽然问题没有明确表达,但您似乎正在寻找存储函数并有条件地调用这些函数的方法。好消息是,在 python 中,函数是第一类对象。所以你可以做这样的事情 ->>> handlers={...&nbsp; 'valid':lambda human_age:human_age * 10.5,...&nbsp; 'invalid': lambda human_age:((((human_age - 2) * 4) + 21))}>>> handler_key = 'valid' if human_age <=2 else 'invalid'>>> human_age=3 #In your case, take input here>>> print(handlers[handler_key](human_age)) #call handler25为了进一步回应 OP 的评论,无论如何,lambda 在这里都不是必需的。以下是具有简单功能的相同代码 ->>> def invalid_handler(human_age): return ((((human_age - 2) * 4) + 21))...&nbsp;>>> def valid_handler(human_age): return human_age * 10.5...&nbsp;>>> handlers = {...&nbsp; 'valid': valid_handler,...&nbsp; 'invalid': invalid_handler}>>>&nbsp;>>> print(handlers[handler_key](human_age))25>>> human_age=1>>> print(handlers[handler_key](human_age))17我也会借此机会对 python 和几乎所有现代编程语言进行一次简短的咆哮——在现代编程语言中,为什么有这么多方法可以做同样的事情?Python Zen,没有。13、州——应该有一种——最好只有一种——明显的方法来做到这一点。然而,有多种方法可以达到相同的结果。我真的希望现代编程语言能够消除添加尽可能多的特性的诱惑,而是专注于更好地完成最重要的工作——速度、工具、更好的版本控制、框架。我来自“C”背景,我相信它是迄今为止创造的最好的编程语言。

富国沪深

我觉得用就够了age = input("How old are you? ").valprint "That's " + age*7 + " in dog years."
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python