Python - Ignorer la casse des lettres
J'ai une instruction if:
rules = input ("Would you like to read the instructions? ")
rulesa = "Yes"
if rules == rulesa:
print ("No cheating")
else: print ("Have fun!")
Je souhaite pour l'utilisateur d'être en mesure de répondre par Oui, OUI, oui, oui, ou tout autre de capitalisation, et pour le code, à savoir qu'ils veulent dire Oui.
Vous devez vous connecter pour publier un commentaire.
Pour cet exemple simple, vous pouvez simplement comparer les lowercase
rules
avec"yes"
:C'est OK pour de nombreux cas, mais awared, certaines langues peuvent vous donner une délicate résultats. Par exemple, en allemand lettre
ß
donne suivants:Donc on peut avoir des problèmes, si notre chaîne était en majuscule quelque part avant notre appel à
lower()
.Le même comportement peut également être rencontré dans la langue grecque. Lire la suite
https://stackoverflow.com/a/29247821/2433843 pour plus d'informations.
Donc, dans le cas générique, vous pouvez avoir besoin d'utiliser
str.casefold()
fonction (depuis python3.3), qui gère délicate cas et est recommandé pour les cas indépendant de la comparaison:au lieu de simplement
Utiliser les éléments suivants:
Ce convertit les deux chaînes de caractères en minuscules avant de tester l'égalité.
Une approche commune est de faire de l'entrée en majuscule ou en minuscule, et de les comparer avec une majuscule ou en minuscule mot:
Vous pouvez faire de majuscules, de comparaison ou de minuscules comparaison.
Par Exemple:
ou
les deux vous donnera en sortie vrai
Qui fonctionneront à chaque fois que n'importe entrée et de garder l'entrée de l'utilisateur comme il a été insérés! Avoir du plaisir avec elle.
rules.upper() == rulesa.uppper()
après(rules.lower() == rulesa.lower())
?string.lower()
ne change pas le cas destring
.