如何采取一个整数,并使用一小部分就可以了
def main(): name=input("Enter your name: ") #just write our name nothin important
print (name, "is Swag")
value1=int(input("enter a value: ")) #takes in the number without doubt
print(value1)
value2=float(int("Enter a fraction: ")) #heres our problem but what?
print(value2)
main()
只是一个简单的程序,我玩用左右,但它显示了这个错误,因为你都可能想知道:如何采取一个整数,并使用一小部分就可以了
我写例如1/2一个这表明,除非你使用eval
(这是不安全的,所以我不能建议)
Traceback (most recent call last): File "C:\Users\waliu\Documents\Waliur Uni stuff\Information
systems\Python Programs\Samples\apparently fractions.py", line 8, in
<module>
main()
File "C:\Users\waliu\Documents\Waliur Uni stuff\Information
systems\Python Programs\Samples\apparently fractions.py", line 6, in main
value2=float(input("Enter a fraction: "))
ValueError: could not convert string to float: '1/2'
回答:
有一个fractions
模块中的标准库。它可以解析包含分数表示的字符串。
from fractions import Fraction s = input("Enter a fraction: ")
val = Fraction(s)
print(val, float(val))
演示
Enter a fraction: 3/8 3/8 0.375
注意,字符串不能包含的内部空间,但是,可以在之前或之后的数据有空格。
如果你想要做分数的计算这是一个好主意,不它们转换为浮动,因为这会损失精度。由于Fraction对象使用Python整数作为分子&分母,因此它们的准确性没有限制(除了RAM限制)。这里有一个简短的演示:
a = Fraction('2/3') b = Fraction(3, 4)
c = a**2 + b**2
print(c)
print(c**10)
输出
145/144 4108469075197275390625/3833759992447475122176
回答:
Python不会计算分数。有喜欢simpleeval
其他表情评估,但在你的情况,如果你确保输入的一小部分,你可以只拆分,转换成整数和除法:
>>> fraction = "1/2" # input("enter a fraction") >>> f = [int(x) for x in fraction.split("/")]
>>> f[0]/f[1]
0.5
>>>
你可以通过只检查处理非馏分len(f)==2
,否则它可能是一个简单的整数(如果是len(f)==1
),或者是一个错误(如果> 2)。
使用一个班轮operator.truediv
&直接传递ARGS:
operator.truediv(*(int(x) for x in fraction.split("/")))
(无语法检查可能在这里很明显)
以上是 如何采取一个整数,并使用一小部分就可以了 的全部内容, 来源链接: utcz.com/qa/258306.html