我們在定義函數(shù)的時(shí)候是可以指定任意個(gè)參數(shù)的蕾哟,有些參數(shù)會(huì)進(jìn)行默認(rèn)值的設(shè)置
代碼如下:
def ask_ok(prompt, retries=4, reminder='Please try again!'):
while True:
ok = input('請輸入yes或no: ')
if ok in ('y', 'ye', 'yes'):
return True
if ok in ('n', 'no', 'nop', 'nope'):
return False
retries = retries - 1
if retries < 0:
quit()
print(prompt, reminder)
ask_ok(prompt='OK to overwrite the file?', retries=2, reminder='Come on, only yes or no!')
這里面涉及到 input 函數(shù),它在對待純數(shù)字輸入時(shí)具有自己的特性芍瑞,返回所輸入的數(shù)字的類型( int, float )浅蚪。
注意事項(xiàng)
1、input() 希望能夠讀取一個(gè)合法的 python 表達(dá)式
即輸入字符串的時(shí)候必須使用引號(hào)將它括起來意乓,否則它會(huì)引發(fā)一個(gè) SyntaxError 樱调。
2、python3 里 input() 默認(rèn)接收到的是 str 類型
(可用type輸出類型)
ok = input(123)
print(type(ok))
# 結(jié)果
<class 'str'>
3届良、如果 input() 指定了函數(shù)中的參數(shù)名笆凌,那么想輸出print()輸出所有變量項(xiàng),該如何做士葫?
很多時(shí)候我們都是被眼睛看到的給欺騙了乞而,比如我給 input函數(shù) 指定了prompt 參數(shù),那么運(yùn)行時(shí)只看到了prompt輸出慢显,函數(shù)中的其余變量并沒有輸出
實(shí)際上我們看到的只是input的輸出爪模,需要我們在運(yùn)行終端中繼續(xù)輸入欠啤,print 中的參數(shù)值就會(huì)輸出到頁面上了
把 input()的數(shù)據(jù)修改下,就更容易理解了
ok = input('請輸入函數(shù)變量')
4屋灌、位置參數(shù)必須寫在關(guān)鍵字參數(shù)之前
ask_ok(prompt = 'OK to overwrite the file?', 2)
如果調(diào)用以上參數(shù)會(huì)報(bào)錯(cuò)
SyntaxError: positional argument follows keyword argument