【发布时间】:2020-08-24 04:48:01
【问题描述】:
这是我为说明我的问题而编写的示例代码。如果输入是整数或小数,则按预期工作。但是如果输入是一个分数,比如 4/5,它会抛出一个 ValueError,因为 4/5 是一个不能转换为浮点数的字符串。
myinput=input("Enter number. ")
doubleofmyinput=float(myinput)*2
print(doubleofmyinput)
不使用 input() 时这不是问题,因为 float(4/5) 有效,而 float("4/5") 无效,而 float("4.5") 和 float(4.5) 都有效.谢谢。
【问题讨论】:
-
不,
float("4/5")不起作用!是什么让你认为它可能???大多数时候,人们只使用浮点变量,十进制或scientific notation。如果您愿意 - 无论出于何种原因 - 您始终可以通过将两个整数参数传递给您的函数来指定一个“分数”:例如myfunction(numerator, denominator) -
这能回答你的问题吗? Fractions in Python
-
@paulsm4 好吧,
float(4/5)确实 工作,但那是因为4/5不是“分数”,它是一个被评估为浮点数的表达式跨度> -
所以,一般来说,您必须根据您的期望解析您的输入。但是,我会注意到,
fractions.Fraction将处理您的输入并与其他 python 数字类型一起使用 -
@paulsm4 我只是指出 OP 说“因为 float(4/5) 有效,而 float("4/5") 无效”,他们没有说
float("4/5")有效...
标签: python