Wie Sie feststellen, ob Zeichen in Großbuchstaben, Kleinbuchstaben, eine Ziffer oder nicht-alphanumerische ohne string-Methoden
Ich versuche, ein Programm zu schreiben, das bestimmt, ob ein Zeichen in Großbuchstaben, Kleinbuchstaben, eine Ziffer oder nicht-alphanumerische ohne string-Methoden wie isupper, islower, isdigit. Das Programm ist, dass alles, was ich eingeben, es sagt mir, dass es ein Kleinbuchstabe. Kann mir jemand helfen?
character = input("Enter a character: ")
lowerLetters = "abcdefghijklmnopqrstuvwxyz"
upperLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
digits = "0123456789"
lowerCount = 0
upperCount = 0
digitCount = 0
nonAlphaCount = 0
for ch in character:
for ch in lowerLetters:
lowerCount += 1
for ch in upperLetters:
upperCount += 1
for ch in digits:
digitCount += 1
else:
nonAlphaCount += 1
if lowerCount > 0:
print(character, "is a lower case letter.")
elif upperCount > 0:
print(character, "is an upper case letter.")
elif digitCount > 0:
print(character, "is a digit.")
elif nonAlphaCount > 0:
print(character, "is a non-alphanumeric character.")
- Das problem bei diesem code ist, dass Sie das tun:
for ch in lowerLetters: lowerCount += 1
. Das bedeutet, dass lowerCount ist immer 26, unabhängig. Sie müssen vergleichen die lowerLetters mit Ihremch
. - Die definition von "alphabetische" variiert (und "Ziffer" zu). Auch in Englisch, ASCII-Buchstaben decken nicht den gesamten Wortschatz. Sind Sie interessiert in ASCII eine Teilmenge von alphabetischen Zeichen bestimmter Sprache(N), oder den vollen Satz von Unicode-Zeichen definiert als alphabetisch?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dein code ist gut (wenn auch nicht das beste für deinen Zweck auch ohne die Anwendung der Methoden, die Sie erwähnt), aber Sie haben ein paar Tippfehler 🙂 Dies ist, was Sie haben:
Und das ist wollen, Sie wollte Typ:
Können Sie ascii-Wert
verwenden
ord
Funktion. wie diese:So, um zu überprüfen, ob
a
ist ein Kleinbuchstabe oder nicht, tun:Das problem ist mit folgenden Teil des Codes :
Erhöhen Sie die Variablen ohne jede Bedingung, die Sie verwenden müssen
all
Funktion für diesen job :Nun, wenn Sie sind auf der Suche nach einem anderen Weg, die Sie verwenden können, regex für diese Aufgabe, ist aber nicht so effizient wie die vorhergehenden Lösungen.