提问人:Big_Port 提问时间:7/15/2023 最后编辑:greybeardBig_Port 更新时间:7/17/2023 访问量:57
如何输入分母为两位数的分数
How to enter a fraction with two digits in denominator
问:
有谁知道我可以在不获得“非真正价值文本”的情况下放入 9/10 或类似内容的方法?
它适用于像 3/4、2/5 这样的个位数,但如果我输入 2/10,我就会出现错误。
while True:
numerator, denominator = input("What is fraction is your fuel ").split("/")
if numerator > denominator:
print("Not real value, try again ")
continue
elif .90<= int(numerator)/int(denominator) <=.99:
print("f")
elif 0<= int(numerator)/int(denominator) <.10:
print("E")
else:
fuel = str(round(int(numerator) / int(denominator) *100))
print("Fuel meter is at: " + fuel + "%")
break
答:
1赞
juanpethes
7/15/2023
#1
它不适用于 9/10 的原因是 AND 存储为字符串,当您使用 AND 比较字符串时,它会按字母顺序比较它们。所以它正确地知道 9 > 8 > 7 >......但它认为 9 > 11 > 10 >......等等,因为它如前所述是按字母顺序排列的。要解决此问题,请将 num 和 dem 转换为整数,如下所示:num
dem
<
>
num, dem = input("What is fraction is your fuel ").split("/")
num = int(num)
dem = int(dem)
...
评论
0赞
Big_Port
7/15/2023
哇,这么简单的错误。好看
1赞
juanpethes
7/15/2023
是的,这就是可能发生的事情。一个微妙的错误,由于数据类型不同而改变了程序的整个逻辑。至少你再也不会犯这个错误了:)
评论
num
dem