erwarte ich, dass die Ausgabe alsIch verstehe diese unerwartete Ausgabe nicht, kann jemand erklären?
[1,4,9,10,#]
aber ich bin
bekommen[1,4,9,10]
Kann jemand erklären, ist der Grund, warum das passiert?
str = "adij"
mainstr = []
for i in range(0, len(str)):
if 97 <= ord(str[i]) <= 107:
mainstr.append(ord(str[i]) - 96)
if ord(str[i]) > 107:
mainstr.append(ord(str[i]) - 96)
mainstr.append('#')
print mainstr
Rufen Sie Ihre Variable 'str' nicht _ever_ auf. 'str' ist ein String-Konstruktor. Sie haben vielleicht schon Ihren Python-Interpreter durcheinander gebracht. Und anstatt kryptisch '97 <= ord (str [i]) <= 107 ', warum schreibe nicht' 'a' <= str [i] <= 'k''? Sie würden sofort sehen, was mit Ihren Erwartungen nicht stimmt. – DyZ
'ord ('j')' = 106. So ist es weniger als 107. –
In Python benötigen Sie keinen Schleifenzähler beim Iterieren über Zeichen in einer Zeichenfolge. Tun Sie einfach 'für den Buchstaben in str: mastertr.append (ord (Buchstabe))' –