[AIVLE SCHOOL] 데이터 다루기(7) - 제어문

춤추는 머쉬룸·2024년 9월 9일

AIVLE SCHOOL 6기

목록 보기
10/80
post-thumbnail

9/9 1, 2, 3, 4, 5, 6 회차

A. 조건문 (if)

A-1. pass 키워드

처리할 구문이 없거나 이후에 작성할 목적으로 pass 사용 가능

# 리스트 만들기
> score_list = [75, 80, 70, 95, 90]

# 우선 pass
> if score_list:
>     pass
> else:
>     print('요소 없음')

A-2. input() 함수

TIP! 파이썬에서 input() 으로 입력받는 모든 것은 str 형이다! 정수, 실수일 시 형변환 필수!!

  • 사용자로부터 값을 입력받음. 엔터로 각각의 입력 종료
# 정수로 변환
> score = int(input())

# 문자열 출력 후 같은 라인에서 입력
> age = input('나이를 입력하세요:')

A-3. 조건문 기타

A-3-1) 주의사항1 : 변수 선언

# 변수 선언
> my_score = 73

# 80보다 크거나 같으면 Pass, 아니면 Fail
> if my_score >= 80:
>   my_result = 'Pass'

# 결과 출력
> print(my_result)

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
Cell In[43], line 12
      7     my_result = 'Pass'
     11 # 결과 출력
---> 12 print(my_result)

NameError: name 'my_result' is not defined

true 일때는 my_result 가 만들어지지만, false 일떄는 my_result 가 없어서 정의되지 않은 변수라고 뜨는 것임. 조건문 밖에 my_result='' 를 만들면 해결!

A-3-2) 요일 알아보기

  • if 문을 사용하면 엄청 길어지지만, 문자열의 특성을 알고 인덱싱으로 사용하면 훨씬 간단하게 구할 수 있다!
# 오늘의 요일 확인
from datetime import datetime

dt = datetime.now()
week_num = dt.weekday()

print(week_num)

# 단순한 방법
week_str = '월화수목금토일'
print(week_str[week_num])

B. 반복문 (for 문)

횟수가 정해진 반복문

B-1. 리스트 요소 출력

# 리스트 요소 출력
> for i in [0, 1, 2, 3, 4]:
>     print(i)

B-2. range() 함수 사용

  • range() 함수 자체가 iterable 함
# range() 함수 사용해 범위 지정
> print(range(5))

C. ennumerate() 함수

  • 리스트에서 요소를 가져와서 하나씩 반환을 하는데, 순서를 붙여줌
  • 리스트, 튜플, 문자열 등 iterable 한 모든 것이 들어갈 수 있음
  • 튜플 형태로 반환
> list(enumerate(member))
[(0, '홍길동'), (1, '한사랑'), (2, '일지매'), (3, '박여인'), (4, '강우동')]

# '순번: 이름' 형태로 출력
> member = ['홍길동', '한사랑', '일지매', '박여인', '강우동']

> for i, name in enumerate(member):
    print(i, name)
    
0 홍길동
1 한사랑
2 일지매
3 박여인
4 강우동

D. 반복문 확장 문법

D-1) 기본 활용법

# 리스트 만들기
> nums = [0, 1, 2, 3, 4]

# 반복문 확장 문법 #1
> squares = [x**2 for x in nums]

# 확인
> print(squares)

[0, 1, 4, 9, 16]

a : x에 2를 제곱해
b : x가 뭔데?
a : x는 nums 에서 가져왔어
b : ㅇㅋ 각각에 제곱할게!

D-2) 조건문 추가

# 리스트 만들기
> 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]

a : x에 2를 제곱해
b : x가 뭔데?
a : x는 nums 에서 가져왔는데, x를 2로 나누었을 때 나머지가 0인 것만 가져왔어
b : ㅇㅋ 각각에 제곱할게!


E. 딕셔너리와 for문

  • 기본적으로 for문에서 사용하면 key 를 가져옴
# 딕셔너리 만들기
> score = {'홍길동': 85, '한사랑': 95, '일지매': 90}

# key와 value 조회
> for key in score:
>     value = score[key]
>     print('{}: {}'.format(key, value))

홍길동: 85
한사랑: 95
일지매: 90

E-1. items() 메서드 사용

  • items() 함수로 key, value 를 동시에 가져올 수 있음
# items() 메서드 사용

> for k, v in score.items():
>     print('{}: {}'.format(k, v))
    
홍길동: 85
한사랑: 95
일지매: 90

E-2. 딕셔너리에서의 반복문 확장

# 확장 문법 - 반복문 + 제어문
> score_over_90 = {k: v for k, v in score.items() if v > 90}

# 확인
> print(score_over_90)

a : 나는 딕셔너리야. k:v 형태로 딕셔너리를 만들어줘
b : k, v 가 뭔데?
a : k, v는 score.items() 에서 가져왔어. 그런데 value가 90이상인 것만이야
b : ㅇㅋ 딕셔너리 만들게

F. While문

  • 조건문이 True인 동안 while문 안의 문장이 반복해서 실행
  • 특정 상황에서 반복을 중지하게 while 문 안에서 조건을 제어

F-1. 무한루프 다루기

  • break 문: 반복문 안에서 특정 조건이 되어 반복문을 빠져 나올 때 사용
  • continue 문: 반복문을 중단시키지 않고 다음 반복으로 넘어갈 때 사용

기타

  • isnumeric() 메서드: 숫자이면 True 아니면 False 반환

0개의 댓글