while에서 받은 정수를 append하지 못합니다...
조회수 593회
while True:
listfilter = list()
liststart = list()
n1 = len(liststart)
n2 = len(listfilter)
print("3의 배수와 5의 배수를 제외한 정수의 개수를 구하는 프로그램입니다. 정수를 하나씩 계속 입력하십시오. 0를 입력하면 종료됩니다.")
ans = input()
if int(ans) != 0 :
if int(ans)%3 == 0 or int(ans)%5 == 0 :
listfilter.append(ans)
else:
liststart.append(ans)
else:
print("총",n1,"개의 정수가 입력되었고 3의 배수와 5의 배수를 제외한 정수의 개수는",n1-n2,"개 입니다.")
break
input에서 받은 정수중 3의 배수와 5의 배수를 제외한 정수의 수를 세어주는 코드를 작성했는데 정수를 입력하면 다시 물어봐주고 0을 눌렀을 때 반복에서 빠져나오고 마지막 print까지 해주는데 정수들을 list에 append하지 못해서 list의 개수를 무조건 0으로 인식합니다. 무슨 실수를 저지를 걸까요.
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
실수라고 하기엔 최초 문제와 달랐던 부분도 있네요.
참고 부탁드리겠습니다.
listfilter = list() liststart = list() while True: str = '''3의 배수와 5의 배수를 제외한 정수의 개수를 구하는 프로그램입니다. 정수를 하나씩 계속 입력하십시오. 0를 입력하면 종료됩니다. >> ''' ans = input(str) liststart.append(ans) if int(ans) != 0 : if int(ans) % 3 == 0 or int(ans) % 5 == 0 : listfilter.append(ans) else: n1 = len(liststart) n2 = len(listfilter) print(f"총 {n1} 개의 정수가 입력되었고 3의 배수와 5의 배수를 제외한 정수의 개수는 {n1-n2} 개 입니다.") break
- else문에 len(list)를 넣으면 이전에 했던 제거들이 적용되는 것인 걸까요? 알 수 없는 사용자 2020.10.7 15:52
- 아뇨.... 이부분에 대해서 답변드리기에는 좀 제한될거같고..... 비교해보시고.. 다른 이유에 대해서 공부해보시는게 좋을거 같습니다..... 김호원 2020.10.7 16:07
- 반복하면서 터득하겠습니다. 감사합니다! 알 수 없는 사용자 2020.10.7 16:55
댓글 입력