Idéalement, j'aimerais pouvoir demander aux utilisateurs de "Small" ou "S", "Medium" ou "M" et "Large" ou " L "lors de la détermination des prix des boissons. Tout est insensible à la casse, donc "s" ou "smaLL" est bon, etc. Si je saisis juste un 'M', j'obtiens une erreur pour un code d'index hors de portée, et il calcule comme un petit. Un gros me donne un médium. Aidez-moi?"IndexError: indice de liste hors de portée" lors de la vérification de chaîne
print("Ie. 'S', 'M', 'L', 'Small', 'Medium, 'Large'" +
" or any variations in their letter case sensitivity will work.")
beverageSize = str(input("Input your desired size: "))
print("")
if len(beverageSize) > 1 and len(beverageSize) < 5:
exit(print("Error with choice of beverage input."))
elif beverageSize.startswith("S") or beverageSize.startswith("s") and\
beverageSize is beverageSize.isalpha() and len(beverageSize) == 0 or len(beverageSize) == 4 or\
beverageSize[0] == "S" or beverageSize[0] == "s" and\
beverageSize[1] == "M" or beverageSize[1] == "m" or beverageSize[1] == "" and\
beverageSize[2] == "A" or beverageSize[2] == "a" or beverageSize[2] == "" and\
beverageSize[3] == "L" or beverageSize[3] == "l" or beverageSize[3] == "" and\
beverageSize[4] == "L" or beverageSize[4] == "l" or beverageSize[4] == "" and\
len(beverageSize) != 5:
beverageSize = SMALL_SIZE
print("SMALl")
elif beverageSize.startswith("M") or beverageSize.startswith("m") and\
beverageSize is beverageSize.isalpha() and\ len(beverageSize) == 0 or len(beverageSize) == 5 or \
beverageSize[0] == "M" or beverageSize[0] == "m" and\
beverageSize[1] == "E" or beverageSize[1] == "e" or beverageSize[1] == "" and\
beverageSize[2] == "D" or beverageSize[3] == "d" or beverageSize[3] == "" and\
beverageSize[3] == "I" or beverageSize[3] == "i" or beverageSize[3] == "" and\
beverageSize[4] == "U" or beverageSize[4] == "u" or beverageSize[4] == "" and\
beverageSize[5] == "M" or beverageSize[5] == "m" or beverageSize[5] == "":
beverageSize = MEDIUM_SIZE
print("MEDIUM")
S'il vous plaît utilisez simplement 'si beverageSize.lower() == « medium''. –
vous avez vraiment fait des choses beaucoup trop compliquées. Utilisez 'beverageSize.lower() dans {' 's', 'small'} 'pour tester si' s' ou 'small' a été saisi, dans tous les cas. –
mais j'essaie de rendre l'invite insensible à la casse, donc Medium, MEdium, MEdiUM et toute autre combinaison que je souhaite. .lowercase() me donnerait tout en minuscule, n'est-ce pas? –