如何采取一个整数,并使用一小部分就可以了

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

回到顶部