[파이썬] 반복문

컴공생의 코딩 일기·2021년 8월 3일
0

파이썬

목록 보기
12/17
post-thumbnail

목차

  • for문
    • range()
    • enumerate()
    • set{}
    • dict{}
  • while문

for문

for문은 반복을 해주는 반복문입니다. 파이썬은 다른 언어와 달리 {}(중괄호)를 사용하지 않고 들여 쓰기로 반복문 내부를 판단합니다. 그렇기 때문에 들여 쓰기를 주의하셔야 합니다.

for문 사용 방법

for 카운터 변수 in 반복할 횟수:
    내용....

for 반복문은 in 연산자와 같이 사용됩니다. (for은 보통 리스트와 같이 많이 사용됩니다.)

예제)

# 반복문을 사용하지 않았을 때
hobbies = ['게임', '낮잠', '넷플리스', '공부', '일']

print(hobbies[0])
print(hobbies[1])
print(hobbies[2])
print(hobbies[3])
print(hobbies[4])

출력 결과:
게임
낮잠
넷플리스
공부

# for 반복문을 사용했을 때
hobbies = ['게임', '낮잠', '넷플리스', '공부', '일']
for hobby in hobbies:  # hobbis에 요소를 하나씩 hobby에 대입
    print(hobby)

출력 결과
게임
낮잠
넷플리스
공부

for문을 사용했을 때와 사용하지 않았을 때를 비교하면 코드 줄 갯수 차이가 확실히 차이가 나죠? for 반복문은 이렇게 여러 개의 값을 다루고자 할 때 사용하는 아주 유용한 반복문입니다.

연습문제)

numbers = [
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 0]
] 
리스트를 다음과 같이 출력하기
1 2 3 4 5
6 7 8 9 0
numbers = [
    [1, 2, 3, 4, 5],
    [6, 7, 8, 9, 0]
]

for number in numbers:
    for n in number:
        print(n, end=' ')  # end를 사용해 각 번호마다 공백을 해준다
    print()  # 1 ~ 5 줄이 끝나면 줄 바꿈

출력 결과:
1 2 3 4 5
6 7 8 9 0

range()

range() 함수는 범위를 만드는 함수입니다. range() 함수는 슬라이싱(slicing) 함수와 매우 유사합니다.

range() 함수 사용 방법

range(start, stop, step)
start <= 범위 < step
  1. start: 생략 가능, 생략하면 0으로 시작
  2. stop: 생략 불가능
  3. step: 생략 가능, 생략하면 1씩 증가

예제)

# range(5)  # start 생략,step 생략, stop:5

print(range(5))  # range를 출력할 경우 생략한 start 0 과 stop 5가 출력됩니다.
print(list(range(5)))  # list 안에 range를 사용할 경우 list에 요소가 출력됩니다.

출력 결과:
range(0, 5)
[0, 1, 2, 3, 4]

예제) print() 함수 3번 출력하기

for n in range(3):  # start : 0, stop: 2
    print('만세')

출력 결과:
만세
만세
만세

enumerate()

enumerate() 함수는 인덱스와 요소를 동시에 반환해 주는 함수입니다.
enumerate()에 반환받은 변수는 tuple 타입이 됩니다.

hobbies = ['헬스', '공부', '낮잠']

for t in enumerate(hobbies):
    print(t)
    
print(type(t))  # enumerate() 함수에 반환받은 t는 tuple 타입이 됩니다.

출력 결과:
(0, '헬스')
(1, '공부')
(2, '낮잠')
<class 'tuple'>

연습문제)

flowers = ['장미', '코스모스', '튤립', '프리지아', '안개']
꽃 이름이 4글자 이상이면 리스트에서 제거한다.
flowers = ['장미', '코스모스', '튤립', '프리지아', '안개']

for i, value in enumerate(flowers):  # 인덱스 : i, 요소: value
    if len(value) >= 4:
        flowers.pop(i)  # i 인덱스 위치에 요소 삭제
    print(flowers[i])

출력 결과:
장미
튤립
안개

파이썬에 for 반복문은 여러 개의 변수에 값을 할당받을 수 있습니다.

set{} 사용법

set{}에 기본 특징
1. 순서가 없는 구조이다.(집합)
2. 중복이 불가능하다. (중복일 경우 그중에 하나만 출력된다.)

예제)

yasiks = {'김밥', '순대', '떡볶이', '라면', '어묵'}

for yasik in yasiks:
    print(yasik)

출력 결과
김밥
순대
라면
떡볶이
어묵

print로 출력 결과를 확인해 보면 set()은 순서가 없다는 걸 확인할 수 있습니다. (매 출력마다 출력 순서는 다릅니다.)

dict() 기본 특징

dict{}

dict{} 기본 특징
1. 한 데이터가 '키': '값'의 조합으로 구성된다.
2. '키'는 중복이 불가능하다.
3. '값'은 중복이 가능하다.
4. '값'이 데이터이고 그 값을 찾기 위해 '키'를 사용한다.
5. 인덱스 대신 '키'를 사용한다.

예제)

lunch = {
    '수': '짬뽕',
    '목': '제육',
    '금': '쌀국수'
}

print(lunch['수'])
print(lunch.get('목'))

출력 결과:
짬뽕
제육

dict{}에 '값'을 찾기 위해서는 '키'를 사용합니다. 값을 찾는 방법 중
그냥 dict['키']를 사용하는 방법이 있고 get('키') 메서드를 사용하는 방법이 있습니다.

예제) 여러 가지 dict{} 사용법

lunch = {
    '수': '짬뽕',
    '목': '제육',
    '금': '쌀국수'
}

# 키를 빼고 싶다면? keys 메서드를 사용한다.
for key in lunch.keys():
    print(f'{key}요일')
    
# 값을 빼고 싶다면? values 메서드를 사용한다.
for value in lunch.values():
    print(f'{value} 먹었다.')
    
# 둘 다 빼고 싶다면?
# 둘 다 빼고 싶다면? item() 메서드를 사용한다.
for item in lunch.items():
    print(item)
    print(f'{item[0]}요일에 {item[1]}을 먹었다')

# unpacking
for key, value in lunch.items():
    print(f'{key}요일에 {value}을 먹었다.')

출력 결과:
수요일
목요일
금요일


짬뽕 먹었다.
제육 먹었다.
쌀국수 먹었다.


('수', '짬뽕')
수요일에 짬뽕을 먹었다
('목', '제육')
목요일에 제육을 먹었다
('금', '쌀국수')
금요일에 쌀국수을 먹었다


수요일에 짬뽕을 먹었다.
목요일에 제육을 먹었다.
금요일에 쌀국수을 먹었다.

while문

while문은 for문과 마찬가지로 하나의 반복문입니다.

while문 사용 방법

while 조건식 :
    내용...

while 문은 반복 횟수가 명확하지 않을 때 사용합니다.
while 문은 조건이 만족하지 않다면 반복문을 빠져나옵니다.

예제)

1부터 더하기 한다. (1 + 2 + 3 ...)
누적된 합계가 500 보다 커지면 그만
i = 1  # 인덱스
sum = 0
while sum <= 500:  # 500보다 작거나 같을 때까지 반복
    sum += i

print(f'sum의 누적 합계는 : {sum}')

출력 결과:
sum의 누적 합계는 : 501

이상으로 파이썬에 반복문에 대해 알아봤습니다! 잘못된 부분이나 부족한 부분 있으면 피드백 감사하겠습니다!!!

profile
더 좋은 개발자가 되기위한 과정

0개의 댓글