나무를 1번 찍었습니다.
나무를 2번 찍었습니다.
나무를 3번 찍었습니다.
나무를 4번 찍었습니다.
나무를 5번 찍었습니다.
나무를 6번 찍었습니다.
나무를 7번 찍었습니다.
나무를 8번 찍었습니다.
나무를 9번 찍었습니다.
나무를 10번 찍었습니다.
나무 넘어갑니다.
while문 강제로 빠져나가기(break)
커피 자판기 예
1 2 3 4 5 6 7 8 9
coffee = 10 money = 300 while money: print("돈을 받았으니 커피를 줍니다.") coffee = coffee -1 print("남은 커피의 양은 %d개입니다." % coffee) if coffee == 0: print("커피가 다 떨어졌습니다. 판매를 중지합니다.") break
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 9개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 8개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 7개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 6개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 5개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 4개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 3개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 2개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 1개입니다.
돈을 받았으니 커피를 줍니다.
남은 커피의 양은 0개입니다.
커피가 다 떨어졌습니다. 판매를 중지합니다.
while문의 맨 처음으로 돌아가기(continue)
1 2 3 4 5
a = 0 while a < 10: a = a + 1 if a % 2 == 0: continue# a가 짝수라면 print(a)
1
3
5
7
9
continue는 while문 맨 처음으로 돌아가게 한다.(조건문: a<10)
개발자를 지향한다면, while문 공부를 좀 더 비중있게 다루는 게 좋다.
데이터 분석가를 지향한다면, while문을 쓸 일이 별로 없다. for-loop 공부를 좀 더 비중있게 하는 게 좋다.
사용자 정의 함수 (User-Defined Function)
이거 왜 쓸까?
클래스(Class)를 왜 쓸까?
코드의 반복성을 줄이기 위해서 사용하는 것이다.
len() —> 누군가가 만들었고, 우리는 그걸 그냥 쓰는 것이다.
리스트의 길이 구할 때 쓴다.
리스트의 전체 길이를 구하겠다!? -> 1회성? 나만 쓰는가?
1 2 3 4 5
def함수명(): # 코드 실행 return 값
함수명()
1 2 3 4 5 6 7 8 9 10 11 12
# 더하기 함수 만들기 defadd(a, b): c = a + b return c
if __name__ == "__main__": a = 1 b = 2 c = add(a, b) print(c)
3
1 2 3 4 5 6
# 빼기 함수 만들기 defminu(a, b): c = a - b return c
minu(1, 2)
-1
1 2 3 4 5 6
# 곱하기 함수 만들기 defmulti(a, b): c = a * b return c
multi(1, 2)
2
1 2 3 4 5 6
# 나누기 함수 만들기 defdivis(a, b): c = a / b return c
divis(1, 2)
0.5
jupyter notebook, .ipynb 확장자명 .py로 저장 (pycharm..)
basic.py로 저장할 때, 예시
1 2 3 4 5 6 7 8 9 10 11 12
# /user/local/bin/python # -*- coding: utf-8 -*-
defdivis(a, b): c = a / b return c
if __name__ == "__main__": a = 1 b = 2 c = divis(a, b) print(c)
deftemp(content, letter): """content안에 있는 문자를 세는 함수입니다. Args: content(str) : 탐색 문자열 letter(str) : 찾을 문자열 Returns: int """ print("함수 테스트") cnt = len([char for char in content if char == letter])
return cnt
if __name__ == '__main__': help(temp)
Help on function temp in module __main__:
temp(content, letter)
content안에 있는 문자를 세는 함수입니다.
Args:
content(str) : 탐색 문자열
letter(str) : 찾을 문자열
Returns:
int
리스트 컴프리헨션
for-loop를 한 줄로 처리
리스트 안에 for-loop를 쓸 수 있다.
어렵다.
1 2 3 4 5 6 7 8 9 10 11 12 13
my_list = [[10], [20, 30]] # print(my_list)
# 결과값 : [10, 20 ,30]으로 만들고 싶다.
flattened_list = [] for value_list in my_list: # print(value_list) for value in value_list: print(value) flattened_list.append(value)
print(flattened_list)
10
20
30
[10, 20, 30]
1 2 3
my_list = [[10], [20, 30]] flattened_list = [value for value_list in my_list for value in value_list] print(flattened_list)
[10, 20, 30]
1 2 3 4 5
# 다른 예제 letters = [] for char in"helloworld": letters.append(char) print(letters)
defmean_and_median(value_list): """숫자 리스트의 요소들의 평균과 중간값을 구하는 코드를 작성해라 Args: value_list (iterable of int / float): A list of int numbers Returns: tuple(float, float) """ # 평균 mean = sum(value_list) / len(value_list)