[KT 에이블스쿨 5기] DX트랙 2주 1일차 복습_제어문
혹시 실수를 발견하시면 댓글로 알려주시면 감사드리겠습니다 :)
[파이썬 기초] 데이터 다루기_이장래 강사님
Anaconda Prompt에서 Jupyter Lab 오픈
C:\Users\User> CD python
C:\Users\User\python>Jupyter lab (대소문자 상관 X)
07 제어문
조건 처리나 반복 처리를 통해 코드의 실행 흐름을 제어할 수 있음
python의 제어문은 들여쓰기로 블럭 지정!
if문
1) if문: 조건이 참인 경우만 처리하는 제어문
조건이 거짓인 경우 → 아무 처리도 하지 않는다!
if 조건문을 끝내려면 ':' 사용, 계산할 내용은 들여쓰기!
- 변수(리스트)에 요소가 있는지 확인하는 조건문 축약
if score_list: #score_list에 요소가 있으면
print(score_list) #score_list 출력
2) if ~ else문: 조건이 참인 경우와 참이 아닌 경우를 각각 처리
my_score = 90
if my_score >= 80:
my_result = 'Pass'
else:
my_result = 'Fail'
print(my_result) #Pass
- 처리할 구문이 한 줄이라면 아래처럼 작성 가능!
score_list = [30, 47, 29, 85, 99, 100]
if score_list: print(scrore_list)
else: print('요소 없음') # [30, 47, 29, 85, 99, 100]
- 처리할 구문이 없거나 이후에 작성할 예정이라면 pass를 사용!
3) if ~ elif ~ else 구문: 여러 조건 중에서 참인 경우를 각각 처리, 그렇지 않은 경우를 처리
my_score = 75
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
*weekday(): 월~일을 0~6 숫자로 표시하는 함수
dt = datetime.now() #오늘(지금)의 년, 월, 일, 시간 초 단위까지 표현
week_num = dt.weekday() #요일을 숫자로 표현 (월 = 0, 화 = 1, 수 = 2, 목 = 3, 금 = 4, 토 = 5, 일 = 6)
for문
첫 번째 값부터 마지막 값까지 하나씩 가져가면서 처리
for x in a 의 의미: a에서 하나씩 가져와서(=꺼내서) 변수 x에 대입
for문은 요소 개수만큼 반복하니, 반복 횟수가 정해진 반복문
→ 반복문은 요소 개수만큼 아래로 하나씩 출력됨 / 개행 없이 출력하려면 print(변수, end = '') 입력
for문과 if문 함께 활용한 아래 예시
result = [] #빈 리스트 만들기
for i in range(1, 11): #1부터 10까지 i에 하나씩 뽑아와!
if i % 2 ==0: #그 중 i가 짝수이면
result.append(i) #리스트에 요소를 추가
else:
pass #아니면 패스
print(result) #[2,4,6,8,10]
리스트와 for문
반복문과 가장 많이 사용되는 자료형 = 리스트형
1) 기본 반복문: 첫 번째 요소부터 마지막 요소까지를 대상으로 코드를 반복 처리
member = ['가나다', '라마바', '바사아', '자차카', '타파하']
i = 1
for m in member: #루프 돌면서 짝수 요소들만 출력
if i % 2 == 0:
print(m)
i += 1 #라마바 \n 자차카 출력
2) enumerate() 함수
- 문자열이나 컨테이너 자료형을 입력 받아, 순번과 요소를 포함하는 오브젝트로 반환
- 순번과 요소를 반환해 몇 번째, 어느 요소를 처리하고 있는지 확인 가능
- enumerate(컨테이너 자료형, 시작값) #시작값은 주로 생략
- 컨테이너 자료형 = for문에서 값을 꺼낼 수 있는 자료형 = 반복 가능한 자료형 = iterable 자료형
3) 반복문 확장
nums = [0, 1, 2, 3, 4]
squares = []
for x in nums: #기본형
squares.append(x ** 2)
squares = [x ** 2 for x in nums] #확장형, 전부 제곱 구하기
even_squares = [x ** 2 for x in nums if x % 2 ==0] #확장형, 짝수인 값만 제곱을 구하기
for문에서 x를 뽑아올 때 선별해서 뽑아와야 한다면: for문 안(뒤)에 if문 서술
조건 먼저 서술 후 for문 작성이라면: for문 앞(밖)에 if문 서술
딕셔너리와 for문
1) 기본 반복문
score = {'가나다': 85, '라마바': 95, '사아자': 90}
for key in score:
value = score[key]
print('{}: {}'.format(key, value))
#출력 확인
가나다: 85
라마바: 95
사아자: 90
2) item() 메서드 사용
for k, v in score.items():
print(f'{k}: {v}') #위와 동일하게 출력
3) 반복문 확장
리스트와 for문에서 다룬 것과 동일하게 딕셔너리에서 사용 가능
score_over_90 = {k: v for k, v in score.items() if v > 90}
print(score_over_90) #{'라마바': 95}
집합과 for문
1) 기본 반복문: 리스트와 같은 방법으로 반복문에 사용
2) enumerate()함수: 순번과 요소 함께 출력
while문
조건문이 True인 동안 while문 안의 문장이 반복해서 실행됨
특정 상황에서 반복을 중지하게 while문 안에서 조건 제어
1) 일반 while문
문자열 길이를 반환하는 len()함수가 리스트의 요소 개수를 반환
fruits = ['grape', 'mango', 'watermelon']
i = 0
while i < len(fruits):
print(fruits[i])
i = i + 1
#출력
grape
mango
watermelon
2) 무한루프 다루기
- break문: 반복문 안에서 특정 조건이 되어 반복문을 빠져 나올 때 사용
- continue문: 반복문을 중단시키지 않고 다음 반복으로 넘어갈 때 사용
- input()함수: 사용자의 입력을 받을 수 있음
**input은 숫자를 넣던, 문자를 넣던 모든 것을 ‘문자열’로 받아들임!
- isnumeric()메서드: 숫자면 True, 아니면 False
while True:
response = input('숫자를 입력하세요(0= 종료):')
if not response.isnumeric():
continue
if int(response) == 0:
break
result = int(response) % 10
print(f'{response} 나누기 10의 나머지는 {result}입니다.')