2016-07-27 253 views
-2

有人可以帮助我吗?在while循环中嵌套尝试

我在while语句中嵌套try语句存在问题。代码如下所示:

number = raw_input("what is the number? ") 

if number < 11: 
    Print "that is good!" 

else: 
    print "your number had to be lower then 11" 

    raw_input("kies een getal: ") 

while number < 11: 

    try: 
    number == int(number) 

    except ValueError: 
    raw_input(" try again: ") 

当我运行代码时,它将跳过整个循环!

有人可以解释这一点,帮助我吗?

回答

3

raw_input返回一个字符串。你不想那样。

大部分代码没有意义。这是我假设你想做的事:

  • 从用户接受输入。

  • 如果可以将输入转换为数字,请将其转换并继续。否则,请继续询问输入。

  • 如果输入作为数字小于11,那很好。否则,请继续询问输入。

这里是一种在Python做到这一点:

def get_number(): 
    while True: 
     try: 
      number = int(raw_input("what is the number? ")) 
      return number 
     except ValueError: 
      print("Enter a number, you fool!") 

num = get_number() 

while num >= 11: 
    print("Number should be less than 11...") 
    number = get_number() 
+1

有趣的部分是当我看到你傻瓜! :P –

+0

@sameerasy我喜欢用消极的强化来消除意愿,给用户造成不好的影响。 :) – erip

0

那是什么脚本的目的是什么?两个raw_input命令没有存储在任何变量中,并且'number'的值在循环中不会改变,所以它会一直运行,直到您用Ctrl + C停止它为止。

如果循环未执行,那是因为条件编号< 11首先不被满足。

+0

它是一个脚本的一部分,这是我的第一个脚本没有任何帮助 –