2017-11-01 13 views
2

私は、整数のリストを入力するプログラムを作っています。これは、整数をノートに変更し、そのノートを順番に再生します。しかし、ゼロを入力して周波数をゼロに設定すると、プログラムがクラッシュします。私はこれが発生した場合、周波数を100に変更するif文を追加しようとしましたが、運はありません。Python 2.7 winsoundの頻度に問題があります

次は私のコードです:

import winsound 

FREQUENCY = 0 
NOTES_PROMPT = "Enter a list of integers: " 
DURATION_PROMPT = "Duration: " 

def line_break(): 
    print("") 

def play_music(): 
    notes = raw_input(NOTES_PROMPT) 
    duration = raw_input(DURATION_PROMPT) 
    map(int, str(notes)) 
    map(int, str(duration)) 

for i in range(len(notes)): 
    FREQUENCY = int(notes[i]) * 250 
    if FREQUENCY == 0: 
     FREQUENCY == 100 
    line_break() 
    print(str(notes[i])) 
    winsound.Beep(FREQUENCY, int(duration)) 

while True: 
    play_music() 
    line_break() 
+0

あなたの質問は何ですか? –

+0

'0 'の値を' 100'に変更しようと言った 'if文'を追加できますが、それは機能しませんか?試したコードは表示されません。コードが入力 '0'のエラーを発生させることが予想されます。https://docs.python.org/2/library/winsound.htmlのドキュメントに従ってください。 '周波数パラメータは、音の周波数をヘルツ単位で指定します。範囲は37〜32,767でなければなりません。 ' –

+0

@ChristianWill Ok。私はそれを加えた。 –

答えて

0

一般的なエラーは、単一の等号=の代わりに、二重の等号==または他の方法で回避を使用することです。 =は代入演算子であり、==は比較演算子であることに注意してください。

+0

それは働いているようです。ありがとうございました! –

関連する問題