作者kanako (我是香民)
看板Python
標題Re: 判斷raw_input輸出資料範圍的問題
時間Mon Feb 21 09:44:20 2011
※ 引述《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
推 KSJ:謝謝您的指正 <(_ _)> 02/21 13:18
→ uranusjr:Python 的風格很鼓勵使用 exception, 事實上也很好用 02/21 13:48