設計
我認為您應該盡可能地將迴圈響應和獲取已驗證響應這兩個問題分開,您可以通過編寫乙個函式來實現這一點,該函式處理驗證使用者輸入的問題。在
這樣的函式需要知道如果使用者的輸入無效,如何提示使用者以及如何告訴使用者,因此我們必須為函式提供兩個引數,但我們也為引數提供合理的預設值。。。在
為了檢查輸入的正確性,我們使用乙個try: ... except: ...子句,如果try的主體出現錯誤,except將檢視錯誤,如果它是乙個特定的錯誤(對於我們,valueerror),則執行except的主體。在
except的主體以對我們定義的函式的呼叫結尾,因為這是另一種迴圈方式,如果你考慮到發生了什麼。。。在這種情況下,這是一種更簡單的迴圈方式。在
實施也就是說,在理解我們的職能需要的基礎上,我們寫下:def get_integer(prompt='enter an integer: ',
err_prompt='not an integer, please try again.'):
answer = input(prompt)
try:
number = int(answer)
return number
except valueerror:
print(err_prompt)
return get_integer(prompt, err_prompt)
測試現在再做一點測試
^$把它們放在一起
我使用了你的實現,因為它確實足夠好,但是我稍微改變了字串的大小寫,不再是try ... except,因為它隱藏在get_integer()中,並且引入了乙個在正常終止時執行的^{} clause to the ^{} loop,這樣使用者就可以知道程式停止的原因了。在import random
def get_integer(prompt='enter an integer: ',
err_prompt='not an integer, please try again.'):
answer = input(prompt)
try:
return int(answer)
except valueerror:
print(err_prompt)
return get_integer(prompt, err_prompt)
print("hello, what is your name?")
gg = input()
print("well, " + gg + ", i am thinking of a number between 0 and 20...")
number = random.randint(0,20)
for taken in range(1,7):
print("take a guess.")
guess = get_integer()
if guess < number:
print("your guess is too low.")
elif guess > number:
print("your guess is too high.")
else:
print("your guess is exact!")
break
else:
print("too many attempts. you lose!")
python人生苦短 人生苦短,我用Python
python學習筆記 每日總結,反思.學習,1,注釋 單行注釋 注釋內容 多行注釋 注釋內容 快捷鍵 ctrl 2,變數 type 變數 用來檢視變數型別 變數型別,程式中需要特別注意變數型別,很容易報錯,或者很熟悉變數型別的報錯,錯了再改也成.格式轉化 紅線常用 bool布林型別 ture和fla...
Python如何判斷某天是星期幾
1 依次輸入要查詢日期的年 月 日 2 將輸入的日期與2018年進行比較 解釋一下為什麼要以2018年去劃分,其實不管輸入的年份大於還是小於2018年,都是閏年天數加366,否則天數加365,其最主要的差別是在月份的計算上,其差別可以具體參考 具體思路見下面的 隨機輸入日期,計算出星期幾 print...
一周學好python 人生苦短,我用Python
到現在我已經學了兩周的python了,下面說一下我對python的一些小體悟。我是化學專業的學生,學習python對我的未來會有很大幫助。未來當我熟悉掌握python以後,我可以用它做很多事情。通過計算機建模 模擬反應的程序,可以熟悉反應的機理為研究提供方便 用爬蟲軟體篩選常考高頻詞彙可以幫助我高效...