理想的には、ユーザーに「小」または「S」、「中」または「M」、「大」または「大」を入力することができます。 L "となる。これは大文字と小文字を区別しないので、「s」や「smaLL」などは良いです。「M」だけを入力すると、範囲外のインデックスコードに対してエラーが発生し、小さなものとして計算されます。大きなものは私に媒体を与えます。助けて?文字列チェックを実行する際に「IndexError:リストインデックスが範囲外です」
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")
「beverageSize.lower()== 'medium''を使用してください。 –
あなたは本当に物事を複雑にしました。 '' s '、' small '} 'で' beverageSize.lower()を使って 's'や' small'が入力されたかどうかを調べることができます。 –
しかし、私はプロンプトを大文字と小文字を区別しないようにしようとしています。つまり、Medium、MEdium、MEdiUM、そして私が望む他の組み合わせです。 .lowercase()は、私にすべて小文字を与えるだけでしょうか? –