zsc123xyz147 发表于 2020-11-8 10:58:46

Python

temp = input("请输入一个数字:")
num = int(temp)
if 1<= num <= 100:
    print("你妹好漂亮")
else:
    print("你大爷好丑")
print("游戏结束,不玩啦☻")
在运行这个命令的时候,如果输入一个浮点数,比如5.4这样的,就会报错,这是啥原因{:5_94:}

昨非 发表于 2020-11-8 11:02:36

input的返回值是字符串
字符串里含有小数点的时候转为int型会报错的

昨非 发表于 2020-11-8 11:03:42

a,b = eval(input("请输入两个数,用逗号隔开\n"))    #即可输入整数也可以输入小数,
                                                 #还可以同时输入小数或整数
print(type(a),":",a,type(b),":",b)

jackz007 发表于 2020-11-8 11:04:26

num = int(temp)
      这一句支持 temp 为浮点数和字符串,但是,当 temp 是字符串的时候,只能是整数形式字符串,通过 input() 得到的一定是字符串。所以,不能输入浮点数。
num = eval(temp)
print(num)
      上面这一句就可以输入浮点数

昨非 发表于 2020-11-8 11:06:50

temp = eval(input("请输入一个数字:"))
num = int(temp)
if 1<= num <= 100:
    print("你妹好漂亮")
else:
    print("你大爷好丑")
print("游戏结束,不玩啦☻")

这样就好了,满意的话记得给个最佳答案哈

Twilight6 发表于 2020-11-8 12:31:50


在运行这个命令的时候,如果输入一个浮点数,如5.4 就会报错,这是什么原因?

因为 int 函数只能将纯整数字符串转化为整形,而字符串中的小数点是无法进行转换的,导致报错

你可以使用 float 转化为浮点型进行判断即可,float 转换条件只需要字符串是数字即可,可以是浮点型字符串

所以只需要把第二行的 int(temp) 改为 float(temp) 即可

参考代码:

temp = input("请输入一个数字:")
num = float(temp)
if 1<= num <= 100:
    print("你妹好漂亮")
else:
    print("你大爷好丑")
print("游戏结束,不玩啦~!")

zsc123xyz147 发表于 2020-11-10 10:28:58

感谢各位大佬的解答{:5_106:}
页: [1]
查看完整版本: Python