1
def skjerm():

    try:

        tall=int(input("Skriv inn et tall: "))
        if 10<tall<1:

            skjerm()
        else:
            main(tall)

    except ValueError:
        print ("Error")
        skjerm()

如果输入 <1 或 >10,则尝试重新运行 skjerm()。但是当我写下提到的值时它什么也没做。使用 3.2

4

3 回答 3

0

链式比较与 结合and,所以

10 < tall < 1

是相同的

(10 < tall) and (tall < 1)

这总是错误的。

试试(10 < tall) or (tall < 1)吧。

于 2012-10-30T00:01:09.787 回答
0

如果我没有错,那么您应该使用if 10<tall or tall<1:代替if 10<tall<1,因为后者将永远是False

于 2012-10-29T23:46:26.327 回答
0

利用:

if not (1 <= tall <= 10): # or < if that's really what you want
    pass # do whatever

或者,您可以这样做:

if tall not in range(1, 11):
    pass # do something
于 2012-10-29T23:46:45.340 回答