大佬们,为什么这个运行不了啊
answer = input("请输入数字:")if answer - int(answer) < 0.5:
result = int(answer)
else:
result = int(answer) + 1
print(result)
本帖最后由 chinajz 于 2023-1-26 08:18 编辑
把首行改成:
answer=eval( input("请输入数字:")) input 返回的是一个字符串,需要用 float 函数将其转化成小数,所以,要将第一行改成 answer = float(input("请输入数字:")) answer = float(input("请输入数字:"))
if answer - answer < 0.5:
result = answer
else:
result = answer + 1
print(result)
因为input函数返回的是一个字符串,所以要转换成浮点形 元豪 发表于 2023-1-26 14:36
因为input函数返回的是一个字符串,所以要转换成浮点形
那为什么这个就能运行啊{:5_100:}
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
if temp == 8:
print("你是小甲鱼心里的蛔虫吗?!")
print("哼,猜中了也没有奖励!")
else:
print("猜错啦,小甲鱼现在心里想的是8!")
print("游戏结束,不玩啦^_^") Hitohito1225 发表于 2023-1-26 15:38
那为什么这个就能运行啊
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
这里你即使输入 8 也会说你猜错了 , 因为 input 函数返回值为 str 类型
你输入的 8 实际上是 '8'
而 '8' 不等于 8 , 所以只会运行 else 下的代码 Hitohito1225 发表于 2023-1-26 15:38
那为什么这个就能运行啊
temp = input("不妨猜一下小甲鱼现在心里想的是哪个数字:")
temp = int(input("不妨猜一下小甲鱼现在心里想的是哪个数字:")) 柿子饼同学 发表于 2023-1-26 15:44
这里你即使输入 8 也会说你猜错了 , 因为 input 函数返回值为 str 类型
你输入的 8 实际上是 '8'
而 '8 ...
哦哦,还有这样为什么也不行啊
answer = input("请输入数字:")
if float(answer) - int(answer) < 0.5:
result = int(answer)
else:
result = int(answer) + 1
print(result)
Hitohito1225 发表于 2023-1-26 16:39
哦哦,还有这样为什么也不行啊
answer = input("请输入数字:")
代码中的int(answer)要改成int(float(answer)),因为int是无法处理带有小数点的字符串的。 本帖最后由 柿子饼同学 于 2023-1-26 17:19 编辑
Hitohito1225 发表于 2023-1-26 16:39
哦哦,还有这样为什么也不行啊
answer = input("请输入数字:")
int 无法转换 类似'3.44' '8.0' 这种用 str 类型表示的小数
你可以先将它转换成小数再转换为整数 :
print(int(float('9.43')))
注意到你想实现四舍五入的功能 , 实际上只需要这样 :
number = float(input('Input : '))
print(int(number + 0.5))
原理是 , 一个小数如果小数部分小于 0.5 , 那么再加 0.5 整数部分也不会改变
而 小数大于 0.5 的 加上 0.5 之后整数部分会加 1
然后因为 int() 对小数采取直接截断小数部分的方法 , 所以小于 0.5 的就保持不变 , 大于 0.5 的就变为五入的形式
页:
[1]