Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 这个try-except子句如何识别整数?_Python - Fatal编程技术网

Python 这个try-except子句如何识别整数?

Python 这个try-except子句如何识别整数?,python,Python,我是编程新手,我试图理解Python如何解释命令,在本例中,我很难理解Python如何使用try-except子句识别整数、浮点数或字符串。这是我的密码(请原谅我的无礼) 这段代码按预期工作,但是当我输入一个浮点数时,程序如何抛出一个异常以允许try-except子句执行?例如,当我在执行程序时输入“1.0”时,会发生以下情况: DETECTING INPUT TYPE WITH LIMITED CHANCES Enter an integer and ONLY AN INTEGER. YOU

我是编程新手,我试图理解Python如何解释命令,在本例中,我很难理解Python如何使用try-except子句识别整数、浮点数或字符串。这是我的密码(请原谅我的无礼)

这段代码按预期工作,但是当我输入一个浮点数时,程序如何抛出一个异常以允许try-except子句执行?例如,当我在执行程序时输入“1.0”时,会发生以下情况:

DETECTING INPUT TYPE WITH LIMITED CHANCES
Enter an integer and ONLY AN INTEGER. YOU HAVE ONLY 5 CHANCES

1.0
WHAT DID I TELL YOU? YOU PUT IN A FLOATING NUMBER! DO IT RIGHT!
Enter an integer and ONLY AN INTEGER
然后,当我纠正自己并输入一个整数时,它是什么样子的:

1
Good... very good, here is your number: 1
但是,如果我在控制台中手动输入以下内容,则不会出现错误。相反,int()命令执行它应该执行的操作,并将浮点数转换为整数

abc=1.0

int(abc)
Out[3]: 1
try except子句对int()运算符做了什么来引发异常并允许我的代码正确执行


谢谢大家!

输入的结果是一个字符串。要在控制台中复制它,您应该执行以下操作

abc = "1.0"

然后,
int(abc)
将按预期引发ValueError。

输入的结果是一个字符串。要在控制台中复制它,您应该执行以下操作

abc = "1.0"

然后
int(abc)
会像预期的那样引发一个ValueError。

我认为问题在于input()函数总是返回一个字符串,因此错误来自
int(“1.0”)
。这就是为什么使用try/except而不指定预期的错误类型通常是不好的做法。明白了,以后使用try/except子句时我会记住这一点。我认为问题是input()函数总是返回字符串,因此错误来自
int(“1.0”)
。这就是为什么使用try/except而不指定预期的错误类型通常是不好的做法