2017-06-16 39 views
-4

进入我很新的蟒蛇,我试图创建使用基于如果一个int输入(int(input()))得到正确的输入类的if语句的程序。例如:如果我有去Var1 = int(input("Enter a number:..."))输入,并且用户输入hello那里,这会,而不是给一个错误信息,进入的一个if声明的选项之一。如果基于无效类的语句在Python

由于代码的其余部分没有被创建但我不能发表,但我已经试过,我想出了解决没有成功这个问题的所有方面......谁能帮助我请?

+1

什么当用户在这种情况下键入“hello”时会发生?你有例外吗?也许异常处理是前进的方向? – cdarke

+0

检查'string.isdigit()'或'string.isalpha()'函数。这将解决您的要求。当你键入字母,当输入是一个整数输入你得到一个错误,而是的,我希望能够在两种不同势段来划分输入在if语句 – voidpro

+0

@cdarke,一个是如果答案是一个整数如果没有,另一个。 –

回答

0

你可以围绕你输入一个try..except块和捕捉ValueErrorint()尝试一个非整数转换成整数,将会发生:

try: 
    var1 = int(input("Enter an integer: ")) 
except ValueError: 
    print("That's not an integer!") 

你甚至可以强制用户输入一个整数通过将其放置在一个循环:

var1 = None 
while var1 is None: 
    try: 
     var1 = int(input("Enter an integer: ")) 
    except ValueError: 
     print("That's not an integer!") 

或者您也可以在以后的时间做检查:

var1 = input("Enter an integer: ") 
try: 
    var1 = int(var1) 
    print("Thank you for entering an integer.") 
except ValueError: 
    print("That's not an integer!") 
+0

谢谢,它工作正常! –

0

你可以使用try /除外:

while(True): 
    try: 
     var1 = int(input("enter a number: ")) 
     break 
    except ValueError: 
     print('it should be a number') 

注意:不要使用try /只是没有Execption类型,如:

try: 
    printo('hi') 
except: 
    pass 

它将所有的除外甚至excetions语法错误

+0

我刚刚从zwer得到了同样的答案,它的工作原理,感谢您的帮助! –