본문 바로가기
파이썬(Python)/파이썬(Python) 기초

파이썬(Python) 3장 제어문 - 3. for문

by 인생즐겜러 2022. 7. 4.
728x90
반응형

1. for 기본 구조 및 예

2. continue

3. range 함수

4. 리스트 내포

 

 

 

 

 


 

 

 

 

 

1. for 기본 구조 및 예

 

기본구조

for 변수 in 리스트(또는 튜플, 문자열):
    수행할 문장1
    수행할 문장2
    ...

 

 

 

 

 

예1

 

>>> list1 = ['neo', 'im', 'ma'] 
>>> for i in list1: 
...     print(i)
... 
neo 
im 
ma

 

리스트의 순서대로 for문으로 반복되어 전부 출력된 것을 볼 수 있다.

 

 

 

 

 

예2

 

>>> a = [(1,2), (3,4), (5,6)]
>>> for (first, last) in a:
...     print(first + last)
...
3
7
11

 

(first, last) = (1, 2) 는 튜플의 대입 방법에 따라 first = 1, last = 2 로 들어가게 된다.

때문에 위의 예제는 각 튜플의 요소끼리 더한 값을 출력하는 예시이다.

 

 

 

 

 

예3


5명의 자원자가 키가 170이상이면 입대고 그렇지 않으면 불합격이다.

해당 결과를 코딩하라.

height = [168, 176, 180, 166, 172]

 

height = [168, 176, 180, 166, 172]

number = 0 
for man in height: 
    number = number +1 
    if man >= 170: 
        print("%d번 자원자는 군대 갑시다." % number)
    else: 
        print("%d번 자원자는 불합격입니다." % number)

 

 

 

 

 


 

 

 

 

 

2. continue

 

while 문과 마찬가지로 continue문을 만나면 for문의 처음으로 돌아가게 된다.

 

height = [168, 176, 180, 166, 172]

number = 0 
for man in height: 
    number = number +1 
    if man < 170: 
        continue
    print("%d번 자원자 축하합니다!!! 군대 갑시다." % number)

 

 

 

 

 


 

 

 

 

 

3. range 함수

 

range(시작 숫자, 끝 숫자) 형태, 이때 끝 숫자는 포함되지 않는다.

for문과 같이 사용하게 되면 변수의 범위 설정 시 매우 편하다.

 

1. 예1
>>> a = range(10)
>>> a
range(0, 10)



2. 예2
>>> a = range(1, 11)
>>> a
range(1, 11)

 

 

 

 

 

for와 자주 사용되는 예시

 

예1

>>> add = 0
>>> for i in range(1, 10): 
...     add = add + i 
... 
>>> print(add)
45

 

 

 

 

 

예2

height = [168, 176, 180, 166, 172]

number = 0 
for man in range(len(height)): 
    if height[man] < 170: 
        continue
    print("%d번 자원자 축하합니다!!! 군대 갑시다." % (man+1))

 

2. continue의 예시를 range 함수를 이용해서 변형했다.

range(len(height)) = range(5) = 0~4 가 man으로 들어간다.

if에서는 height의 리스트의 값들이 들어가야하므로

0~4를 인덱스 삼아 리스트 값을 뽑아온다.

마지막 줄에서는 인덱스 값인 man을 자원자 숫자에 맞게 맞춘다.

 

 

 

 

 

예3

 

>>> for i in range(2,10):
...     for j in range(1, 10): 
...         print(i*j, end=" ") 
...     print('') 
... 
2 4 6 8 10 12 14 16 18 
3 6 9 12 15 18 21 24 27 
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54 
7 14 21 28 35 42 49 56 63 
8 16 24 32 40 48 56 64 72 
9 18 27 36 45 54 63 72 81

 

 end는 해당 결괏값을 출력할 때 다음줄로 넘기지 않고 그 줄에 계속해서 출력하기 위해 있다.

그 다음 print(' ')는 두 번째 for문이 끝나면 다음 줄부터 출력하게 해주는 문장.

 

 

 

 

 


 

 

 

 

 

4. 리스트 내포

 

리스트 안에 for문을 포함하는 방법이다.

 

 

 

리스트 내포의 구조

 

[표현식 for 항목 in 반복가능객체 if 조건문]

 

for문을 2개 이상 사용할 때는 아래와 같다.

 

[표현식 for 항목1 in 반복가능객체1 if 조건문1
        for 항목2 in 반복가능객체2 if 조건문2
        ...
        for 항목n in 반복가능객체n if 조건문n]

 

 

 

 

 

예시

 

1. 리스트 내포 예시
>>> a = [1,2,3,4]
>>> result = [num * 5 for num in a]
>>> print(result)
[5, 10, 15, 20]



2. 리스트 내포에 if 포함
>>> a = [1,2,3,4]
>>> result = [num * 5 for num in a if num % 2 == 0]
>>> print(result)
[10, 20]



3. for문 2개 이상 사용 시 예제
>>> result = [x*y for x in range(2,10)
...               for y in range(1,10)]
>>> print(result)
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16,
20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42
, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72,
9, 18, 27, 36, 45, 54, 63, 72, 81]

 

 

 

 

 

 

728x90
반응형

댓글