1

编写一个程序,找出并打印 A440 和 A880 之间所有音符的频率。使用二的第十二根。这是我当前的代码。

2**(1.0/12) is the twelfth root.

从数学导入 sqrt

i=0
a=440
a2=(a*(2**(1.0/12.0)))
for i in range(12):
    print (a2)
    a2=a2+i
    i=i+1

这段代码给了我输出。

466.1637615180899
466.1637615180899
467.1637615180899
469.1637615180899
472.1637615180899
476.1637615180899
481.1637615180899
487.1637615180899
494.1637615180899
502.1637615180899
511.1637615180899
521.1637615180899

但是我需要的输出是

440.0
466.163761518
493.883301256
523.251130601
554.365261954
587.329535835
622.253967444
659.255113826
698.456462866
739.988845423
783.990871963
830.60939516
880.0

我的代码没有什么???

4

1 回答 1

2

你的数学错了

n=440

while (n<=880):
    print n
    n=n*(2**(1.0/12.0))
于 2013-10-03T19:55:32.023 回答