- colab 단축키
-
- 코드 실행: 코드 셀을 실행하려면 Shift + Enter 를 누릅니다.
- 새 코드 셀 추가: 코드 셀을 추가하려면 코드 셀 위에서 Ctrl + M + A (Windows 및 Linux) 또는 Command + M + A (Mac)를 누릅니다.
- 코드 셀 삭제: 코드 셀을 삭제하려면 코드 셀 위에서 Ctrl + M + D (Windows 및 Linux) 또는 Command + M + D (Mac)를 누릅니다.
- 코드 셀 분할: 코드 셀을 분할하려면 코드 셀 위에서 Ctrl + M + 하이픈(-) (Windows 및 Linux) 또는 Command + M + 하이픈(-) (Mac)을 누릅니다.
- 셀 유형 변경: 코드 셀을 마크다운 셀로 변경하려면 코드 셀 위에서 Ctrl + M + M (Windows 및 Linux) 또는 Command + M + M (Mac)를 누릅니다.
- 실행 취소 : ctrl + M + Z
-
- 변수
# 변수 선언과 할당
age = 25
name = "Alice"
# 변수 사용
print(name) # "Alice" 출력
print("나이:", age) # "나이: 25" 출력
# 변수를 사용한 연산
double_age = age * 2
print("나이의 두 배:", double_age) # "나이의 두 배: 50" 출력
---------------------------------------------
# 변수의 자료형 확인
print(type(age)) # <class 'int'> 출력
print(type(name)) # <class 'str'> 출력
- 문자열
# 문자열 변수 선언
name = "Alice"
greeting = 'Hello, World!'
# 문자열 연산
full_greeting = greeting + " My name is " + name
print(full_greeting) # "Hello, World! My name is Alice" 출력
# 문자열 메서드 활용
sentence = "python programming is fun"
print(sentence.upper()) # 대문자로 변환하여 출력
- 숫자열
# 숫자열 변수 선언
num1 = 10
num2 = 3.14
# 숫자열 연산
sum_result = num1 + num2
diff_result = num1 - num2
product_result = num1 * num2
division_result = num1 / num2
integer_division_result = num1 // num2
remainder_result = num1 % num2
print("합:", sum_result)
print("차:", diff_result)
print("곱:", product_result)
print("나누기:", division_result)
print("정수 나누기:", integer_division_result)
print("나머지:", remainder_result)
# 숫자열 함수와 메서드 활용
num3 = -7.89
abs_result = abs(num3) # 절댓값 계산
round_result = round(num3) # 반올림 계산
print("절댓값:", abs_result)
print("반올림:", round_result)
-
- 정수형과 실수형의 차이
# 정수형 변수 선언
num1 = 10
num2 = -5
# 정수형 변수끼리의 연산
sum_result = num1 + num2
print("합:", sum_result) # 출력: 합: 5
# 정수형 연산 결과
print("합의 자료형:", type(sum_result)) # 출력: 합의 자료형: <class 'int'>
----------------------------------------------------------------------------
# 실수형 변수 선언
num3 = 3.14
num4 = -0.5
# 실수형 변수끼리의 연산
product_result = num3 * num4
print("곱:", product_result) # 출력: 곱: -1.57
# 실수형 연산 결과
print("곱의 자료형:", type(product_result)) # 출력: 곱의 자료형: <class 'float'>
- 불리언 : 참 or 거짓
# Boolean 변수 선언
is_raining = True
is_sunny = False
# 비교 연산자를 사용하여 Boolean 값 비교
x = 10
y = 5
greater_than = x > y
print(greater_than) # True 출력
- NaN : 결측치
# 0으로 나누는 연산
result = 1 / 0
print(result) # 출력: Infinity
import math
# 유효하지 않은 수학적 연산
result = math.sqrt(-1)
print(result) # 출력: nan
import pandas as pd
# NaN을 포함한 데이터프레임 생성
data = {'A': [1, 2, None],
'B': [3, None, 5]}
df = pd.DataFrame(data)
print(df)
# 출력:
# A B
# 0 1.0 3.0
# 1 2.0 NaN
# 2 NaN 5.0
- 입력문
name = input("이름을 입력하세요: ")
print("안녕하세요,", name, "님!")
num1 = int(input("첫 번째 숫자를 입력하세요: "))
num2 = int(input("두 번째 숫자를 입력하세요: "))
sum = num1 + num2
print("두 숫자의 합은", sum, "입니다.")
- 변수1) 데이터를 담고자 할 때 사용
# 학생들의 성적 데이터를 변수에 할당
grade1 = 85
grade2 = 92
grade3 = 78
grade4 = 90
grade5 = 88
# 각 변수에 담긴 데이터 출력
print("첫 번째 학생의 성적:", grade1)
print("두 번째 학생의 성적:", grade2)
print("세 번째 학생의 성적:", grade3)
print("네 번째 학생의 성적:", grade4)
print("다섯 번째 학생의 성적:", grade5)
- 변수2) 계산된 값을 담고자 할 때 사용
# 데이터를 변수에 할당
data1 = 85
data2 = 92
data3 = 78
data4 = 90
data5 = 88
# 데이터의 평균 계산
total = data1 + data2 + data3 + data4 + data5 # 모든 데이터의 합을 계산
count = 5 # 데이터의 개수를 직접 지정
average = total / count # 데이터의 평균을 계산
# 결과 출력
print("데이터 평균:", average)
- 변수3) 머신러닝 모델구조 자체를 담을 때 사용
from sklearn.linear_model import LinearRegression
# 선형 회귀 모델 객체 생성
model = LinearRegression()
코드카타 44. 가격대 별 상품 개수 구하기
PRODUCT 테이블에서 만원 단위의 가격대 별로 상품 개수를 출력하는 SQL 문을 작성해주세요. 이때 컬럼명은 각각 컬럼명은 PRICE_GROUP, PRODUCTS로 지정해주시고 가격대 정보는 각 구간의 최소금액(10,000원 이상 ~ 20,000 미만인 구간인 경우 10,000)으로 표시해주세요. 결과는 가격대를 기준으로 오름차순 정렬해주세요.
- 내 풀이
SELECT case when price<10000 then 0
when price<20000 then 10000
when price<30000 then 20000
when price<40000 then 30000 end as price_group,
count(*) as products
from product
group by 1
order by 1
- 정답
- else floor(price/10000)*10000 은 그 외 값은 가격을 10000으로 나눠서 반올림한 후 다시 10000을 곱한다는 뜻
SELECT CASE WHEN PRICE < 10000 THEN 0
WHEN PRICE < 20000 THEN 10000
WHEN PRICE < 30000 THEN 20000
WHEN PRICE < 40000 THEN 30000
ELSE FLOOR(PRICE / 10000) * 10000 END AS PRICE_GROUP,
COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP
45. 3월에 태어난 여성 회원 목록 출력하기
- MEMBER_PROFILE 테이블에서 생일이 3월인 여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문을 작성해주세요. 이때 전화번호가 NULL인 경우는 출력대상에서 제외시켜 주시고, 결과는 회원ID를 기준으로 오름차순 정렬해주세요.
- 정답
- 틀린이유 : month(컬럼) = 원하는 달 사용 알아두기
SELECT member_id,
member_name,
gender,
date_format(date_of_birth,'%Y-%m-%d') as date_of_birth
from member_profile
where (month(date_of_birth) = 03) and (gender = 'w') and (tlno is not null)
order by 1
46. 대여 기록이 존재하는 자동차 리스트 구하기
- CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬해주세요.
SELECT distinct c.car_id
from car_rental_company_car as c join car_rental_company_rental_history as h on c.car_id=h.car_id
where (car_type='세단') and (month(start_date) = 10)
order by car_id desc
47. 모든 레코드 조회하기
- 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요.
SELECT *
from animal_ins
order by animal_id
48. 즐겨찾기가 가장 많은 식당 출력하기
REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
- 내 풀이
- where 절에 함수 사용 안됨
- 서브쿼리 사용해야함
SELECT food_type,
rest_id,
rest_name,
favorites
from rest_info
where max(favorites)
group by 1
order by food_type desc
- 정답
- 서브쿼리 안에서 max와 푸드타입 고정 후 바깥 쿼리에 고대로 사용할거기 때문에 where(food_type, favorites) in
SELECT food_type,
rest_id,
rest_name,
favorites
from rest_info
where (food_type, favorites) in
(
select food_type, max(favorites)
from rest_info
group by food_type
)
order by food_type desc
select r.food_type,
r.rest_id,
r.rest_name,
r.favorites
from
(
select food_type,
max(favorites) as favorites
from rest_info
group by food_type
)a left join rest_info as r on a.food_type=r.food_type and a.favoritess=r.favorites
order by r.food_type desc
49. 식품분류별 가장 비싼 식품의 정보 조회하기
- FOOD_PRODUCT 테이블에서 식품분류별로 가격이 제일 비싼 식품의 분류, 가격, 이름을 조회하는 SQL문을 작성해주세요. 이때 식품분류가 '과자', '국', '김치', '식용유'인 경우만 출력시켜 주시고 결과는 식품 가격을 기준으로 내림차순 정렬해주세요.
- 내 풀이
- 식품분류 해당건 찾는거 어케함
SELECT category,
price,
product_name
from food_product
where price in
(
select max(price)
from food_product
group by category
)
order by price desc
- 정답
SELECT category,
price as max_price,
product_name
from food_product
where category in ('과자', '국', '김치', '식용유') and price =
(
select max(price)
from food_product as FP
WHERE FP.CATEGORY = FOOD_PRODUCT.CATEGORY
)
order by 2 desc
50. 5월 식품들의 총매출 조회하기
- FOOD_PRODUCT와 FOOD_ORDER 테이블에서 생산일자가 2022년 5월인 식품들의 식품 ID, 식품 이름, 총매출을 조회하는 SQL문을 작성해주세요. 이때 결과는 총매출을 기준으로 내림차순 정렬해주시고 총매출이 같다면 식품 ID를 기준으로 오름차순 정렬해주세요.
- 내 풀이
- 총매출이므로 합까지 해야함
- date_format 쓰세요 !
- 그룹별로 묶어주기
SELECT p.product_id,
p.product_name,
(p.price*o.amount) as total_sales
from food_product as p join food_order as o on p.product_id=o.product_id
where in_date like '2022-05-%'
order by 3 desc, 1
- 정답
select p.product_id,
p.product_name,
sum(p.price * o.amount) as total_sales
from food_product as p join food_order as o on p.product_id=o.product_id
where date_format(o.produce_date,'%Y-%m')='2022-05'
group by p.product_id, p.product_name
order by sum(p.price * o.amount) desc, p.product_id asc
'파이썬' 카테고리의 다른 글
[250311] 파이썬 종합반 5주차 + 알고리즘 6-10 (0) | 2025.03.11 |
---|---|
[250310] 파이썬 종합 4주차 + 코드카타 64-65 + 알고리즘 1-5 (0) | 2025.03.10 |
[250307] 파이썬 종합반 3주차 + 코드카타 61 - 63 (1) | 2025.03.07 |
[250306] 파이썬 종합 2주차 + 코드카타 51-60 (0) | 2025.03.06 |
[250304] python 1일차 (1) | 2025.03.04 |