Nun wurde ich wie üblich angewiesen, das kleine Problem zu lösen, wie dies in Python-Code umgewandelt werden soll, damit ich Ihnen die Details zeigen kann.
--Lesen Sie Zeichen für Zeichen, bis das Zeilenende erreicht ist (dies wird durch Pythons Eingabe () gelöst).
Ich möchte mit den obigen Inhalten fortfahren. Also sofort
Wenn es sich um den Inhalt eines Buches handelt, kann es in Zeichen von A bis Z konvertiert werden, indem es mit dem ASCII-Zeichencode abgeglichen und den ganzzahligen Werten von Eingabe 1 bis 26 Zeichencode hinzugefügt wird. Ich mache weiter mit.
Wie beim letzten Mal möchte ich eine andere Methode in Python ausprobieren, ohne ASCII-Zeichencode zu verwenden, aber in Python ist es rudimentärer oder es ist in Ordnung, sie in eine Liste aufzunehmen und mit einem Index zu extrahieren Wenn das so ist
test12.py
#!/usr/bin/env python
#coding:utf-8
from ConsoleOut import cout #Cout in Python<<Bereiten Sie eine Klasse für die Verwendung vor(Brachte mir bei)
import enum
import math
UPPERCASE = [' ','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z']
LOWERCASE = [' ','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']
PUNCTUATION = [' ','!','?',',','.',' ',';','"','\n']
modeType = UPPERCASE
while modeType in [UPPERCASE,LOWERCASE,PUNCTUATION]:
cout << "Enter some numbers ending with -1: "
digit = input()
if modeType == UPPERCASE:
cout << "Number read: " + digit + "\n"
digit = int(digit) % 27
cout << ". Modulo 27: " + UPPERCASE[digit] + "\n"
if digit == 0:
modeType = LOWERCASE
else:
continue
elif modeType == LOWERCASE:
cout << "Number read: " + digit + "\n"
digit = int(digit) % 27
cout << ". Modulo 27: " + LOWERCASE[digit] + "\n"
if digit == 0:
modeType = PUNCTUATION
else:
continue
elif modeType == PUNCTUATION:
cout << "Number read: " + digit + "\n"
digit = int(digit) % 9
cout << ". Modulo 27: " + PUNCTUATION[digit] + "\n"
if digit == 0:
modeType = UPPERCASE
else:
continue
・ ・ ・ ・(Terminalausführung)
>>> import test12
Enter some numbers ending with -1: 18
Number read: 18
. Modulo 27: R
Enter some numbers ending with -1: 12312
Number read: 12312
. Modulo 27:
Enter some numbers ending with -1: 171
Number read: 171
. Modulo 27: i
Enter some numbers ending with -1: 763
Number read: 763
. Modulo 27: g
Enter some numbers ending with -1: 98423
Number read: 98423
. Modulo 27: h
Enter some numbers ending with -1: 1208
Number read: 1208
. Modulo 27: t
Enter some numbers ending with -1: 216
Number read: 216
. Modulo 27:
Enter some numbers ending with -1: 11
Number read: 11
. Modulo 27: ?
Enter some numbers ending with -1: 500
Number read: 500
. Modulo 27:
Enter some numbers ending with -1: 18
Number read: 18
. Modulo 27:
Enter some numbers ending with -1: 241
Number read: 241
. Modulo 27: Y
Enter some numbers ending with -1: 0
Number read: 0
. Modulo 27:
Enter some numbers ending with -1: 32
Number read: 32
. Modulo 27: e
Enter some numbers ending with -1: 20620
Number read: 20620
. Modulo 27: s
Enter some numbers ending with -1: 27
Number read: 27
. Modulo 27:
Enter some numbers ending with -1: 10
Number read: 10
. Modulo 27: !
Enter some numbers ending with -1:
Derzeit ist es möglich, Ganzzahlwerte in Alphabete und Symbole auszugeben, indem der Modus mit einer Endlosschleife umgeschaltet wird. Es gibt jedoch viele subtile Punkte, z. B. den Teil, an dem zusätzliche Leerzeichen auf dem Weg erscheinen, und das Verlassen der Endlosschleife. Es hat jedoch vorerst funktioniert.
Hier ist übrigens die Antwort für C ++
char outputCharacter;
enum modeType {UPPERCASE,LOWERCASE,PUNCTUATION};
modeType mode = UPPERCASE;
char digitChar;
do {
digitChar = cin.get();
int number = (digitChar - '0');
digitChar = cin.get();
while ((digitChar != 10)&&(digitChar != ',')){
number = number * 10 + (digitChar - '0');
digitChar = cin.get();
}
switch (mode){
case UPPERCASE:
number = number % 27;
outputCharacter = number + 'A' - 1;
if(number == 0){
mode = LOWERCASE;
continue;
}
break;
case LOWERCASE:
number = number % 27;
outputCharacter = number + 'a' - 1;
if (number == 0){
mode = PUNCTUATION;
continue;
}
break;
case PUNCTUATION:
number = number % 9;
switch(number){
case 1: outputCharacter = '!';break;
case 2: outputCharacter = '?';break;
case 3: outputCharacter = ',';break;
case 4: outputCharacter = '.';break;
case 5: outputCharacter = ' ';break;
case 6: outputCharacter = ';';break;
case 7: outputCharacter = '"';break;
case 8: outputCharacter = '\';break;
}
if(number == 0){
mode = UPPERCASE;
continue;
}
break;
}
cout << outputCharacter;
}while (digitChar != 10);
cout << "\n";
Dieses Mal konnte ich es nicht in kleine Teile teilen, also schrieb ich meinen eigenen Python-Code, während ich mir den Antwortcode ansah.