일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- pandas filter
- pandas
- 자료구조
- INSERT
- numpy
- 리스트
- 머신러닝
- plt
- MacOS
- 재귀함수
- 순열
- 등차수열
- 통계학
- SQL
- 스터디노트
- maplotlib
- Slicing
- 기계학습
- pandas 메소드
- DataFrame
- matplotlib
- python
- 조합
- Folium
- 등비수열
- tree.fit
- barh
- 파이썬
- Machine Learning
- 문제풀이
Archives
- Today
- Total
코딩하는 타코야끼
[스터디 노트] Week2_1일차[unit1 ~ 19] 본문
728x90
반응형
1. 중급_1 [unit 1 ~ 5]
📍 함수란?
- 파이썬의 함수는 수학의 함수와 동일하다.
- 함수는 파이썬에서 기본으로 제공하는 내장함수와 사용자가 직접 선언하는 사용자 함수가 있다.
- 함수는 특정 기능을 재사용하기 위해서 사용한다.
def mul_num():
num = int(input("숫자 입력: "))
print(f"제곱근은: {num ** 2}\\n")
mul_num()
mul_num()
mul_num()
>>>
숫자 입력: 3
제곱근은: 9
숫자 입력: 4
제곱근은: 16
숫자 입력: 5
제곱근은: 25
📍 함수 선언
- 함수는 def 키워드, 함수명, :, 들여쓰기를 이용해서 선언한다.
📍 함수 호출
- 함수명과 ‘ ( ) ’를 이용해서 함수를 호출한다.
📍 함수 내에서 또 다른 함수 호출
- 함수 내에서 또 다른 함수를 호출할 수 있다.
- pass를 이용해서 실행문을 생략할 수 있다.
def gugudan2():
for i in range(1, 10):
print(f"2 * {i} = {2 * i}")
gugudan3()
def gugudan3():
for i in range(1, 10):
print(f"3 * {i} = {3 * i}")
pass
📍 인수와 매개변수
- 함수 호출 시 함수에 데이터를 전달할 수 있다.
- 인수와 매개변수 개수는 일치해야 한다.
- 매개변수 개수가 정해지지 않은 경우 ‘ * ’를 이용한다
def print_score(kor, eng, mat):
print(f"총점: {kor + eng + mat}")
print(f"평균: {round((kor + eng + mat) / 3, 2)}")
kor = int(input("국어 점수 입력: "))
eng = int(input("영어 점수 입력: "))
mat = int(input("수학 점수 입력: "))
print_score(kor, eng, mat)
>>>
국어 점수 입력: 85
영어 점수 입력: 92
수학 점수 입력: 79
총점: 256
평균: 85.33
📍 데이터 반환
- return 키워드를 이용하면 함수 실행 결과를 호출부로 반환할 수 있다.
- 함수가 return을 만나면 실행을 종료한다.
import random
def get_odd():
while True:
r_num = random.randint(1, 100)
if r_num % 2 != 0:
break
return r_num
get_odd()
>>>
51
2. 중급_2 [unit 6 ~ 10]
📍 전역변수
- 함수 밖에 선언된 변수로 어디에서나 사용은 가능하지만 함수 안에서 수정할 수는 없다.
📍 지역변수
- 함수 안에 선언된 변수로 함수 안에서만 사용 가능하다.
📍 global 변수
- global을 사용하면 함수 안에서도 전역변수의 값을 수정할 수 있다.
visitor_cnt = 0
def visitor():
global visitor_cnt
visitor_cnt += 1
print(f"누적 방문객: {visitor_cnt}")
visitor()
visitor()
visitor()
>>>
누적 방문객: 1
누적 방문객: 2
누적 방문객: 3
📍 중첩 함수
- 함수안에 또 다른 함수가 있는 형태이다.
- 내부 함수를 함수 밖에서 호출할 수 없다.
# calculator()함수를 선언하고 calculator() 안에
# 덧셈, 뺄셈, 곱셈, 나눗셈 함수를 선언하자.
def cal(n1, n2, operator):
def add_cal():
print(f"덧셈 연산: {round(n1 + n2, 2)}")
def sub_cal():
print(f"뺄셈 연산: {round(n1 - n2, 2)}")
def mul_cal():
print(f"곱셈 연산: {round(n1 * n2, 2)}")
def div_cal():
print(f"나눗셈 연산: {round(n1 / n2, 2)}")
if operator == 1:
add_cal()
elif operator == 2:
sub_cal()
elif operator == 3:
mul_cal()
elif operator == 4:
div_cal()
elif operator == 5:
print("종료!!")
n1 = int(input("실수(n1) 입력: "))
n2 = int(input("실수(n2) 입력: "))
operator = int(input("1.덧셈, 2. 뺄셈, 3.곱셈, 4.나눗셈, 5.종료 "))
cal(n1, n2, operator)
>>>
실수(n1) 입력: 10
실수(n2) 입력: 20
1.덧셈, 2. 뺄셈, 3.곱셈, 4.나눗셈, 5.종료 4
나눗셈 연산: 0.5
📍 lambda 함수
- lambda 키워드를 이용하면 함수 선언을 보다 간단하게 할 수 있다.
cal = lambda n1, n2: n1 + n2
result = cal(2, 4)
print(f"n1 + n2 = {result}")
>>>
n1 + n2 = 6
📍 모듈
- 모듈이란, 이미 만들어진 훌륭한 기능으로 사용자는 쉽게 사용할 수 있다.
- 파이썬 모듈은 내부 모듈, 외부 모듈 그리고 사용자 모듈로 구분할 수 있다.
📍 모듈 제작
- 모듈은 특정 기능을 가지고 있는 파이썬 파일을 말한다.
# lotto.py
import random
def get_lotto():
r_num = random.sample(range(1, 46), 6)
return r_num
import lotto
result = lotto.get_lotto()
print(f"로또 당첨 번호: {result}")
>>>
로또 당첨 번호: [12, 38, 9, 17, 7, 15]
3. 중급_3 [unit 11 ~ 15]
📍 import
- import 키워드를 이용해서 모듈을 임포트 한다.
- as 키워드를 이용해서 모듈 이름을 단축 시킬 수 있다.
📍 from
- from ~ as 키워드를 이용해서 모듈의 특정 기능만 사용할 수 있다.
📍 name 전역변수
- __name__에는 모듈 이름이 저장되거나 ‘main’이 저장된다.
def cm_to_mm(n):
return round((n * 10), 2)
if __name__ == "__main__":
print(f"10cm: {cm_to_mm(10)}mm")
>>>
10cm: 100mm
💡 if __name__ == '__main__':
- 파이썬 파일이 직접 실행될 때 해당 코드 블록을 실행하라는 의미를 가지고 있습니다.
- 파이썬 파일은 두 가지 방식으로 실행될 수 있습니다.
- 첫째, 다른 모듈에서 import하여 사용하는 방식이다.
- 둘째, 직접 실행하는 방식입니다.
- 다른 모듈에서 import하여 사용하는 경우
- 다른 모듈에서 현재 모듈을 import하여 사용할 때는 __name__ 변수에는 현재 모듈의 이름이 저장됩니다.
- 그렇기 때문에 if __name__ == '__main__': 조건은 거짓이 되어 해당 코드 블록이 실행되지 않습니다.
- 이는 현재 모듈의 기능이 다른 모듈에서 사용될 때에는 실행되지 않아야 한다는 의미입니다.
- 직접 실행하는 경우
- 현재 파이썬 파일을 직접 실행할 때는 __name__ 변수에는 '__main__' 이라는 값이 저장됩니다.
- 이 때 if __name__ == '__main__': 조건은 참이 되어 해당 코드 블록이 실행됩니다.
- 이는 현재 모듈이 직접 실행될 때에만 특정한 동작을 수행하도록 지정하는 용도로 사용됩니다.
4. 중급_4 [unit 15 ~ 19]
📍 자주 사용하는 외부 모듈
- 수학, 난수, 시간 모듈은 코딩할 때 유용하게 사용된다.
📍 객체지향 프로그래밍
- 객체를 이용한 프로그램으로 객체는 속성과 기능으로 구성된다.
- 객체는 클래스에서 생성된다.
- 객체 사용 시 코드 재사용, 모듈화에 좋다.
📍 클래스 만들기
- 클래스는 class 키워드와 속성(변수) 그리고 기능(함수)를 이용해서 만든다.
class Car:
def __init__(self, color, length):
self.color = color
self.length = length
def do_stop(self):
print("stop!!")
def do_start(self):
print("start!!")
def print_info(self):
print(f"self.color : {self.color}")
print(f"self.lenght : {self.length}")
📍 객체 생성
- 객체는 클래스의 생성자를 호출한다.
car1 = Car("red", 200)
car2 = Car("blue", 300)
car1.print_info()
car2.print_info()
>>>
self.color : red
self.lenght : 200
self.color : blue
self.lenght : 300
📚 study again
- 2번에 ‘ 중첩 함수’ 에서 내적함수를 호출하고 싶을때 if 절을 사용했는데, 더 효율적인 방법이 있는지 공부!!
- 3번에 “ if name == 'main': “ 잘 기억해두기
- lambda 신경쓰기.
- 객체 생성 (class 생성) 신경쓰기
⚡️실습 코드 파일⚡️
반응형
'zero-base 데이터 취업 스쿨 > 스터디 노트' 카테고리의 다른 글
[스터디 노트] Week2_3일차 [unit_40 ~ 52] (0) | 2023.07.15 |
---|---|
[스터디 노트] Week2_2일차[unit20 ~ 39] (0) | 2023.07.14 |
[스터디 노트] Week1_4일차[unit51 ~ 64] (0) | 2023.07.09 |
[스터디 노트] Week1_3일차[unit33 ~ 50] (0) | 2023.07.06 |
[스터디 노트] Week1_2일차[unit17 ~ 32] (0) | 2023.07.05 |