2015-04-21 26 views
1

我运行的代码可能会出错,但我想运行它只要 没有错误。只要没有错误,如何运行while循环

我想过这样的事情:

while ValueError: 
    try: 
     x = int(input("Write a number: ")) 
    except ValueError: 
     x = int(input("You must write a number: "))` 
+0

@jonrsharpe你闪亮的金锤怎么了? –

+1

@BhargavRao没有[标签:蟒蛇]在最初的修订版本(或没有在[标签:python-3.x]金牌徽章,取决于你如何看待它!) – jonrsharpe

回答

4

你是相当接近

while True: 
    try: 
     x = int(input("Write a number: ")) 
     break 
    except ValueError: 
     print("You must write a number: ") 

要了解更多关于异常处理,请参考documentation

+1

感谢您@Padraic ...用于不用大脑! –

+0

怎么样一个'else'块? – Zizouz212

+0

@ Zizouz212更多* Pythonic *,这更直观*。你可以选择你喜欢的任何东西! :) –

1

作为除了Bhargav的回答,我想我会提一个选项:

while True: 
    try: 
     x = int(input("Write a number: ")) 
    except ValueError: 
     print("You must write a number: ") 
    else: 
     break 

执行try语句。如果抛出异常,则except块将接管并运行。如果没有抛出异常,则执行else块。不用担心,如果执行except块,else块将不会被调用。 :)

此外,你应该注意到,这个答案被认为是更Pythonic,而Bhargav的答案可以更容易阅读和更直观。