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 Ihrem ch.
  • 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?
InformationsquelleAutor Bob | 2015-10-09
Schreibe einen Kommentar