我正在尝试编写一个脚本,它接受数字的输入,然后进行检查以查看
(a)输入实际上是一个数字,以及 (b) 所讨论的数字小于或等于17。在
我尝试过各种各样的“如果”语句都没有结果,而现在我正试图把我的脑袋绕在“try”语句上。这是我迄今为止最好的尝试:
def listlength():
print "How many things (up to 17) do you want in the list?"
global listlong
listlong = raw_input("> ")
try:
listlong = int(listlong)
listlong <= 17
except:
print "Gotta be a number less than 17, chumpy!"
listlength()
liststretcher()
它适用于try中的第一个元素:如果它不是数字,我必须再次运行listlength函数。但第二个元素(<;=17)被完全忽略。在
我也试过了
^{pr2}$…但这仍然只给了我一个功能性的第一个检查,而完全忽略了第二个检查。在
如果我有两个try语句,也会得到相同的结果:
try:
listlong = int(listlong)
except:
print "Gotta be a number, chumpy!"
listlength()
try:
listlong <=17
except:
print "Gotta be less than 17!"
listlength()
liststretcher()
有没有一种方法可以尝试:检查两件事,并要求这两件事都通过,然后才能越过异常?或者,在转到liststretcher()命令之前,是否必须在同一定义中创建两个不同的try:语句?在
对于S.Lott的回应,下面:我的意图是“try:listlong<;=17”将检查“listlong”变量是否小于或等于17;如果检查失败,它将移动到“except”;如果它通过,它将转到下面的liststretcher()。在
读到目前为止的答案,我有八件事要跟进。。。在
您将需要使用if语句来检查关系,并在适当的情况下手动引发异常。在
您缺少的是,以及S.Lott试图引导您找到的是,
listlong <= 17
语句没有引发异常。它只是一个条件表达式,产生True或False,然后忽略这个值。在您的意思可能是
assert( listlong <= 17 )
,如果条件为False,它将抛出一个AssertionError异常。在你有大部分答案:
相关问题 更多 >
编程相关推荐