Re: 判斷raw_input輸出資料範圍的問題

看板Python作者 (我是香民)時間14年前 (2011/02/21 09:44), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串3/3 (看更多)
※ 引述《KSJ (阿真)》之銘言: : try: : : guessed_num = int(raw_input()); : except ValueError: : print "Maybe some error, Please Input a number between 1 and 10." : return : 用例外(exception)的方式處理 蠻鼓勵的 : 題外話 raw_input()裡面是可以加字的 也可以把提示輸入的文字放裡面 : 就不用換行了 : 但其實你要用 if 也可以如下 : if guessed_num not in [1,2,3,4,5,6,7,8,9,10]: : print u"錯誤的訊息" #之類的文字… : return : 反正也才10個 ok的 感謝您 我後來改成以下的方式: def get_input(): try: data = int(raw_input()) except ValueError: print "Wrong input, input again!!" get_input() else: global guessed_num guessed_num = data print "guessed_num in get_input= %s" % guessed_num 第一時間沒想到try except是因為以前寫C的時候都被教導那是很耗資源的方式 這個方式可以解決 還有我試了用if guessed_num not in [1,2,3,4,5,6,7,8,9,10]: 這樣子不管我輸入甚麼都判定為錯誤的輸入 應該是因為字串與數值是不同的型態 正確的應該是 def get_input(): data = raw_input() print "data = %s" %(data) if data in ['1','2','3','4','5','6','7','8','9','10']: return int(data) else: print "Wrong input, input again!!" get_input() 感謝您的意見 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.152.1

02/21 13:18, , 1F
謝謝您的指正 <(_ _)>
02/21 13:18, 1F

02/21 13:48, , 2F
Python 的風格很鼓勵使用 exception, 事實上也很好用
02/21 13:48, 2F
文章代碼(AID): #1DOSDtB_ (Python)
文章代碼(AID): #1DOSDtB_ (Python)