麻烦解答一下,为什么会报错?
num1 = input("请输入第一个整数:")num2 = input("请输入第二个整数:")
if int(num1) < int(num2):
print("第一个数比第二个数小!")
if int(num1) > int(num2):
print("第一个数比第二个数大!")
if int(num1) == int(num2):
print("第一个数和第二个数一样大!")
报错提示:
请输入第一个整数:1.23
请输入第二个整数:23
Traceback (most recent call last):
File "C:/Users/asus/Desktop/test666.py", line 4, in <module>
if int(num1) < int(num2):
ValueError: invalid literal for int() with base 10: '1.23'
>>>
"1.23"是一个字符串,无法转换为int类型 lhgzbxhz 发表于 2020-11-1 15:53
"1.23"是一个字符串,无法转换为int类型
为什么1.23是字符串,我明白输入的是一个浮点型的1.23啊! 星星飞 发表于 2020-11-1 16:09
为什么1.23是字符串,我明白输入的是一个浮点型的1.23啊!
我搜了一下因为input()返回值是字符串,但是我还是不明白,我已经加了int()对其返回值进行转换,为什么会报错?还有这段程序是pytho第五讲的课后作业的答案。 星星飞 发表于 2020-11-1 16:16
我搜了一下因为input()返回值是字符串,但是我还是不明白,我已经加了int()对其返回值进行转换,为什么 ...
int()只能转换整数字符串
比如说"123"这个字符串可以转化为整数
但是"1.23"这个字符串虽然可以转换为数字,但只能转换为小数(浮点数),所以int()会保存
如果真的要转换,可以先用float()转化为浮点数,再用int()转化为整数
例如:num1 = int(float(input())) lhgzbxhz 发表于 2020-11-1 16:42
int()只能转换整数字符串
比如说"123"这个字符串可以转化为整数
但是"1.23"这个字符串虽然可以转换为数 ...
我已经照你说的改了
num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")
num1 = int(float(num1))
num2 = int(float(num2))
if num1 < num2:
print("第一个数比第二个小!")
if num1 > num2:
print("第一个数比第二个数大!")
if num1 == num2:
print("第一个数和第二个数一样大!")
输入浮点型已经没有报错了:
但是输入字符串他还会报错
==================== RESTART: E:\python文件文件\第四章的\test.py ====================
请输入第一个整数:'f'
请输入第二个整数:'g'
Traceback (most recent call last):
File "E:\python文件文件\第四章的\test.py", line 4, in <module>
num1 = int(float(num1))
ValueError: could not convert string to float: "'f'"
>>>
==================== RESTART: E:\python文件文件\第四章的\test.py ====================
请输入第一个整数:g
请输入第二个整数:j
Traceback (most recent call last):
File "E:\python文件文件\第四章的\test.py", line 4, in <module>
num1 = int(float(num1))
ValueError: could not convert string to float: 'g'
>>>
这个问题我该怎么解决?
麻烦了!大佬! 别随便把什么东西都放在float里喂 星星飞 发表于 2020-11-1 16:53
我已经照你说的改了
num1 = input("请输入第一个整数:")
num2 = input("请输入第二个整数:")
你是非数字型的文本用float肯定会报错的,你需要判断num1和num2是否是字母可以用 s.isalpha()。s为字符串。如果输入是字母就要重新input,要求输入数字 18508410033 发表于 2020-11-1 17:48
你是非数字型的文本用float肯定会报错的,你需要判断num1和num2是否是字母可以用 s.isalpha()。s为字符串 ...
def is_number(s):
try:
float(s)
return True
except ValueError:
pass
try:
import unicodedata
unicodedata.numeric(s)
return True
except (TypeError, ValueError):
pass
return False
这个自定义函数可以判断输入的文本是否是数字了,能够识别浮点数
页:
[1]