코딩 스쿨에 오신것을 환영합니다~~

질의응답 게시판

 
introduction to 파이썬 291p S-7-1 질문드립니다.
김 * 림 | 2021-10-13

def select(number):
    Prime_Yes=True

    for i in range(2,number):
        if number%i==0:
            Prime_Yes=False
            break
    
    return Prime_Yes

num_in=int(input("n값을 입력해 주세요: "))

print("2 ~ %d까지의 정수 중 소수:" %num_in, end =" ")
for a in range(2,num_in+1) :
    is_prime=select(a)
    if is_prime :
        print(a,end=" ")

1. 함수를 정의할 때 'Prime_Yes=True'는 Prime_Yes 라는 변수를 항상 참이다고 정의하는 건가요?

2. print 뒤에 for 반복문에서 'if is_Prime :'이 무슨 의미인가요?
  항상 if 반복문은 'if 변수 =(다른 연산자 포함) 조건:' 형식으로 사용되는   
  것 같은데 'if 변수 :' 형식은 무엇을 의미하는지 모르겠습니다.

  • 관 * 자
  • 2021-10-13 (20:41)
1. 네. Prime_Yes 변수에 True를 저장합니다.

2. is_Prime는 select() 함수의 반환 값을 가집니다. True 또는 False 값을 가집니다. if True :는 조건식이 참이되는 것을 의미하고 if False :는 조건식이 거짓이 됨을 의미합니다.^^
  • 김 * 림
  • 2021-10-14 (05:29)
관리자님 이 문제에 대하여 질문이 또 있습니다.
 1.print("2 ~ %d까지의 정수 중 소수:" %num_in, end =" ")을 실행하면
   "2~(num_in)까지의 정수 중 소수:"가 출력 되고 그 다음 줄에 소수가 출
   력되어야 맞지 않나요?
    제 말은 
    2~(num_in)까지의 정수 중 소수:
    2, 3, 5, 7..... 47

    이런 식으로 출력되어야 맞지 않나 싶습니다.(왜 이렇게 출력 되는지 이
    해가 잘 안가요. for 반복문이 print("2 ~ %d까지의 정수 중 소수:" 
    %num_in, end =" ")에 연결되어 그런가요? print 함수는 독립적으로 알
    고 있는데 잘 모르겠습니다.

  2. if True 이면 출력하고 if False이면 출력이 안되는 이유가 함수를 정
    의할 때 break가 있고 없고의 차이인가요?
  • 관 * 자
  • 2021-10-14 (06:12)
1. 파이썬에서 print() 함수를 사용하면 기본적으로 줄바꿈을 합니다. 
만약 줄바꿈 대신에 다른 작업, 예를 들어 지금과 같이 가로 방향으로 출력하려면 end 키워드를 이용하여 end=" "로 하면, 줄바꿈 대신 공백(" ")이 삽입됩니다. 따라서 가로방향으로 공백 다음에 다음에 오늘 내용이 출력됩니다. 

end="-" 같이 하면 줄바꿈 대신에 하이픈(-)으로 연결하여 가로 방향으로 출력됩니다.

2. select() 함수에서는 반환 값으로 Prime_Yes 변수 값을 반환하고 있습니다. Prime_Yes의 값은 True 또는 False 값을 가집니다.

함수 값의 반환에 대해 인트로덕션 투 파이썬(또는 파이썬 입문, 스타트 파이썬) 책의 함수 부분의 설명을 참고하시면 이해하시는 데 도움이 될거 같습니다.^^