질문하신 내용은 다음과 같다는 말씀이신거지요?
def isPrimeNumber(num) :
prime_yes = True
for i in range(2, num) :
if num % i == 0 :
prime_yes = False
break
return prime_yes
n = int(input('n값을 입력해 주세요 : '))
for a in range(2, n+1) :
is_prime = isPrimeNumber(a)
if is_prime :
print(a, end=' ')
print('2 ~ %d까지의 정수 중 소수 :' % n, end = ' ')
실행결과 :
n값을 입력해 주세요 : 10
2 3 5 7 2 ~ 10까지의 정수 중 소수 :
>>>
아마 이부분에서 헷갈리신 것 같아요.
def isPrimeNumber(num) :
...
위의 def로 정의된 isPrimeNumber(num)는 프로그램 실행 시 먼저 실행되지 않습니다.
함수 정의는 함수가 호출이 되었을 때만 실행됩니다.
따라서 프로그램 실행 순서는 다음과 같습니다.
1. n = int(input('n값을 입력해 주세요 : '))
2. for a in range(2, n+1) :
is_prime = isPrimeNumber(a)
if is_prime :
print(a, end=' ')
여기서 isPrimeNumber(a)에 의해 함수 호출이 일어나서 정의된 함수가 실행된 다음 반환 값 prime_yes 가 얻어지고 print(a, end=' ')에 의해 소수가 출력됩니다.
3. print('2 ~ %d까지의 정수 중 소수 :' % n, end = ' ')
이 부분에 의해 입력된 정수가 실행되니 실행결과와 같은 결과가 나오게 됩니다.
책 198, 199쪽의 함수로 사용될 때에 실행 순서를 다시 한번 살펴보시기 바랍니다.^^