2017-03-25 3 views
-3

Ich benutze Python, um einen Text zum binären Übersetzer zu schaffen, ich überprüfte alles und es scheint in Ordnung, aber wenn ich es ausführe, das Programm druckt nur den ersten Buchstaben des Textes. Hier ist der Code:Ich programmiere einen Text zum Binärprogramm, aber wenn ich es ausführe, druckt es nur einen Binärbuchstabe

if beep == 1: 
letter = letter + 1 
if letter > length: 
    beep = 2 
if list1[letter] == "a": 
    print abinary 
elif list1[letter] == "b": 
    print bbinary 

elif list1[letter] == "c": 
    print cbinary 

elif list1[letter] == "d": 
    print dbinary 

elif list1[letter] == "e": 
    print ebinary 

elif list1[letter] == "f": 
    print fbinary 
elif list1[letter] == "g": 
    print gbinary 
elif list1[letter] == "h": 
    print hbinary 
elif list1[letter] == "i": 
    print ibinary 
elif list1[letter] == "j": 
    print jbinary 
elif list1[letter] == "k": 
    print kbinary 
elif list1[letter] == "l": 
    print lbinary 
elif list1[letter] == "m": 
    print mbinary 
elif list1[letter] == "n": 
    print nbinary 
elif list1[letter] == "o": 
    print obinary 
elif list1[letter] == "p": 
    print pbinary 
elif list1[letter] == "q": 
    print qbinary 
elif list1[letter] == "r": 
    print rbinary 
elif list1[letter] == "s": 
    print sbinary 
elif list1[letter] == "t": 
    print tbinary 
elif list1[letter] == "u": 
    print ubinary 
elif list1[letter] == "v": 
    print vbinary 
elif list1[letter] == "w": 
    print wbinary 
elif list1[letter] == "x": 
    print xbinary 
elif list1[letter] == "y": 
    print ybinary 
elif list1[letter] == "z": 
    print zbinary 
else: 
    print "error." 

Wer weiß, was los ist, ich bin ziemlich wusste, aber ich kann diese in jedem meiner Bücher.

+3

Dies ist ein grundsätzliches Problem dass die meisten, wenn nicht alle Lehrbücher, die sich auf die Programmierung beziehen, abdecken würden. Sie möchten _repeat_ oder _loop_ Ihre Logik zum Konvertieren von Text in Binärcode für jeden Buchstaben, d. H. Für jedes Element Ihrer Liste, ändern. –

+2

Wie wird das verwendet? - Oh und als eine Seite, Option, benutze bitte ein Wörterbuch anstelle einer Wenn-Elif-Kette. – paul23

+1

Nichts davon ist innerhalb einer Schleife, also führt Python es nur für den ersten Buchstaben aus. Verwenden Sie eine "for" -Schleife. – tburrows13

Antwort

0

Wenn Sie den Code wollen mehrere Male ausführen, müssen Sie eine Schleife verwenden:

while beep == 1: 
    if list1[letter] == "a": 
     print abinary 

    ... 
    letter = letter + 1 
    if letter >= length(list): 
      beep = 2 

Sie können sogar diese mehr tun, schön ein for-loop mit allen Buchstaben in der Liste iterieren:

for letter in list1: 
    if letter == "a": 
     print abinary 
    ... 

stattdessen eine Menge elifs von Verkettungs sollten Sie speichern die binäre Darstellung der Buchstaben in einem dictionary:

binary_letters = { 
    "a": "01100001", 
    "b": "01100010", 
    ... 
    "z": "01111010" 
    } 

dies wird die Schleife vereinfachen:

for letter in list1: 
    print binary_letters[letter] 
0

Die for-Schleife, die Sie es wie folgt implementieren können, können Sie auch die Buchstaben in eine binäre Zeichenfolge konvertieren:

letter="k" 
for n in range(97,123): 
    if ord(letter)<97 or ord(letter)>123: 
     #if character is not between 97-123 (a-z) print an error message 
     print("Error:Not in range") 
     break 
    #print(n) 
    if n==ord(letter): 
     #print the binary string if character is between the codes 97-123 (a-z) 
     print(format(ord(letter),'b')) 
Verwandte Themen