2015-02-24 35 views
1

python valueerror如何避免ValueError并在python2中获取整数输入?

#!/usr/bin/env python 

# getting user input 
height = int(raw_input("height: ")) 

while (height < 0 or height > 23): 
    height = int(raw_input("height: ")) 

# building the "pyramid" 
spaceCount = height 
hashCount = 1 

for i in range(height): 
    assert height != 0 
    hashCount += 1 
    spaceCount -= 1 
    print " " * spaceCount, 
    print "#" * hashCount 

代码应该保持提示用户输入不为整数。但是如何?

+0

不要在这里复制和粘贴图像。复制代码。 – user2097159 2015-02-24 17:29:29

回答

1

您需要捕捉异常。

height = 24 
while (height < 0 or height > 23): 
    try: 
     height = int(raw_input("heightL ")) 
    except ValueError: 
     print "Height needs to be an integer. Try again." 
0

您可以在无限循环中读取输入,等待用户输入有效整数。例如:

while True: 
    try: 
    val = int(raw_input("Enter an integer:")) 
    except ValueError: 
    print "I said an integer" 
    else: 
    # ValueError was not thrown, which means the user entered a valid integer 
    break