7. 제어문
- 조건 처리나 반복 처리를 통해 코드의 실행 흐름을 제어할 수 있음
- Python 제어문은 들여쓰기로 블럭을 지정하니 이에 필히 주의
7.1. if 문
- 특정 조건에 맞는 경우에만 코드를 실행하고 싶을 때 사용
1) 단순 if 문
- 조건이 참인 경우만 처리
- 조건이 거짓인 경우는 아무 처리도 하지 않음
# 리스트 만들기
score_list = [75, 80, 70, 95, 90]
# 리스트에 요소가 있으면 출력, 없으면 말고
if len(score_list) > 0: # 요소의 유무 여부는 리스트의 길이인 len() 메서드를 활용하는 것이 간편하다.
print(score_list)
---
# 출력
# [75, 80, 70, 95, 90]
2) if ~ else 문
- 조건이 참인 경우와 참이 아닌 경우를 각각 처리함
# 리스트 만들기
score_list = [75, 80, 70, 95, 90]
# 리스트에 요소가 있으면 출력, 없으면 '요소 없음' 출력
if score_list:
print(score_list)
else:
print('요소 없음')
---
# 출력
# [75, 80, 70, 95, 90]
- 처리할 구문이 없거나 이후에 작성할 목적으로 pass를 사용할 수 있음
# 리스트 만들기
score_list = [75, 80, 70, 95, 90]
# 우선 pass
if score_list:
pass # 따로 출력은 안하지만 문제가 없음을 의미.
else:
print('요소 없음')
---
# 출력
#
- input() 함수 사용
- input() 함수로 받는 것은 무조건 문자열임을 기억할 것
- 상황에 따라 정수로 변환해줄 필요도 있음
# 사용자가 입력한 값이 80 이상이면 '합격' 아니면 '불합격' 출력
# 입력 받기
my_score = input('점수를 입력하세요:')
# 정수로 변환(input() 함수를 통해 받은 값은 무조건 문자열임)
my_score = int(my_score) # str --> int
# 입력값 및 자료형식 확인
print('점수 =', my_score)
print(type(my_score)) # input() 함수로 받는 것은 무조건 문자열임을 기억해야한다!!!
# 조건처리
if my_score >= 80:
print('합격')
else:
print('불합격')
---
# 출력
# 점수를 입력하세요: 90
# 점수 = 90
# <class 'int'>
# 합격
3) if ~ elif ~ else 문
- 여러 조건 중에서 참인 경우 각각 처리, 그렇지 않은 경우를 처리함
# 변수 선언
my_score = 76
# 점수에 따른 학점 주기
if my_score >= 90:
my_grade = 'A'
elif my_score >= 80:
my_grade = 'B'
elif my_score >= 70:
my_grade = 'C'
elif my_score >= 60:
my_grade = 'D'
else:
my_grade = 'F'
# 결과 출력
print(my_grade)
---
# 출력
# C
7.2. for 문
- 주로 반복 횟수를 지정해서 반복문을 돌리고자 할 때 사용하는 구문
# 문자열의 문자 줄력
for i in 'PYTHON':
print(i, end=' ')
---
# 출력
# P Y T H O N
# 리스트 만들기
fruits = ['apple', 'banana', 'cherry']
# 리스트 요소 출력
for i in fruits:
print(i)
---
# 출력
# apple
# banana
# cherry
# 0부터 20까지의 숫자 중 짝수만 뽑아서 새로운 리스트 만들기
nums = range(0, 21) # 0 ~ 20
new_nums = []
for x in nums:
if x % 2 == 0:
new_nums.append(x)
# 확인
print(new_nums)
---
# 출력
# [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
7.3. 리스트와 for 문
1) 기본 반복문
- 첫 번째 요소부터 마지막 요소까지를 대상으로 코드를 반복 처리
# 리스트 만들기
member = ['홍길동', '한사랑', '일지매', '박여인', '강우동']
n = 0
# 루프 돌면서 이름 출력
for name in member:
n += 1
print(f'{n}: {name}')
---
# 출력
# 1: 홍길동
# 2: 한사랑
# 3: 일지매
# 4: 박여인
# 5: 강우동
2) enumerate() 함수 사용
- enumerate: 낱낱이 세다
- 문자열이나 컨테이너 자료형을 입력받아, 순번과 요소를 포함하는 오브젝트로 반환
- 순번과 요소를 반환하여 몇 번째, 어느 요소를 처리하고 있는지 확인 가능하게 함
# 순번이 짝수인 경우만 '순번: 이름' 형태로 출력
member = ['홍길동', '한사랑', '일지매', '박여인', '강우동']
for i, name in enumerate(member):
if i % 2 == 0:
print(f'{i}: {name}')
---
# 출력
# 0: 홍길동
# 2: 일지매
# 4: 강우동
3) 반복문 확장
- 반복문 코드를 간결하게 만들어주는 Python 스러운 문법
# 리스트 만들기
nums = [0, 1, 2, 3, 4]
# 빈 리스트 만들기
squares = []
# 2를 곱한 결과를 squares 리스트에 추가
for x in nums:
squares.append(x ** 2)
# 확인
print(squares)
---
# 출력
# [0, 1, 4, 9, 16]
↓ 위 코드를 아래처럼 바꿀 수 있다.
# 리스트 만들기
nums = [0, 1, 2, 3, 4]
# 반복문 확장 문법 #1
squares = [x ** 2 for x in nums]
# 확인
print(squares)
---
# 출력
# [0, 1, 4, 9, 16]
- 쉬운 이해법
- 기존 반복문: for 문 안에 if 문, if 문 안에 구할 값
- 확장 반복문: 구할 값 + for 문 + if 문 순으로 나열하면 됨
# 리스트 만들기
nums = [0, 1, 2, 3, 4]
# 반복문 확장 문법 #2
# 반복문 + 조건문: 짝수인 값의 제곱을 구해서 even_squares 리스트에 넣기
even_squares = [x ** 2 for x in nums if x % 2 == 0]
# 확인
print(even_squares)
---
# 출력
# [0, 4, 16]
7.4. 딕셔너리와 for 문
1) 기본 반복문
# 딕셔너리 만들기
score = {'홍길동': 85, '한사랑': 95, '일지매': 90}
# key와 value 조회
for key in score:
value = score[key]
print('{}: {}'.format(key, value))
# print(f'{key}: {value}')
---
# 출력
# 홍길동: 85
# 한사랑: 95
# 일지매: 90
2) items() 메서드 사용
- items() 메서드는 key와 value를 함께 반환해주므로 딕셔너리 반복문에서 많이 사용함
# 딕셔너리 만들기
score = {'홍길동': 85, '한사랑': 95, '일지매': 90}
# items() 메서드 사용
for key, value in score.items():
print('{}: {}'.format(key, value))
---
# 출력
# 홍길동: 85
# 한사랑: 95
# 일지매: 90
3) 반복문 확장
# 딕셔너리 만들기
score = {'홍길동': 85, '한사랑': 95, '일지매': 90}
# 확장 문법 - 반복문 + 제어문
score_over_90 = {k: v for k, v in score.items() if v > 90}
# 확인
print(score_over_90)
---
# 출력
# {'한사랑': 95}
7.5. 집합과 for 문
- 리스트와 같은 방법으로 사용
- enumerate() 함수도 같은 방법으로 사용 가능
7.6. while 문
- 조건문이 True인 동안 while문 안의 문장이 반복해서 실행
- 특정 상황에서 반복을 중지하도록 while 문 안에서 조건을 제어
1) 일반 while 문
- 문자열 길이를 반환하는 len() 함수가 리스트의 요소 개수를 반환
# 리스트 만들기
fruits = ['apple', 'banana', 'cherry']
# 요소 출력
i = 0
while i < len(fruits):
print(fruits[i])
i += 1
---
# 출력
# apple
# banana
# cherry
2) 무한루프 다루기
- break 문: 반복문 안에서 특정 조건이 되어 반복문을 빠져 나올 때 사용
- continue 문: 반복문을 중단시키지 않고 다음 반복으로 넘어갈 때 사용(생략 가능)
# 변수 선언
tot, i = 0, 0
# 100까지 짝수 합 구하기
while True:
i += 1
if i > 100:
break
if i % 2 == 0:
tot += i
else: # 생략해도 되는 부분
continue # 생략해도 되는 부분
# 확인
print(tot)
---
# 출력
# 2550
'에이블스쿨 6기 DX 트랙 > 일일 복습' 카테고리의 다른 글
DAY 07. 넘파이 기초 (1) | 2024.09.18 |
---|---|
DAY 05. 함수 (1) | 2024.09.12 |
DAY 03. 딕셔너리 자료형 (3) | 2024.09.06 |
DAY 03. 집합 자료형 (0) | 2024.09.06 |
DAY 03. 튜플 자료형 (0) | 2024.09.06 |