- Today
1. SQL 코드카타
2. 파이선 종합반 강의 완강
3. SQL 코드카타 복습
- Today I Learned
파이썬
while 문
: 조건이 있고, 그 조건이 참 일 때만 반복을 한다.
: 조건 은 불리언 값(True 또는 False) 을 반환하는 표현식
: 무한 반복을 조심해야한다.
continue
# 반복문으로 돌아가는 것
pass
# 그냥 지나가는 것
인수: 함수에 입력하는 값
전역변수
: 프로그램 전체에서 접근가능한 일반적인 변수
지역변수
: 특정한 범위 (함수내부) 에서만 접근 가능한 변수
: 함수내에서만 사용가능
매개변수(parameter)
: 함수를 정의할 때 적어주는 값
인수=인자(argument)
: 함수를 호출할 때 전달되는 값
가변인수
: 변수가 몇개 들어갈지 그때그때 다를 경우
args: 위치 인수
*kwargs: 키워드 인수
<과제>
주어진 데이터셋의 평균을 계산하는 함수를 작성하고 함수의 결과 출력하기
data = [2, 4, 6, 8, 10]
data = [2, 4, 6, 8, 10]
a = sum(data)/len(data)
print(a)
# 처음에는 함수가 아닌 그냥 평균 구하는 코드를 짰는데, 문제 확인 후 다시 해봄!
def avg_answer(data):
c = sum(data)/len(data)
return c
data = [2, 4, 6, 8, 10]
print(c) # 이미 만들어진 전역변수로 선언된 매개변수c가 있다면 불러준다
# 매개변수 c 의 경우는 전역변수가 아니라
avg_answer(data) 라는 함수 안에서의 지역변수 이기 때문에 print 로 불러올 수 없다.
def avg_answer(data):
c = sum(data)/len(data)
return c
data = [2, 4, 6, 8, 10]
print(avg_answer)
# 만들어낸 함수 옆에 인자값 (argument) 이 없어서 오류 발생
def avg_answer(data):
c = sum(data)/len(data)
return c
data = [2, 4, 6, 8, 10]
print(avg_answer(data))
# avg_answer(data) 를 적어주어야 함수의 결과값이 반환
def avg_answer(data):
c = sum(data)/len(data)
return c
data = [2, 4, 6, 8, 10]
answer = avg_answer(data) # 새로운 변수 만들기
print(answer)
* 매번 긴 함수 이름을 적고 싶지 않다면?
# 새로운 변수(전역변수)를 만들어 함수가 반환한 값을 넣어준다!
* 매개변수 는 함수 안에서의 변수를 뜻하고
바깥에서 정의하는 것은 그냥 변수!
pandas
: 데이터 조작과 분석을 위한 라이브러리
: 데이터 분석에서 자주 쓰인다
f-string
, 를 사용하지 않아도 됨
x = 10
print(f"변수 x 의 값은 {x}입니다.")
>> 변수 x 의 값은 10입니다.
정욱 튜터님 멘토링 내용 정리
* 페이지를 새로 만들지 않으면 제일 최근에 작성했던 변수를 불러온다.
* 런타임을 끊었다가 내가 하고자 하는 코드부터 해도 되지만,
새로 페이지를 생성하여 코드를 작성하는 것이 깔끔하다!
* 어떤 경우에 어떤 함수를 사용하는지 이름만 알고 있어도 구글링이 가능하니 이름은 외우는 것을 추천!
* import 함수를 사용하여 파일을 불러올 때에는 변수를 주는 것처럼 한번만 적어주어도 된다.
import pandas as pd
df = pd.read_csv("파일링크")
ds = pd.read_excel("파일링크")
#이렇게 pd 를 해주었다면 이후에는 pd.read_ ~ 만 적어주어도 된다
* 같은 변수 df 에서 다른 파일을 계속 불러오게 된다면, 해당 변수는 마지막에 불러온 파일을 담는다.
그렇기 때문에변수를 계속 바꿔서 불러주는 것이 맞다.
* return 과 print 의 차이는?
# return 은 밖으로 끄집어내서 무언가에 담을 수 있다.
# print 는 그냥 출력만 해주고 끝난다. 보여주기만 함, 담을 수가 없다!
data = [2, 4, 6, 8, 10]
class DataPreprocessor:
def __init__(self, data):
self.data = data
def calculation(self):
print(f"평균:{sum(data)/len(data)}")
# print 는 그냥 보여주고 끝난다
dab = DataPreprocessor(data)
result = dab.calculation()
# dab.calculation() 이 있어서 나옴
> 평균: 6.0
dab.calculation()
# 여기서는 위 함수에서 print 로 출력을 해줬기 때문에 나옴
> 평균: 6.0
print(dab.calculation())
# 여기서는 dab.calculation() 이 먼저 실행이 되어 이 자체의 결과값이 나오지만
# 이 안에 내보낼 수 있는게 없기 때문에 print 에서는 출력을 하지 못함
> 평균: 6.0
> None
print(result)
# print 로 출력만 했기 때문에 result 에는 담아지지 않는다.
> None
*
3번째 print(dab.calculation()) 의 경우 결과값이 2개가 나오는 이유
기본적으로 print(변수()) 를 하게 되면
① 변수의 값을 ② print 한 결과값이 나온다.
print(dab.calculation())
이 코드의 경우에는 뜯어보면
print( print(f"평균:{sum(data)/len(data)}") )
위의 코드에서의 결과로 이렇게 구성되어 있다.
① dab.calculation()
를 실행하여 평균: 6.0 이 출력은 되지만 다른 무언가에 담지를 못하기 때문에
② print(dab.calculation())
를 실행하게 되면 None 가 나온다
정리해보자면
print(print())
이런 식이기 때문에 print 하고 print 해서 결과가 2개가 나온 것!
만약, dab.calculation() 안에 print 문구가 없다면
print(dab.calculation())
이 실행결과에서는 None 만 나온다!
Daily Scrum
TO_CHAR: Oracle 데이터베이스에서 사용
DATE_FORMAT: MySQL 데이터베이스에서 사용
LIKE '%10%' 과 MONTH(start_date) = 10
> LIKE 의 경우 10 이라는 문자열을 포함하는지 검사한다.
문자열 비교이기 때문에 날짜의 형식을 고려하지 않아 10월 이라는 달을 출력하기에는 어렵다
정말 LIKE 를 사용하고 싶다면 year 과 day 를 다 넣은 값을 추가해주어야 할 것!
> MONTH 의 경우 month 를 추출하기 때문에
특정 날짜를 추출 하고 싶다면 MONTH 함수를 사용 하는 것이 좋다
- Next
1. 파이썬 예제문제 풀이
2. SQL 코드카타
3. 파이썬 4~5주차 복습
'TIL' 카테고리의 다른 글
2024-04-30 (0) | 2024.04.30 |
---|---|
2024-04-29 (0) | 2024.04.29 |
2024-04-25 (1) | 2024.04.25 |
2024-04-24 (0) | 2024.04.24 |
2024-04-23 (0) | 2024.04.23 |