Python Else语句未使用字符串或浮点输入执行
我得到的错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\shrad.spyder-py3\temp.py”,第183行,在 num2=int(输入(“输入第二个整数:”)Python Else语句未使用字符串或浮点输入执行,python,if-statement,Python,If Statement,我得到的错误: 回溯(最近一次呼叫最后一次): 文件“C:\Users\shrad.spyder-py3\temp.py”,第183行,在 num2=int(输入(“输入第二个整数:”) ValueError:以10为基数的int()的文本无效:“2.2”是一个浮点数,不是int,但您试图将其转换为int,2.2是一个浮点数,而不是int,但您试图将其转换为int您试图在测试它是否由数字组成之前将其转换为int。在进行转换之前,请等待完成此测试 num1 = int(input("En
ValueError:以10为基数的int()的文本无效:“2.2”是一个
浮点数,不是int
,但您试图将其转换为int
,2.2
是一个浮点数,而不是int
,但您试图将其转换为int
您试图在测试它是否由数字组成之前将其转换为int。在进行转换之前,请等待完成此测试
num1 = int(input("Enter the first integer: "))
num2 = int(input("Enter the second integer: "))
if (str(num1).isdigit()) and (str(num2).isdigit()):
if num1>num2:
print(num2, num1)
else:
print(num1, num2)
else:
print("That is not an integer!")
顺便说一下,请注意您的isdigit
测试对负整数不起作用。在测试整数是否由数字组成之前,您正在尝试将其转换为整数。在进行转换之前,请等待完成此测试
num1 = int(input("Enter the first integer: "))
num2 = int(input("Enter the second integer: "))
if (str(num1).isdigit()) and (str(num2).isdigit()):
if num1>num2:
print(num2, num1)
else:
print(num1, num2)
else:
print("That is not an integer!")
顺便说一句,请注意您的isdigit
测试对负整数不起作用。int()
将只接受整数-这是一个没有小数点的数字,这就是它不接受2.2的原因。您可能想使用float()。int()
将只接受一个整数-这是一个没有小数点的数字,这就是它不接受2.2的原因。您可能想使用float()。好吧,您知道他们说的是什么,“永远不要相信用户输入”。即使用户是你自己
语句:input(“输入第一个整数:”)
返回一个字符串(您键入的字符串),然后将该字符串传递给int()
,并尝试将其转换为整数
当给定一个字符串作为输入时,int函数要求该字符串严格地表示为整数(而不是浮点数,比如2.2)
您可以尝试第一行:num1=int(输入(“输入第一个整数”)
;它何时升起,何时不升起
您发布的代码中的问题是,您首先尝试转换为int,然后检查输入是否为int。因此,Python解释器必须首先面对这个问题,并使用它自己的自动方式报告它:异常
解决这个问题的一种方法是将字符串->int转换推迟到实际需要时。幸运的是,在比较中,只有一个地方是:if int(num1)>int(num2):
。
这将避免您在开始时进行int()转换时遇到的麻烦,再加上用于int检查的返回字符串转换(if(str(num1).isdigit())和(str(num2).isdigit()):
可以变成if num1.isdigit()和num2.isdigit():
,因为num1,num2还没有被转换。)
或者,如果希望转换小数点而不出错,可以使用float()
函数(该函数也可以方便地转换int)
您还可以尝试使用异常处理,例如:
num1 = input("Enter the first integer: ") # keep it as a string for now
num2 = input("Enter the second integer: ")
if num1.isdigit() and num2.isdigit():
num1 = int(num1) # NOW convert to int
num2 = int(num2)
if num1>num2:
print(num2, num1)
else:
print(num1, num2)
else:
print("That is not an integer!")
这反过来又使您不必验证下面的输入…好吧,您知道他们说什么,“永远不要相信用户输入”。即使用户是你自己
语句:input(“输入第一个整数:”)
返回一个字符串(您键入的字符串),然后将该字符串传递给int()
,并尝试将其转换为整数
当给定一个字符串作为输入时,int函数要求该字符串严格地表示为整数(而不是浮点数,比如2.2)
您可以尝试第一行:num1=int(输入(“输入第一个整数”)
;它何时升起,何时不升起
您发布的代码中的问题是,您首先尝试转换为int,然后检查输入是否为int。因此,Python解释器必须首先面对这个问题,并使用它自己的自动方式报告它:异常
解决这个问题的一种方法是将字符串->int转换推迟到实际需要时。幸运的是,在比较中,只有一个地方是:if int(num1)>int(num2):
。
这将避免您在开始时进行int()转换时遇到的麻烦,再加上用于int检查的返回字符串转换(if(str(num1).isdigit())和(str(num2).isdigit()):
可以变成if num1.isdigit()和num2.isdigit():
,因为num1,num2还没有被转换。)
或者,如果希望转换小数点而不出错,可以使用float()
函数(该函数也可以方便地转换int)
您还可以尝试使用异常处理,例如:
num1 = input("Enter the first integer: ") # keep it as a string for now
num2 = input("Enter the second integer: ")
if num1.isdigit() and num2.isdigit():
num1 = int(num1) # NOW convert to int
num2 = int(num2)
if num1>num2:
print(num2, num1)
else:
print(num1, num2)
else:
print("That is not an integer!")
这将使您无需验证下面的输入…2.2是一个浮点数,不是int,但您正在尝试将其转换为int。您的代码在my pycharm编辑器中运行得非常好。只需删除int并编写num1=input(“输入第一个整数:”)。2.2是一个浮点,不是int,但您正试图将其转换为int。您的代码在我的pycharm编辑器中运行得非常好。只需删除int并写入num1=input(“输入第一个整数:”)。