숫자의 계승을 계산하는 프로그램을 작성했지만 테스트를 위해 부동 소수점 숫자를 입력하면 충돌이 발생합니다. 목표는 부동 소수점을 수락하지만 계산하지 않는 것입니다. 프로그램이 수락하지만 "잘못된 항목"과 같은 것을 반환하므로 정수 만 허용됩니다. 여러 문장을 시도했지만 문장에 넣은 숫자에 대해서만 작동합니다. 그래서 아마 뭔가를 만들어야 할 것 같았습니다. 어쩌면 일부 플로팅의 이름을 지정하고 일종의 빼기를 수행했을 것입니다. 그러나 나는 길을 잃는다. int('3.2')
(또는 다른 플로트 문자열)에서 오류가 발생하기 때문에,파이썬 프로그램이 멈추는 것을 막을 수있는 방법
def main():
# take input from the user
num = int(input("Enter a number: "))
factorial = 1
if num > 100:
print("Bad entry. It should be an integer less than or equal to 100!")
print("Please try again: ")
elif num == 0:
print("The factorial of 0 is 1")
elif num < 0:
print("Bad entry. It should be an integer superior than or equal to 0!")
print("Please try again: ")
else:
for i in range(1,num + 1):
factorial = factorial*i
print("The factorial of",num,"is",factorial)
main()
수정 확인 – ForceBru
입력 한 번호를 확인하는 방법은 [이 게시물을 참조하십시오 (http://stackoverflow.com/questions/4541155/check-if-a-number-is-int-or-float) 참조). 완전한. – RedX
부동 소수점 문제를 해결하기 위해 시도한 것을 포함하고 그것이 "충돌"하는 방법을 포함하십시오. 잡히지 않는 예외가 있습니까? –