簡體   English   中英

Python:避免分數簡化

[英]Python: avoiding fraction simplification

我正在研究Python中的音樂應用程序,並希望使用分數模塊來處理時間簽名等。 我的問題是分數得到簡化,即:

>>> from fractions import Fraction
>>> x = Fraction(4, 4)
>>> x
Fraction(1, 1)

然而,從音樂的角度來看,重要的是4/4保持4/4,即使它等於1.是否有任何內置的方法來避免這種行為?

謝謝!

是的:為它制作一個自定義類。

音樂時間簽名不是分數,因此用數學類來表示它們是沒有意義的。

您應該使用除Fraction之外的某些數據結構。 只是一個簡單的元組是最簡單的,雖然你也可以創建自己的類。 如果需要進行計算,請對構成時間簽名的各個整數執行計算。

不,沒有 - 由GCD划分建立在Fraction類操作中。 您可能想要創建自定義類的其他原因,至少在您使用樂譜時,是:

  • 能夠處理4/4和2/4的公共時間(C)和切換時間(斜線-C)替換 - 或者甚至更好,以使其可選
  • 能夠代表復合時間簽名(例如2 + 3 + 2/8)

暫無
暫無

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

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