作者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
1F:推 KSJ:谢谢您的指正 <(_ _)> 02/21 13:18
2F:→ uranusjr:Python 的风格很鼓励使用 exception, 事实上也很好用 02/21 13:48