2016-05-20 63 views
0

我不太确定如何说出这个问题,所以请耐心等待。我对python是半新的。我有这个非常简单的程序使用raw_input,我想测试用户输入是否可以转换为int。我知道的raw_input返回一个字符串Python如果转换str/int

while True: 
    user = raw_input('?') 

东西测试用户是否可以转换为INT,如果是,那么将其转换,如果不把它作为一个字符串

回答

1

您可以使用try/except和离开except空的情况下(与pass):

userInput = raw_input("Give some input: ") 

try: 
    userInput = int(userInput) 
except ValueError: 
    pass 
+0

(1)不要使用原始除非你能避免它。在这种情况下使用'ValueError',因为这是'int'引发的错误。 (2)取决于OP接下来要做的事情,可能应该在除外块中进行。现在这个程序发生的结果是一样的,如果它稍后尝试使用'userInput',它会在输入无效时引发另一种错误。 –

+0

是的,你对'ValueError'的捕获是正确的,我编辑了我的答案。关于你的第二点,虽然:OP指定:“如果是的话,然后转换它,如果不把它作为一个字符串'在技术上,我的答案没有错。是的,只要可能,将变量从字符串更改为int就没有多大意义,因为每次要在稍后使用该变量时都必须检查该变量,但是这已经到了向OP决定他想如何处理这个问题。 – Keiwan

+0

对不起,我误解了代码,我现在看到它是有道理的。 –