2016-10-13 1 views
1

を押したときに、私は、ユーザー入力をキャプチャし、その後、私はそれを解析し、特定の.mp3ファイルを再生するためにASCIIコードを使用して文字列内の各文字を評価したい、次のコードを持っているオーディオファイルを再生する:は、キーボードが

問題は、このコードが最初の文字に対してのみ機能することです。例えば、私がabとして入力を持っている場合、私はaのオーディオファイルを聞くとmp3ファイル名は常にパス従っている場合b

import os 

wrd=raw_input("Please write something: ") 
wrd=(str(wrd)).lower() 
wrd=list(wrd) 
i=0 
print (wrd[0:len(wrd):1]) 

for wrd[i] in wrd: 
    print wrd[i] 
    if ord((wrd[i]))==97: 
     os.system("start C:/Users/letters/a(1).mp3") 
     i+=1 
    if ord((wrd[i]))==98: 
     os.system("start C:/Users//letters/b(1).mp3") 
     i+=1 
+2

あなたは '奇妙な方法でfor'を使用しています。 'for char in wrd:'を使うと、 'ba'を入力したときに聞こえるものは' i' – furas

+0

になることはありませんか?おそらくファイルが壊れているか、間違ったパスを使用しています。 – furas

答えて

0

は「手紙(1)、mp3は、」あなたのような何かを行うことができません:

import os 

wrd = input("Please write something: ") 
wrd = wrd.lower() 

for char in wrd: 
    try: 
     os.system("start " + char +'(1).mp3') 
    except: 
     ValueError 

そうでなければ、辞書を使用して、各文字のための右のファイル名でそれを埋めることができます。

db = { 
    'a': 'C:/Users//letters/a(1).mp3', 
    'b': 'C:/Users//letters/b(1).mp3' 
    # etc 
} 
... 
    try: 
     os.system("start " + db[char]) 
... 
+0

それは動作しますが、私は推測する必要がありますあなたは非常に速いので、文字列の最後の文字だけ聞くことができますので、例えば、入力si:ab私はbを聞くことができます。ありがとう – distrobyte

関連する問題