簡體   English   中英

如何使用Python在循環中增加分數的值

[英]How to increase the value of a fraction in a loop with Python

我試圖做一個循環,每次迭代使分子增加1,但是我得到了這個錯誤:

ZeroDivisionError:分數(1,0)

我的代碼是這樣的:

from fractions import Fraction
x = Fraction(0,48)
z = x.numerator
limit = (48,48)    
while x == limit:
    print("cycle " + str(z))
    x += Fraction(1,0)
print("loop finished!")

看起來您以1/48的步長將x從零增加到一

嘗試這個

from fractions import Fraction
m_denominator = 48
x = Fraction(0,m_denominator)
z = 0
limit = Fraction(m_denominator,m_denominator)    #notice limit is now a Fraction object
while x <= limit: #notice, i changed this
    print("cycle " + str(z))
    z = z+1
    x += Fraction(1,m_denominator)
print("loop finished!")

如果您只需要一個分數列表,則可以使用列表推導簡單地創建它們:

>>> from fractions import Fraction
>>> n = 48
>>> [Fraction(i, n) for i in range(n + 1)]
[Fraction(0, 1), Fraction(1, 48), Fraction(1, 24), Fraction(1, 16), Fraction(1, 12), Fraction(5, 48), Fraction(1, 8), Fraction(7, 48), Fraction(1, 6), Fraction(3, 16), Fraction(5, 24), Fraction(11, 48), Fraction(1, 4), Fraction(13, 48), Fraction(7, 24), Fraction(5, 16), Fraction(1, 3), Fraction(17, 48), Fraction(3, 8), Fraction(19, 48), Fraction(5, 12), Fraction(7, 16), Fraction(11, 24), Fraction(23, 48), Fraction(1, 2), Fraction(25, 48), Fraction(13, 24), Fraction(9, 16), Fraction(7, 12), Fraction(29, 48), Fraction(5, 8), Fraction(31, 48), Fraction(2, 3), Fraction(11, 16), Fraction(17, 24), Fraction(35, 48), Fraction(3, 4), Fraction(37, 48), Fraction(19, 24), Fraction(13, 16), Fraction(5, 6), Fraction(41, 48), Fraction(7, 8), Fraction(43, 48), Fraction(11, 12), Fraction(15, 16), Fraction(23, 24), Fraction(47, 48), Fraction(1, 1)]

在Python中,通常不需要手動增加任何計數器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM