2016-10-13 2 views
1

gedrückt Ich habe den folgenden Code in dem ich die Benutzereingaben erfassen und dann mag ich es analysieren und jedes Zeichen in Zeichenfolge mit ASCII-Code auswerten eine bestimmte MP3-Datei zu spielen:Audiodatei, wenn Tastatur

Das Problem ist, dass dieser Code nur für das erste Zeichen funktioniert. Zum Beispiel, wenn ich den Eingang als ab habe höre ich nur die Audiodatei für a und nicht 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

Sie 'for' in seltsamer Art und Weise. Verwenden Sie 'for char in wrd:' und Sie brauchen nicht 'i' – furas

+0

was Sie hören, wenn Sie' ba' eingeben? Vielleicht ist die Datei kaputt, oder Sie verwenden den falschen Pfad. – furas

Antwort

0

Wenn die MP3-Dateinamen immer dem Pfad folgen „Brief (1), mp3“ Sie können so etwas tun :

import os 

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

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

sonst Sie ein Wörterbuch verwenden können, und für jeden Buchstaben mit den rechten Dateinamen füllen:

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

Es funktioniert aber ich denke, sollte sollte eine Zeit.Schlaf() irgendwo, weil sehr schnell ist, können Sie nur den letzten Buchstaben der Zeichenfolge zum Beispiel hören, wenn die Eingabe si: ab Ich kann nur die b hören. Vielen Dank – distrobyte