ahzhxy840921 发表于 2022-10-30 09:31:44

零基础学习Python练习过程问题点

本帖最后由 ahzhxy840921 于 2022-10-30 09:36 编辑

以下代码,为什么不能输入小数,比如60.5?只能输入整数?int()不就是转换整数的么?求指点!!!
y = input("请输入您的分数:")
x = int(y)
if x == 100:
    print("S")
if x >= 90 and x < 100:
    print("A")
if x >= 80 and x < 90:
    print("B")
if x >= 60 and x < 80:
    print("C")
if x < 60 and x > 0:
    print("D")
if x < 0 or x > 100:
    print("请输入0-100的数字!")

tommyyu 发表于 2022-10-30 09:34:49

int() 只能转化带有整数的字符串,不能转化带有小数的字符串
>>> int('60')
60
>>> int('60.5')
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
    int('60.5')
ValueError: invalid literal for int() with base 10: '60.5'
>>>

ahzhxy840921 发表于 2022-10-30 09:38:07

tommyyu 发表于 2022-10-30 09:34
int() 只能转化带有整数的字符串,不能转化带有小数的字符串

int(60.5)
60

tommyyu 发表于 2022-10-30 09:40:02

本帖最后由 tommyyu 于 2022-10-30 09:43 编辑

ahzhxy840921 发表于 2022-10-30 09:38
int(60.5)
60

可是 input() 返回的是一个字符串>>> x = input()
60.5
>>> x
'60.5'
>>>

ahzhxy840921 发表于 2022-10-30 09:40:19

tommyyu 发表于 2022-10-30 09:34
int() 只能转化带有整数的字符串,不能转化带有小数的字符串

是不是因为我输入的是int(""),有双引号,Python默认我输入的分数为字符串?

tommyyu 发表于 2022-10-30 09:42:00

ahzhxy840921 发表于 2022-10-30 09:40
是不是因为我输入的是int(""),有双引号,Python默认我输入的分数为字符串?

input函数的返回值就是字符串,你输入60.5他就返回'60.5'

tommyyu 发表于 2022-10-30 09:45:56

在执行 y = input("请输入你的分数:")这一句时,如果输入了 60.5,则 y 的值就是 '60.5'
然后执行x = int(y) ,Python 就会执行 x = int('60.5') , 然后就会报错

1361020206 发表于 2023-10-17 08:54:03

input输入返回的就是字符串str,int输入的只能是整数字符串或者整形数字或者浮点型,不能转化带有小数的字符串。
页: [1]
查看完整版本: 零基础学习Python练习过程问题点