"Small"또는 "S", "Medium"또는 "M"및 "Large"또는 " 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")
if beverageSize.lower() == 'medium''을 사용하십시오. –
정말 복잡하게 만들었습니다. ''s ','small '}'에서'beverageSize.lower()를 사용하여's' 또는'small'이 어떤 경우 에든 입력되었는지 테스트하십시오. –
하지만 프롬프트를 대소 문자를 구분하지 않도록하려고합니다. 보통, MEdium, MEdiUM 및 기타 원하는 조합입니다. .lowercase()는 나에게 소문자를 모두 주겠습니까? –