TOP
class="layout-aside-left paging-number">
본문 바로가기
[파이썬 Projects]/<파이썬 기초>

[파이썬] 파이썬기초: 제어문 - for문

by 기록자_Recordian 2024. 6. 16.
728x90
반응형
시작에 앞서
해당 내용은 '<Do it! 점프 투 파이썬> 박응용 지음. 이지스 퍼블리싱' 을 토대로 작성되었습니다. 보다 자세한 내용은 해당 서적에 상세히 나와있으니 서적을 참고해 주시기 바랍니다.

제어문

 

[제어문 종류]


for문 (반복문)의 기본 구조

 

<for문의 기본 구조>
for 변수 in 리스트 (또는 튜플, 문자열):
    수행할 문장1
    수행할 문장2
    ....

 

[for문의 사용 예]

▶ ['one', 'two', 'three'] 리스트의 첫 번째 요소인 'one'이 먼저 i 변수에 대입된 후 print(i) 문장을 수행하고, 두 번째 요소가 반복되고, 리스트의 마지막 요소까지 이를 반복한다.

 

[다양한 for문의 사용]

 

[for문의 응용]

예제.
총 5명의 학생이 시험을 보았는데 시험 점수가 60점이 넘으면 합격이고 그렇지 않으면 불합격이다. 합격 불합격 여부를 출력하시오.


for문과 continue문

 

for문 역시 continue문을 사용할 수 있다. 즉 for문 안의 문장을 수행하는 도중에 continue문을 만나면 for문의 처음으로 돌아가게 된다.

 

앞의 for문 응용 예제를 그대로 사용하되, 합격인 사람(60점 이상)에게는 축하 메시지를 보내고 나머지 사람(60점 이하)에게는 아무 메시지도 전하지 않는 프로그램을 만들어보자.

▶ 점수가 60점 이하인 학생일 경우에는 score < 60이 참이 되어 continue문을 수행한다.


for문과 함께 자주 사용하는 range 함수

 

for문은 숫자 리스트를 자동으로 만들어주는 range 함수와 자주 사용되는 경우가 많다.

 

▶ a 변수 내의 숫자는 0부터 9까지, b 변수는 1부터 10까지이다.

 

[range 함수 예시]

1부터 10까지 더하기

 

앞서 합격한 학생들에게 축하 메시지를 보내는 예제를 range 함수를 적용해보면

▶ len(scores) 의 경우, scores 의 요솟값이 5개 이므로, range(len(scores)) = range(5)

 

Q. for문과 range 함수를 사용하여 1부터 100까지 더하기

 

[for와 range를 사용한 구구단]

▶ print(i*j, end= ' ')와 같이 매개변수 end를 넣어준 이유는 해당 결괏값을 출력할 때 다음 줄로 넘기지 않고 그 줄에 계속해서 출력하기 위해서이다.

또한, print(' ' )는 2단, 3단 등을 구분하기 위해 두 번째 for문이 끝나면 결괏값을 다음 줄부터 출력하게 하기 위함이다.

 

Q. A학급 학생들의 중간고사 평균 점수 구하기


리스트 내포 (List comprehension) 사용하기

 

<리스트 내포 문법>
[표현식 for 항목 in 반복 가능 객체 if 조건]

 

아래는 a 리스트의 각 항목에 3을 곱한 결과를 result 리스트에 담는 예제이다.

이를 리스트 내포를 사용하면

▶ 만약 특정 조건을 대입하고 싶으면 리스트 내포 안에 if 조건을 사용할 수 있다.

 

※ for문을 2개 이상 사용하는 것도 가능하다.

<for문을 여러 개 사용할 때의 문법>
[표현식 for 항목1 in 반복 가능 객체1 if 조건1
            for 항목2 in 반복 가능 객체2 if 조건2
             ...
            for 항목n in 반복 가능 객체n if 조건n]

 

만약 구구단의 모든 결과를 리스트에 담고 싶은 경우 리스트 내포를 사용하면 간단하게 구현할 수 있다.

# 구구단 (리스트 내포)
result = [x*y for x in range(2, 10)
              for y in range(1, 10)]
print(result)

 

Q. 홀수에만 2를 곱하여 저장하는 코드를 리스트 내포를 사용하여 표현하기.

 

<변경 전 코드>

<리스트 내포 사용>

 


전체 코드

03. if_while_for.ipynb
0.03MB

728x90
반응형