본문 바로가기
SK 행복성장캠퍼스/Python 기초

0902_3일차_반복문_for문

by NickNuma 2020. 9. 6.

if문에 이어 반복문 for와 while에 대해 써보도록 하겠습니다.

"""
    문장 2 종류

    1) 실행문
        가. 순차문  : 일반적으로 순차적으로 진행되는 문장
        나. 제어문
            - 조건문 (분기문) : 단일 if문, if ~ else문, 다중 if문, 3항 연산자 (*****)
                            : 중첩 가능            
            - 반복문   : for문 
                        while문
                        ( do ~ while문 지원 x )                        
                        
            * 주의할점
                : 콜론(:)을 사용하는데
                반드시 콜론(:) 다음 문장은 들여쓰기 해야한다.

    2) 비실행문 ( 주석문 )
        - 한 줄 주석문 : hash tags ( # )
        - 멀티 주석 : triple quotation marks (""" """ / ''' ''')

"""

 


for문for 변수 in 집합형 데이터로 작동합니다.
for와 else를 함께 사용할 수 있는데, 이 때, for문이 정상적으로 종료되었을 때 else문이 작동합니다.

"""
    1. for 문
    
    문법1:
        for 변수 in 집합형 데이터:      # 집합형 데이터의 갯수만큼 반복
            문장
            
    문법2:
        for 변수 in 집합형 데이터:      # 집합형 데이터의 갯수만큼 반복
            문장
                 
        else:                        # 정상적인 반복 종료 시에만 실행
            문장                          (break문으로 종료시에는 실행 x)
            
"""

 


1. 집합형 데이터를 이용해 for문을 반복할 수 있습니다.
   (집합형 데이터반복 횟수를 지정하는데만 사용합니다.)

for n in [1, 2, 3, 4, 5]:
    print("hello")      # hello  # hello  # hello  # hello  # hello

for m in "abcde":
    print("world")      # world  # world  # world  # world  # world

 


2. 집합형 데이터를 이용해 for문을 반복 + 해당 데이터를 출력합니다.

x = [100, 300, 400, 500]
for y in x:
    print(y)        # 100  # 200  # 300  # 400  # 500

for q in "car":
    print(q)        # c  # a  # r

for q in (1, 2, 3):
    print(q)        # 1  # 2  # 3

for e in {90, 70, 40}:   # 셋은 순서가 없어서 순서대로 출력은 안 됨
    print(e)        # 40 90 70

 


3. for ~ else    :    for문의 정상 죵료시, else로 정상 종료를 확인합니다.

for a in (1, 2, 3):
    print(a)                      # 1  # 2  # 3
else:
    print("정상 종료 합니다.")     # 정상 종료 합니다.

 


