较短版本的try / except while while循环?

时间:2017-01-19 07:02:04

标签: python python-3.x

基本上我只是想知道是否有任何方法可以使这段代码更简洁。我甚至不知道如何正确地提出这个问题,但是我可以编写或导入一个模块或表达来帮助吗?

while True:
    try:
        guess = int(input("Enter a number here: "))
        break
    except:
        print("Please try again.")

在自由语言中,它可能看起来像:

test:
    dothing("user thing")
if issues:
    print("try again")
    try again

我试图阻止用户输入类似字符串的内容并破坏整个程序的错误。如果这看起来很愚蠢,我道歉;在基本上多年没有使用它之后我又开始进入Python了,我可能会忘记一些简单的事情。

提前多谢你们。

1 个答案:

答案 0 :(得分:3)

您的自然语言让我想起了Fortran 4等古老的非结构化语言或旧的基础知识......

在这些语言中,我们习惯转到行引用:

100    CALL INPUTVAL(IVAL, IERR)
       IF IERR == 0 GOTO 200
       PRINT 50
50     FORMAT('ERROR TRY AGAIN')
       GOTO 100

200    CONTINUE

初看起来可能看起来更自然,但很快就会出现意大利面条代码。这就是为什么发明了干净循环和结构化错误处理(尝试除外)的原因。不要后悔旧的 goto 风格并坚持标准结构化构造