【发布时间】:2015-04-23 10:38:19
【问题描述】:
我有一个任务
打印您输入的列表中的最小值。首次输入的值 定义列表的长度。每个下一个值都应该放在 一一列举。使用运算符 for。
n 之前定义,通过输入和start_n = 1
def list2_func():
global list2
list2 = []
for i in xrange(start_n, n + 1):
list2.append(raw_input('Enter the %s number: ' % i))
list2_check()
def list2_check():
global start_n
try:
value = int(list2[-1])
except ValueError:
print "Please use only 0-9 keys. Re enter %s number" % len(list2)
start_n = len(list2)
list2_func()
else:
start_n = start_n + 1
每次我输入任何未通过 try 的键时,它都会再次要求相同的值 - 这很棒。但是当我输入我的最后一个值(例如n = 4,所以第 4 个值)时,程序要求我再次输入。最后我得到了2*n - 1 的值——这不是我想要的。
您能否建议我使用其他方法来检查输入的值是否为数字?或者指出我代码中的错误!
我使用的是 python 2.7。
【问题讨论】:
-
list2_check() 函数应该解耦。它应该只检查一个数字是否是数字。它不应该调用调用者。在 for 循环中,添加一个 while 循环,该循环会一直循环到人员输入有效数字为止。
标签: python list python-2.7 for-loop try-catch