4. dict를 이용하여 for문을 사용할 수 있습니다.
   어떻게 dict의 값을 호출하느냐에 따라서 for문이 반환하는 value가 달라집니다.
   { key : value, .... }, .keys(), .values(), .items()  /  print(for 변수), print(for 변수, dict[for 변수], print(for key 변수, for value 변수)

#dict 사용 가능     # key 값 출력
for e in {'name': '홍길동', 'age': 30, 'address': '제주', 'email': 'hong@gmail.com'}:
    print(e)       # name age address email
print("=" * 50)

k = {'name': '홍길동', 'age': 30, 'address': '제주', 'email': 'hong@gmail.com'}
for e in k:
    print(e, k[e])  # key 값과 value 함께 출력    # name 홍길동  # age 30  # address 제주  # email hong@gmail.com
print("=" * 50)

k = {'name': '홍길동', 'age': 30, 'address': '제주', 'email': 'hong@gmail.com'}
for e in k.keys():  # key 값 출력
    print(e)        # name  # age  # address  # email
print("=" * 50)

k = {'name': '홍길동', 'age': 30, 'address': '제주', 'email': 'hong@gmail.com'}
for e in k.keys():  # key 값과 value 함께 출력
    print(e, k[e])  # name 홍길동  # age 30  # address 제주  # email hong@gmail.com
print("=" * 50)

k = {'name': '홍길동', 'age': 30, 'address': '제주', 'email': 'hong@gmail.com'}
for e in k.values(): # value 값 출력
    print(e)         # 홍길동  # 30  # 제주  # hong@gmail.com
print("=" * 50)

k = {'name': '홍길동', 'age': 30, 'address': '제주', 'email': 'hong@gmail.com'}
for e in k.items():  # [(key, value), (key, value),...]
    print(e)         # (key, value) 형태의 튜플 출력
print("=" * 50)      # ('name', '홍길동')  # ('age', 30)  # ('address', '제주')  # ('email', 'hong@gmail.com')

k = {'name': '홍길동', 'age': 30, 'address': '제주', 'email': 'hong@gmail.com'}
for key, value in k.items(): # [(key, value), (key, value),...] ***
    print(key, value)        # 변수 동시 할당이 가능해서 이렇게 쓸 수 있는 것
print("=" * 50)              # name 홍길동  # age 30  # address 제주  # email hong@gmail.com

 


for문의 집합형 데이터로 range() 함수를 사용할 수 있습니다. ==> 반복문의 반복 횟수가 중요할 때 사용합니다.
   range(start, end)시작과 끝을 특정 값으로 규제할 수 있습니다.  range(1, 10)  => 1, 2, 3, 4, 5, 6, 7, 8, 9
   range(start, end, step)로 시작과 끝, step을 지정할 수 있습니다. range(1, 10, 2) => 1, 3, 4, 7, 9

"""
    range 함수 (*****)    횟수가 중요할 때 사용.  ( # __builtins__의 함수 )
        
    1) range(n) : n개의 집합형 데이터 생성
        예> range(10 : 10개의 데이터, 0 ~ 9까지의 정수 값
    2) range(start, end) : start 값부터 end값의 집합형 데이터 생성. ( start <= range < end )
    3) range(start, end, step) : start 값부터 end 값까지 step 수 만큼 증가
     
"""

 


1. for문의 동작 횟수가 중요할 때 ==> range()를 사용합니다.

# for문 동작 횟수가 중요할 때 ==> range 함수 사용
for n in range(10):
    print(n, end = " ")     # 0 1 2 3 4 5 6 7 8 9 끝
print("끝")

for n in range(10, 20):     # 10 11 12 13 14 15 16 17 18 19 끝
    print(n, end=" ")
print("끝")

for n in range (1, 10, 2):
    print(n, end=" ")       # 1 3 5 7 9 끝
print("끝")

 


반목문을 사용하면서 2가지 키워드를 사용할 수 있습니다.  ==> break문, continue
1) break문 ==> 반복문을 빠져나옵니다.
2) continue문 ==> 반복 예정인 grouping된 문장 중 임의의 문장을 skip합니다.

"""
   반복문에서 사용 가능한 2가지 키워드

    1) break 문
        => 반복문 빠져나올 때 사용.
            (기본적으로 반복문은 지정된 반복 횟수가 모두 끝나야 반복문을 빠져나오게 되지만
             break 문을 만나면 반복 횟수와 무관하게 빠져나올 수 있다.)

    2) continue 문
        => 반복 예정인 그룹핑된 문장 중 임의의 문장을 skip할 때
"""     

 


1. 정상 종료된 반복문 (일반 for문)

# 1. 정상 반복 종료
for n in range(3):
    print("Hello", n)       # Hello 0  # Hello 1  # Hello 2
else:
    print("정상종료")        # 정상종료
print("end")                # end 

 

2. break문을 이용한 반복 종료

# 2. break문을 이용한 반복 종료
for n in range(3):
    print("world", n)               # world 0  # world 1  # world 2
    if n == 2:
        print("break문에 의한 종료")  # break문에 의한 종료
        break
else:
    print("정상종료")
print("end")                        # end

 

3. continue문을 이용한 반복문

# 2. break문을 이용한 반복 종료
for n in range(3):
    print("world", n)               # world 0  # world 1  # world 2
    if n == 2:
        print("break문에 의한 종료")  # break문에 의한 종료
        break
else:
    print("정상종료")
print("end")                        # end

for 반복문을 마치고 다음엔 List comprehension과 dict comprehension에 대해 알아보겠습니다.

그럼 이만~

반응형

'SK 행복성장캠퍼스 > Python 기초' 카테고리의 다른 글

0903_4일차_List/Dict Comprehension  (0) 2020.09.06
0902_3일차_연습문제  (0) 2020.09.06
0902_3일차_조건문  (0) 2020.09.06
0902_3일차_딕셔너리  (0) 2020.09.06
0902_3일차_셋  (0) 2020.09.05

댓글