TIL

2024-04-26

여연찌 2024. 4. 26. 21:59
  • 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