Ich machte einige Übungsaufgaben von NiO für eine bevorstehende Codierung Wettbewerb. Der Wettbewerb wird online abgehalten und zwingt mich, stdin.readline zu verwenden, damit sie meinen Code testen können. Die Verwendung von Stdin hat mich wirklich feststecken. Das Skript läuft einwandfrei mit raw_input, aber "ValueError: substring not found" wird ausgelöst, wenn ich zu sys.stdin.readline wechsle. Mache ich etwas Dummes falsch?Python-Programm arbeitet mit raw_input(), aber nicht mit sys.stdin.readline
import string
import sys
n = int(sys.stdin.readline())
txt = sys.stdin.readline()
ab = string.ascii_uppercase
result = ""
for letter in txt:
result += ab[((ab.index(letter) + n) % 26)]
print result
Wie werden Sie es fordern und was tippen Sie auf der Kommandozeile nach dem für die Eingabe? Wo ist der Fehler genau? Bitte posten Sie einen Text-Bildschirm-Dump in Ihrer Frage. –
'readline()' enthält den Zeilenumbruch am Ende der Zeichenfolge. Es gibt keine neue Zeile in 'ab', so dass' ab.index (letter) 'fehlschlägt, wenn Sie zum letzten Zeichen kommen. – Barmar
Ihr Code wird diesen Fehler erhalten, wenn die Eingabe kein Großbuchstabe ist. – Barmar