게시판
검색 결과: 32
- 1 (current)
- 2
- 3
- 4
- 다음
포럼 상단 고정에 있는 시각화 사이트입니다.
여기서 코드를 단계별로 실행해보세요.
Next 버튼으로 실행하면서 코드가 실행되는 단계를 살펴보면 됩니다.
끝자리가 3이 아닐 때는 continue로 건너 뜁니다. 이때는 i를 1 증가시켜서 처리하고요.
그러나 끝자리가 3이면 첫 번째 if 블록은 실행되지 않습니다. i를 1 증가시키는 코드가 없죠.
끝자리가 3인 숫자를 출력하는 print가 실행되고, i를 증가시켜야 합니다. 그래야 다음 숫자로 진행할 수 있으니까요.
i를 증가시키는 로직은 두 가지입니다.
1. 끝자리가 3이 아닐 때
2. 끝자리가 3일 때
i를 증가시키는 로직을 하나만 두고 문제를 해결하는 코드를 작성해도 됩니다.
continue, break를 설명하기 위해 다소 작위적으로 만든 예제입니다. 좀 더 간단하게는 다음과 같습니다.
for i in range(0, 74):
if i % 10 == 3:
print(i, end=' ')
0과 73 사이의 숫자 중 3으로 끝나는 숫자만 출력되게 만드려는 코드를 작성했습니다.
그런데 교재에 보면 마지막에
print(i, end=' ')
i+=i
코드가 붙어있는 것을 볼 수 있는데요.
여기서 i+=i 가 왜 추가되어있는지 모르겠습니다.
물론 저 코드를 빼고 실행시켜보니 3 3 3 3 3 3 ... 으로 이루어진 무한 루프가 돌아가고 있음을 확인했습니다. 하지만 원리를 모르겠어서 질문드립니다.
지금 보니 마지막의 print 구문의 들여쓰기가 안되어 있었네요.
감사합니다!
다음 검색 용어는 이 메시지의 HTML 마크업에서만 나타납니다. 8.5
IDLE에서 >>> 프롬프트가 아니라 파일을 생성해서 스크립트로 작성하고 실행해야 합니다.
https://glot.io/snippets/g9wthax45n
온라인 실행으로 작성해뒀습니다.
Run 버튼을 클릭하면 됩니다.
결과가 잘 나오는 것을 확인할 수 있습니다.
IDLE 메뉴에서 FILE > New File을 선택해서 스크립트로 작성합니다.
F5 키로 실행하면 결과가 나옵니다.
둘 다 문제가 없습니다.
코드 작성 과정에서 들여쓰기가 달라서 무한 루프가 될 가능성이 있습니다.
들여쓰기를 잘 확인해주세요.
그대로 코드를 입력하면 터미널에선 아무것도 뜨지 않으며 무한반복이 됩니다. 디버그모드로 확인해 보니 3번 라인과 6번 라인을 계속 무한으로 돌고 있네요.
지금 몇번째 확인하는데도 코드는 분명히 맞게 입력했는데도 불구하고 마찬가지네요.
korean, english, math, science = map(int, input().split(','))
문의한 코드는 삭제합니다.
틀렸다고 나오는데 못찾겠습니다.. 도와주세요
(도장_ 관리자님이 수정함 - 원문 제출일: 금요일, 10 9월 2021, 7:50 오후)
Traceback (most recent call last): File "main.py", line 1, in <module> korean, english, math, science = map(int, input().split(',')) ValueError: invalid literal for int() with base 10: '90 81 86 80'이는 첫 번째 코드에서 잘못된 부분이 있다는 뜻입니다.
ValueError: invalid literal for int() with base 10: '90 81 86 80'ValueError이므로 값이 잘못되었다는 뜻입니다.
90 81 86 80
>>> a
10
>>> print(a)
10
False
>>> print(a > 10)
False
>>>
표준 입력으로 국어, 영어, 수학, 과학 점수가 입력됩니다. 국어는 90점 이상, 영어는 80점 초과, 수학은 85점 초과, 과학은 80점 이상일 때 합격이라고 정했습니다(한 과목이라도 조건에 만족하지 않으면 불합격). 다음 소스 코드를 완성하여 합격이면 True, 불합격이면 False가 출력되게 만드세요(input에서 안내 문자열은 출력하지 않아야 합니다).
이 문제에
a, b, c, d = map(int, input().split())
a >= 90 and b > 80 and c > 85 and d >= 80
을 입력했는데 틀렸다고 나와요 어디가 잘못된걸까요...
IDLE에서 실행하는 것과 스크립트로 실행하는 것은 다릅니다.
UNIT 3에서 Hello World 예제를 이용해 두 가지 방법의 차이점을 설명했습니다. UNIT 3을 복습하세요.
IDLE에서
>>> a = 30>>> a
- 1 (current)
- 2
- 3
- 4
- 다음