• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

main()에서 오답

18.05.06 13:00 작성 조회수 92

0

과제의 def main()코드를 수정했고, 결과가 과제에서 예시로 제시된 것과 동일하게 나오는 것 같은데 여전히 main에서 fail 이라고 채점되네요. 채점 시스템 상에서 오답으로 분류되는 문제가 있는게 아닐까 싶기도 한데요. 코드와 결과를 첨부하니 답변 부탁드립니다!

def main():

# ===Modify codes below=============

user_input = 999

while user_input is not 0:

user_input = input("Input a positive number : " )

if is_positive_number(user_input) is True: # 입력값이 양수인가?

result = get_factorial_value(int(user_input)) # True 이면 int로 변환 후 factorial 계산

print(result) # 결과 출력

elif user_input == "0": #입력값이 양수가 아니고 0이라면

user_input = 0 # 프로그램 종료를 위해 입력값을 0으로 지정

else: # 입력값이 양수도 0도 아니면

print("Input again, please") # 다시 입력 하시오.

print("Thank you for using this program")

결과입니다

https://drive.google.com/open?id=19APNKPUj3u8i3OwjxZpiCnaOZQw78JEf

답변 1

답변을 작성해보세요.

0

Inf_Learn님의 프로필

Inf_Learn

질문자

2018.05.12

원래 제가 작성한 코드도 과제에서 요구하는 바와 틀리지 않는다고 생각합니다만, 두 가지를 고쳤더니 pass 되었습니다. 다른 분들을 위해 적어 놓습니다.
[1]
is_positive_number()를 수정해서, 5, 6, 11과 같은 자연수 뿐 아니라 5.0, 6.000, 11.00과 같은 '소수'도 factorial을 계산하게끔 바꿨습니다. (그런데 이게 채점에서 문제가 되는지는 저도 잘 모르겠습니다.)
[2]
main()의 while 구문에서
elif user_input == "0" 를
elif is_positive_number(user_input) is False and user_input is "0": 으로 고쳤습니다.