일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- Folium
- DataFrame
- tree.fit
- INSERT
- Slicing
- barh
- 재귀함수
- 파이썬
- 조합
- 스터디노트
- numpy
- python
- plt
- 통계학
- 등비수열
- pandas filter
- maplotlib
- 머신러닝
- SQL
- 순열
- Machine Learning
- 등차수열
- pandas
- 자료구조
- 리스트
- MacOS
- 문제풀이
- pandas 메소드
- matplotlib
- 기계학습
Archives
- Today
- Total
코딩하는 타코야끼
[스터디 노트] Week1_4일차[unit51 ~ 64] 본문
728x90
반응형
1. 연산자 [연습문제_51 ~ 52]
📎 문제 1
- 고도가 60m 올라갈 때마다 기온이 0.8도 내려 간다고 할 때 고도를 입력하면
- 기온이 출력되는 프로그램을 만들어 보자.(지면온도: 29도)
base_temp = 29
height = 60
h_temp = 0.8
input_h = int(input("고도 입력: "))
result = 29 - ((input_h // 60) * 0.8)
if input_h % height != 0:
result -= h_temp
print(f"지면 온도: {base_temp}")
print(f"고도 {input_h}m의 기온: {result}")
>>>
고도 입력: 720
지면 온도: 29
고도 720m의 기온: 19.4
💡 높이 문제와 유사한 문제들
- 이처럼 딱 떨어지지 않고 남는경우 ‘ -= ‘ 처리한다
2. 조건문 [연습문제_53 ~58]
📎 문제 1
- 문자 메시지 길이에 따라 문자 요금이 결정되는 프로그램을 만들어보자.
message = str(input("메시지 입력: "))
m_price = 0
if len(message) <= 50:
m_price = 50
print("SMS 발송!!")
if len(message) > 50:
m_price = 100
print("MMS 발송!!")
print(f"메시지 길이: {len(message)}")
print(f"메시지 발송 요금: {m_price}원")
>>>
메시지 입력: 안녕하세요.
SMS 발송!!
메시지 길이: 6
메시지 발송 요금: 50원
📎 문제 2
- 국어, 영어, 수학, 과학, 국사 점수를 입력하면 총점을 비롯한 각종 데이터가 출력되는 프로그램을 만들어보자.
# 과목별 평균값들의 값 정의
kor_avg = 85; eng_avg = 82; mat_avg = 89; sci_avg = 75; kor_s_avg = 94;
total_avg = kor_avg + eng_avg + mat_avg + sci_avg + kor_s_avg
avg_avg = total_avg // 5
# 과목별 점수 입력
kor = int(input("국어 점수: "))
eng = int(input("영어 점수: "))
mat = int(input("수학 점수: "))
sci = int(input("과학 점수: "))
kor_s = int(input("국사 점수: "))
# 입력받은 과목별 값 정의
sub = [kor, eng, mat, sci, kor_s]
total = sum(sub)
avg = total // len(sub)
# 각 과목의 점수와 표준편차의 차
kor_gap = kor - kor_avg
eng_gap = eng - eng_avg
mat_gap = mat - mat_avg
sci_gap = sci - sci_avg
kor_s_gap = kor_s - kor_s_avg
total_gap = total - total_avg
avg_gap = avg - avg_avg
# 출력
print("-" * 65)
print(f"총점: {total}({total_gap}), 평균: {avg}({avg_gap})")
print(f"국어: {kor}({kor_gap}), 영어: {eng}({eng_gap}), 수학: {mat}({mat_gap}), 과학: {sci}({sci_gap}), 국사: {kor_s}({kor_s_gap}) ")
print("-" * 65)
str = "+" if kor_gap > 0 else "-"
print(f"국어 편차: {str * abs(kor_gap)}({kor_gap})")
str = "+" if eng_gap > 0 else "-"
print(f"영어 편차: {str * abs(eng_gap)}({eng_gap})")
str = "+" if mat_gap > 0 else "-"
print(f"수학 편차: {str * abs(mat_gap)}({mat_gap})")
str = "+" if sci_gap > 0 else "-"
print(f"과학 편차: {str * abs(sci_gap)}({sci_gap})")
str = "+" if kor_s_gap > 0 else "-"
print(f"국사 편차: {str * abs(kor_s_gap)}({kor_s_gap})")
str = "+" if total_gap > 0 else "-"
print(f"총점 편차: {str * abs(total_gap)}({total_gap})")
str = "+" if avg_gap > 0 else "-"
print(f"평균 편차: {str * abs(avg_gap)}({avg_gap})")
print("-" * 65)
>>>
국어 점수: 91
영어 점수: 92
수학 점수: 61
과학 점수: 58
국사 점수: 90
-----------------------------------------------------------------
총점: 392(-33), 평균: 78(-7)
국어: 91(6), 영어: 92(10), 수학: 61(-28), 과학: 58(-17), 국사: 90(-4)
-----------------------------------------------------------------
국어 편차: ++++++(6)
영어 편차: ++++++++++(10)
수학 편차: ----------------------------(-28)
과학 편차: -----------------(-17)
국사 편차: ----(-4)
총점 편차: ---------------------------------(-33)
평균 편차: -------(-7)
-----------------------------------------------------------------
💡 abs( )
- 파이썬의 abs( ) 함수는 파이썬 표준 라이브러리에서 사용할 수 있는 내장함수 입니다.
- 주어진 숫자의 절대값을 반환 합니다.
📎 문제 3
- 아래 요금표를 참고해서 상수도 요금 계산기를 만들어보자.
# 사용자 입력
select = int(input("업종 선택(1.가정용 2.대중탕용 3.공업용): "))
use = int(input("사용량 입력: "))
unit_price = 0
# 단가 계산기
if select == 1:
unit_price = 540
elif select == 2:
if use <= 50:
unit_price = 820
elif (use > 50) and (use <= 300):
unit_price = 1920
elif use > 300:
unit_price = 2400
elif select == 3:
if use <= 500:
unit_price = 240
else:
unit_price = 570
else:
print("다시 입력해 주세요.")
# 요금 정의
fare = use * unit_price
# 출력
print("="*30,"\\n상수도 요금표")
print("-"*30,"\\n사용량\\t:\\t요금")
print(f"{use}\\t:\\t{fare:,}원")
print("="*30)
>>>
업종 선택(1.가정용 2.대중탕용 3.공업용): 2
사용량 입력: 270
==============================
상수도 요금표
------------------------------
사용량 : 요금
270 : 518,400원
==============================
📎 문제 4
- 미세먼지 비상저감조치로 차량 운행제한 프로그램을 다음 내용에 맞게 만들어 보자.
import datetime as dt
now = dt.datetime.now()
day = now.day
limit_dust = 150
# 입력
dust = int(input("미세먼지 수치 입력: "))
car = int(input("차량 종류 선택. 1.승용차\\t 2.영업용차 " ))
car_num = int(input("차량 변호 입력: "))
# 출력
print("-"*30)
print(now)
print("-"*30)
if dust > limit_dust and car == 1:
if (day % 2) == (car_num % 2):
print("차량 2부제 적용")
print("차량 2부제로 금일 운행제한 대상 차량입니다.")
else:
print("금일 운행 가능합니다.")
if dust > limit_dust and car == 2:
if (day % 5) == (car_num % 5):
print("차량 5부제 적용")
print("차량 5부제로 금일 운행제한 대상 차량입니다.")
else:
print("금일 운행 가능합니다.")
if dust <= limit_dust:
if (day % 5) == (car_num % 5):
print("차량 5부제 적용")
print("차량 5부제로 금일 운행제한 대상 차량입니다.")
else:
print("금일 운행 가능합니다.")
print("-"*30)
>>>
미세먼지 수치 입력: 145
차량 종류 선택. 1.승용차 2.영업용차 1
차량 변호 입력: 5526
------------------------------
2023-07-08 22:03:04.812827
------------------------------
금일 운행 가능합니다.
------------------------------
💡 datetime
- datetime 클래스에는 객체를 생성하지 않고도 바로 클래스에서 사용할 수 있는 클래스 메서드라는 것을 제공합니다.
- 가장 대표적인 것이 현재 시각을 출력하는 now( ) 메서드입니다.
- now 클래스 메서드는 컴퓨터의 현재 시각을 datetime 클래스 객체로 만들어 반환합니다. datetime 클래스 객체는 다음과 같은 속성을 가집니다.
- year : 연도
- month : 월
- day : 일
- hour : 시
- minute : 분
- second : 초
- microsecond : 마이크로초(micro seconds, 백만분의 일초)
3. 반복문 [연습문제_59 ~ 64]
📎 문제 1
- 1부터 사용자가 입력한 정수까지의 합, 홀수의 합, 짝수의 합 그리고 팩토리얼을 출력하는 프로그램을 만들어보자.
num = int(input("정수 입력: "))
total = 0
odd_total = 0
even_total = 0
factorial = 1
for i in range(1, num+1):
total += i
factorial *= i
if i % 2 == 0:
even_total += i
else:
odd_total += i
print(f"합 결과 : {total}")
print(f"홀수 합 결과 : {odd_total}")
print(f"짝수 합 결과 : {even_total}")
print(f"팩토리얼 결과 : {factorial:,}")
>>>
정수 입력: 15
합 결과 : 120
홀수 합 결과 : 64
짝수 합 결과 : 56
팩토리얼 결과 : 1,307,674,368,000
📎 문제 2
- ‘ * ’ 를 이용해서 다음과 같이 다양한 모양을 출력해보자.
📍 문제 2_1
# 1
for i in range(1, 6):
print("*" * i)
# 2 중첩문
for i in range(1, 6):
for j in range(i):
print("*", end="")
print()
>>>
*
**
***
****
*****
*
**
***
****
*****
📍 문제 2_2
# 1
for i in range(1, 6):
print(" " * (5-i), "*" * i)
# 2 중첩문
for i in range(1, 6):
for j in range(6 - i - 1):
print(" ", end="")
for k in range(i):
print("*", end="")
print()
>>>
*
**
***
****
*****
*
**
***
****
*****
📍 문제 2_3
# 1
for i in range(5, 0, -1):
print("*" * i)
# 2 중첩문
for i in range(5, 0, -1):
for j in range(i):
print("*", end="")
print()
>>>
*****
****
***
**
*
*****
****
***
**
*
📍 문제 2_4
# 1
for i in range(5, 0, -1):
print(" " * (5-i), "*" * i)
# 2 중첩문
for i in range(5, 0, -1):
for j in range(5 - i):
print(" ", end="")
for j in range(i):
print("*", end="")
print()
>>>
*****
****
***
**
*
*****
****
***
**
*
📍 문제 2_5
# 1
for i in range(1, 6):
print("*" * i)
for i in range(5, 0, -1):
print("*" * i)
# 2
for i in range(1, 10):
if i < 5:
for j in range(i):
print("*", end="")
else:
for j in range(10 - i):
print("*", end="")
print()
>>>
*
**
***
****
*****
*****
****
***
**
*
*
**
***
****
*****
****
***
**
*
📍 문제 2_6
# 1
for i in range(1, 6):
print(" " * (i-1), "*")
# 2 중첩문
for i in range(1, 6):
for j in range(1, 6):
if j == i:
print("*", end="")
else:
print(" ", end="")
print()
>>>
*
*
*
*
*
*
*
*
*
*
📍 문제 2_7
for i in range(1, 6):
print(" " * (5-i), "*")
>>>
*
*
*
*
*
📍 문제 2_8
n = 5
for i in range(1, n+1):
print(" " * (5-i), "*" * ((i*2) - 1))
for i in range(n, 0, -1):
print(" " * (5-i), "*" * ((i*2) - 1))
>>>
*
***
*****
*******
*********
*********
*******
*****
***
*
📎 문제 3
- 톱니가 각각 n1개와 n2개의 톱니바퀴가 서로 맞물려 회전할 때,
- 회전을 시작한 후 처음 맞물린 톱니가 최초로 다시 만나게 될 때까지의 톱니의 수와 각각의 바퀴 회전수를 출력해보자.
- (단, n2는 n1보다 크다.)
gear_a = int(input("GearA 톱니수 입력: "))
gear_b = int(input("GearB 톱니수 입력: "))
min_mul = 0
for i in range(max(gear_a, gear_b), (gear_a * gear_b) + 1):
if i % gear_a == 0 and i % gear_b == 0:
min_mul = i
break
print(f"최초 만나는 톱니수(최소공배수): {min_mul}톱니")
print(f"gear_A 회전수: {min_mul // gear_a}회전")
print(f"gear_B 회전수: {min_mul // gear_b}회전")
>>>
GearA 톱니수 입력: 7
GearB 톱니수 입력: 12
최초 만나는 톱니수(최소공배수): 84톱니
gear_A 회전수: 12회전
gear_B 회전수: 7회전
⚡️실습 코드 파일⚡️
4일차 스터디 노트[unit_51 ~ 64].ipynb
1.63MB
반응형
'zero-base 데이터 취업 스쿨 > 스터디 노트' 카테고리의 다른 글
[스터디 노트] Week2_2일차[unit20 ~ 39] (0) | 2023.07.14 |
---|---|
[스터디 노트] Week2_1일차[unit1 ~ 19] (0) | 2023.07.11 |
[스터디 노트] Week1_3일차[unit33 ~ 50] (0) | 2023.07.06 |
[스터디 노트] Week1_2일차[unit17 ~ 32] (0) | 2023.07.05 |
[스터디 노트] Ot 후기 (0) | 2023.07.04 |