第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Python中的三元布爾數(shù)學(xué)

Python中的三元布爾數(shù)學(xué)

嗶嗶one 2022-11-01 16:58:04
我寫了這個(gè)小腳本來計(jì)算狗年。前兩個(gè)狗年是人類的 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)我在想更多的事情:我想指定數(shù)學(xué)運(yùn)算,給它們兩個(gè)名稱,一個(gè)用于 0-2 的數(shù)字,另一個(gè)用于 2 及以上的數(shù)字。然后我想用一個(gè)布爾值來決定我想應(yīng)用哪個(gè)數(shù)學(xué)過程。這在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)
查看完整描述

2 回答

?
三國紛爭(zhēng)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超7個(gè)贊

雖然問題沒有明確表達(dá),但您似乎正在尋找存儲(chǔ)函數(shù)并有條件地調(diào)用這些函數(shù)的方法。


好消息是,在 python 中,函數(shù)是第一類對(duì)象。


所以你可以做這樣的事情 -


>>> handlers={

...  'valid':lambda human_age:human_age * 10.5,

...  '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 handler

25

為了進(jìn)一步回應(yīng) OP 的評(píng)論,無論如何,lambda 在這里都不是必需的。以下是具有簡單功能的相同代碼 -


>>> def invalid_handler(human_age): return ((((human_age - 2) * 4) + 21))

... 

>>> def valid_handler(human_age): return human_age * 10.5

... 

>>> handlers = {

...  'valid': valid_handler,

...  'invalid': invalid_handler}

>>> 

>>> print(handlers[handler_key](human_age))

25

>>> human_age=1

>>> print(handlers[handler_key](human_age))

17

我也會(huì)借此機(jī)會(huì)對(duì) python 和幾乎所有現(xiàn)代編程語言進(jìn)行一次簡短的咆哮——

在現(xiàn)代編程語言中,為什么有這么多方法可以做同樣的事情?

Python Zen,沒有。13、州——

應(yīng)該有一種——最好只有一種——明顯的方法來做到這一點(diǎn)。

然而,有多種方法可以達(dá)到相同的結(jié)果。我真的希望現(xiàn)代編程語言能夠消除添加盡可能多的特性的誘惑,而是專注于更好地完成最重要的工作——速度、工具、更好的版本控制、框架。

我來自“C”背景,我相信它是迄今為止創(chuàng)造的最好的編程語言。


查看完整回答
反對(duì) 回復(fù) 2022-11-01
?
富國滬深

TA貢獻(xiàn)1790條經(jīng)驗(yàn) 獲得超9個(gè)贊

我覺得用就夠了


age = input("How old are you? ").val

print "That's " + age*7 + " in dog years."


查看完整回答
反對(duì) 回復(fù) 2022-11-01
  • 2 回答
  • 0 關(guān)注
  • 144 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)