Python if语句

时间:2013-03-07 09:32:55

标签: python

print("this program will calculate the area")

input("[Press any key to start]")

width = int(input("enter width"))
if width < 0:
    print ("please chose a number between 0-1000")
    width = int(input("enter width"))

if width > 1000000:
    print ("please chose a number between 0-1000")
    width = int(input("enter width"))

height = int(input("Enter Height"))

area = width*height

print("The area is:",area)

有没有办法可以压缩下面的代码,例如将它们组合在一起,这样我就不必编写相同的代码行,除了那些较少然后更大的语句两次。

width = int(input("enter width"))
if width < 0:
    print ("please chose a number between 0-1000")
    width = int(input("enter width"))

if width > 1000000:
    print ("please chose a number between 0-1000")
    width = int(input("enter width"))

我试过了

width = int(input("enter width"))
if width < 0 and > 10000:
    print ("please chose a number between 0-1000")
    width = int(input("enter width"))

但我没有爱。

我也不想输入

width = int(input("enter width"))
如果可以帮助的话,

两次声明。

由于 本

6 个答案:

答案 0 :(得分:7)

有几种方法可以做到这一点。最明确的是:

if width < 0 or width > 10000:

但我最喜欢的是:

if not 0 <= width <= 10000:

答案 1 :(得分:3)

你需要一个循环。否则,如果用户是持久的,则仍然可以输入无效值。 while语句将循环与条件组合在一起 - 它会一直循环直到条件被破坏。

width = -1
while width < 0 or width > 10000:
    width = int(input("enter width as a positive integer < 10000"))

您在原始问题中使用if语句在语法上是不正确的:

if width < 0 and > 10000:

你想:

if not (0 < width < 1000):
    ask_for_new_input()

或者,以更明确的方式:

if width < 0 or width > 1000:
    ask_for_new_input()

答案 2 :(得分:0)

你想说

if width < 0 or width > 10000:
    print ("please chose a number between 0-1000")
    width = int(input("enter width"))

答案 3 :(得分:0)

if width < 0 and > 10000:

应该阅读

if width < 0 or width > 10000:

可替换地:

if not 0 <= width <= 10000:

答案 4 :(得分:0)

你错过了可变宽度

if width < 0 or width> 10000:

答案 5 :(得分:0)

如果:

print("this program will calculate the area")

res = raw_input("[Press any key to start]")

def get_value(name):
    msg = "enter {0}".format(name)
    pMsg = "please choose a number between 0-1000"
    val = int(input(msg))
    while val not in xrange(1, 1001):
        print pMsg
        val = int(input(msg))
    return val


print("The area is: {0}".format(get_value('width') * get_value('height')))