python 关于异常处理 try...except... 的两个案例
生活随笔
收集整理的這篇文章主要介紹了
python 关于异常处理 try...except... 的两个案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.輸入若干個成績,求所有成績的平均分。每輸入一個成績后詢問是否繼續輸入下一個成績,回答“yes”就繼續輸入下一個成績,回答“no”就停止輸入成績。
numbers = [] #使用列表存放臨時數據 while True:x = input('請輸入一個成績:')try: #異常處理結構 numbers.append(float(x))except:print('不是合法成績')while True:flag = input('繼續輸入嗎?(yes/no)').lower()if flag not in ('yes', 'no'): #限定用戶輸入內容必須為yes或noprint('只能輸入yes或no')else:breakif flag=='no':breakprint(sum(numbers)/len(numbers))2.假設一共有一排5個洞口,小狐貍最開始的時候在其中一個洞口,然后人隨機打開一個洞口,如果里面有小狐貍就抓到了。如果洞口里沒有小狐貍就明天再來抓,但是第二天小狐貍會在有人來抓之前跳到隔壁洞口里。
''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' from random import choice, randrangedef catchMe(n=5, maxStep=10):'''模擬抓小狐貍,一共n個洞口,允許抓maxStep次如果失敗,小狐貍就會跳到隔壁洞口'''# n個洞口,有狐貍為1,沒有狐貍為0positions = [0] * n# 狐貍的隨機初始位置oldPos = randrange(0, n)positions[oldPos] = 1# 抓maxStep次while maxStep >= 0:maxStep -= 1# 這個循環保證用戶輸入是有效洞口編號while True:try: #異常處理部分x = input('你今天打算打開哪個洞口呀?(0-{0}):'.format(n - 1))# 如果輸入的不是數字,就會跳轉到except部分x = int(x)# 如果輸入的洞口有效,結束這個循環,否則就繼續輸入assert 0 <= x < nbreakexcept:# 如果輸入的不是數字,就執行這里的代碼print('要按套路來啊,再給你一次機會。')if positions[x] == 1:print('成功,我抓到小狐貍啦。')breakelse:print('今天又沒抓到。')print(positions)if oldPos == n - 1:newPos = oldPos - 1elif oldPos == 0:newPos = oldPos + 1else:newPos = oldPos + choice((-1, 1))positions[oldPos], positions[newPos] = 0, 1oldPos = newPoselse:print('放棄吧,你這樣亂試是沒有希望的。')# 啟動游戲,開始抓狐貍吧 catchMe()總結
以上是生活随笔為你收集整理的python 关于异常处理 try...except... 的两个案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python--unique()与nun
- 下一篇: Python基础教程:input()输入