저는 코딩 작업을 처음부터 끝 냈습니다. 그래서 여기에 있습니다. 그냥 간단한 숫자 추측 게임을 작성하려고하지만 입력 유효성 검사도 수행하십시오. 따라서 정수 만 입력으로 허용됩니다. 알파벳 문자를 제거하는 방법을 알아 냈으므로 숫자를 정수로 변환 할 수 있습니다. 나는 플로트 넘버를 넣을 때 문제가있다. 나는 float 넘버를 정수로 변환 할 수 없다. 어떤 도움을 주셔서 감사합니다. 내가 말했듯이이 코딩 일 3 일쯤 되니 내 작은 지식을 이해하려고 노력하십시오. 미리 감사드립니다.파이썬에서 float 문자열을 정수로 변환하는 방법 3
내 메인 프로그램의 기능은 다음과 같습니다.
def validateInput():
while True:
global userGuess
userGuess = input("Please enter a number from 1 to 100. ")
if userGuess.isalpha() == False:
userGuess = int(userGuess)
print(type(userGuess), "at 'isalpha() == False'")
break
elif userGuess.isalpha() == True:
print("Please enter whole numbers only, no words.")
print(type(userGuess), "at 'isalpha() == True'")
return userGuess
4.3 (또는 임의의 실수)을 입력으로 사용하면 오류가 발생합니다.
Traceback (most recent call last):
File "C:\\*******.py\line 58, in <module>
validateInput()
File "C:\\*******.py\line 28, in validateInput
userGuess = int(userGuess)
ValueError: invalid literal for int() with base 10: '4.3'
try-except를 사용하여 전환을 연결하려고 할 수 있습니다. int() 변환에서 ValueError 예외가 발생하면 float()을 사용하여 입력을 변환 한 다음 float 값을 정수로 반올림하거나자를 수 있습니다. – nullop
몇 가지 메모 :'if spam == False :',''spam :''not only :''spam :''을 확인하고 싶지는 않을 것입니다. 'elif'에서'if' 테스트의 반대쪽을 다시 검사 할 필요가 없습니다. 거짓인지 아닌지 알고 있기 때문에'isalpha'는 이미 true입니다. 그래서, 그냥'else :'를 사용하십시오. 이 함수에서'userGuess'를 반환한다면 거의 확실하게'global' 일 필요는 없습니다. 그리고 마지막으로'return'을 치기 위해'break '할 필요는 없습니다. 'if' 블록에 바로 userGuess를 반환 할 수 있습니다. – abarnert