현재 사용자가 0-4 사이의 숫자를 입력하는 프로그램을 작성해야하는 할당 작업을하고 있습니다. 그런 다음 프로그램은 사용자가 특정 문자열을 입력하고 출력하는 번호를 확인합니다. 예를 들어 사용자가 4를 입력하면 프로그램은 "80 이상 : Level 4"를 출력합니다.정수와 문자열 충돌
문제는 사용자가 프로그램을 종료 할 수 있어야한다는 것입니다. 나는 프로그램을 작성하기로 결정 했으므로 사용자가 공백이 아닌 것을 입력하면 (입력! = "":) 프로그램이 실행되지만 입력을 선택하면 프로그램이 종료됩니다. 나는 문제가 "동안 활성화 어떤 경우에만 문자열을 받아 raw_input을 사실과 관련이있다 꽤 알고 있어요
def get_level():
level = raw_input("Enter a number from 0-4 (Press <Enter> to quit): ")
return level
def check_mark(level):
if int(level) == 4:
print "80 or above: Level 4"
elif int(level) == 3:
print "70 - 79: Level 3"
elif int(level) == 2:
print "60 - 69: Level 2"
elif int(level) == 1:
print "50 - 59: Level 1"
elif int(level) == 0:
print "Below 50: Level 0"
else:
print "ERROR: out of range"
def output(level):
while level != "":
level = raw_input("Enter a number from 0-4 (Press <Enter> to quit): ")
check_mark(level)
print
def main():
user_level = get_level()
user_mark = check_mark(user_level)
print
program_output = output(user_level)
main()
:
이
내가 지금까지 가지고 올 한 코드 level! = "": "문. 각 레벨 전에 int() 연산자를 배치하여이 문제를 해결하기 위해 노력했습니다. 문제는 입력이 정수인지 검사하기 때문에 사용자가 공백을 입력하면 입력과 충돌한다는 것입니다. 어쨌든 그런 것.누군가가이 문제를 해결하기 위해 나를 안내 할 수 있기를 바랍니다. 대단히 감사하겠습니다! 내가 입력을 검증 주위에있는 바로 가기가 htink하지 않는
def output(level):
level = raw_input("Enter a number from 0-4 (Press <Enter> to quit): ")
while level != "":
check_mark(level)
level = raw_input("\nEnter a number from 0-4 (Press <Enter> to quit): ")
에 전화를 할 때 그냥
check_mark
에 expection를 확인할 수 있도록나는 따라 처리하는 모든 입력을 확인하는 것 두 배 (거의) 같은 'raw_input (...)'- 작동하더라도 매우 우아 해 보이지 않습니다. – eumiro
아, 지금 정말 바보 같아. 간단한 재배치가 트릭을했을 때 코드를 그렇게 구조화하지 말았어야했습니다. 어쨌든 나는 앞으로 질문 할 때까지 더 생각할 것입니다. 도와 주셔서 감사합니다 :) – Jertise