part= int(input('업종 선택(1.가정용 \t2.대중탕용 \t3.공업용)\t 입력: '))
useWater = int(input('사용량 입력: '))
unitPrice = 0
if part == 1:
useWater = 540
elif part == 2:
if useWater <= 50:
unitPrice = 820
elif useWater > 50 and useWater <= 300:
unitPrice = 1920
elif useWater > 300:
unitPrice = 2400
elif part == 3:
if useWater <= 500:
unitPrice = 240
else:
unitPrice = 470
print('=' * 30)
print('상수도 요금표')
print('=' * 30)
print('사용량 : 요금')
userPrice = useWater * unitPrice
print('{} : {}원'.format(useWater, userPrice))
=======================================================
업종 선택(1.가정용 2.대중탕용 3.공업용) 입력: 2
사용량 입력: 270
==============================
상수도 요금표
==============================
사용량 : 요금
270 : 518400원
import datetime #연도/월/일/시분초까지 나오는 모듈
today = datetime.datetime.today()
day = today.day
limitDust = 150
dustNum = int(input('미세먼지 수치 입력 : '))
carType = int(input('차량 종류 선택: 1.승용차 2.영업용차 \t 입력: '))
carNum = int(input('차량 번호 입력: '))
print('-' * 30)
print(today)
print('-' * 30)
if dustNum > limitDust and carType == 1:
if (day % 2) == (carNum % 2):
print('차량 2부제 적용')
print('차량 2부제로 금일 운행 제한 대상 차량입니다.')
else:
print('금일 운행 가능합니다.')
if dustNum > limitDust and carType == 2:
if (day % 5) == (carNum % 5):
print('차량 5부제 적용')
print('차량 5부제로 금일 운행 제한 대상 차량입니다.')
else:
print('금일 운행 가능합니다.')
if dustNum <= limitDust:
if (day % 5) == (carNum % 5):
print('차량 5부제 적용')
print('차량 5부제로 금일 운행 제한 대상 차량입니다.')
else:
print('금일 운행 가능합니다.')
print('-' * 30)
===========================================================
미세먼지 수치 입력 : 145
차량 종류 선택: 1.승용차 2.영업용차 입력: 1
차량 번호 입력: 5526
------------------------------
2023-11-27 02:14:43.782189
------------------------------
금일 운행 가능합니다.
------------------------------
import random
rNum = random.randint(1, 1000)
tryCount = 0
gameFlag = True #게임이 계속 되어야하니까
while gameFlag:
tryCount += 1
pNum = int(input('1에서 1,000까지의 양수 입력: '))
if rNum == pNum:
print('빙고!')
gameFlag = False #맞췄으니 종료해야됨
else:
if rNum > pNum:
print('난수가 크다.')
else:
print('난수가 작다.')
print('난수 : {}, 시도 횟수 : {}'.format(rNum, tryCount))
==================================================================
1에서 1,000까지의 양수 입력: 500
난수가 크다.
1에서 1,000까지의 양수 입력: 750
난수가 작다.
1에서 1,000까지의 양수 입력: 650
난수가 크다.
1에서 1,000까지의 양수 입력: 675
난수가 크다.
1에서 1,000까지의 양수 입력: 700
난수가 크다.
1에서 1,000까지의 양수 입력: 730
난수가 작다.
1에서 1,000까지의 양수 입력: 720
난수가 크다.
1에서 1,000까지의 양수 입력: 725
난수가 크다.
1에서 1,000까지의 양수 입력: 728
난수가 크다.
1에서 1,000까지의 양수 입력: 729
빙고!
난수 : 729, 시도 횟수 : 10
innerTemp = int(input('실내온도 입력: '))
if innerTemp <= 18:
print('에어컨: OFF!!')
elif innerTemp > 18 and innerTemp <= 22:
print('에어컨: 매우 약!!')
elif innerTemp > 22 and innerTemp <= 24:
print('에어컨: 약!!')
elif innerTemp > 24 and innerTemp <= 26:
print('에어컨: 중!!')
elif innerTemp > 24 and innerTemp <= 26:
print('에어컨: 강!!')
elif innerTemp > 28:
print('에어컨: 매우 강!!')
=============================================
실내온도 입력: 30
에어컨: 매우 강!!
for i in range(1, 101): #횟수에 의한 반복이라 for문 사용
if i <= 9:
if i % 2 == 0:
print('[{}]: 짝수'.format(i))
else:
print('[{}]: 홀수'.format(i))
else:
num10 = i // 10
num1 = i % 10
result10 = ''
if num10 % 2 ==0:
result10 = '짝수'
else:
result10 = '홀수'
result1 = '0'
if num1 != 0:
if num1 % 2 == 0:
result1 = '짝수'
else:
result1 = '홀수'
print('[{}] 십의자리: {}, 일의자리: {}'.format(i, result10, result1))
==================================================================================
[1]: 홀수
[2]: 짝수
[3]: 홀수
[4]: 짝수
[5]: 홀수
[6]: 짝수
[7]: 홀수
[8]: 짝수
[9]: 홀수
[10] 십의자리: 홀수, 일의자리: 0
[11] 십의자리: 홀수, 일의자리: 홀수
[12] 십의자리: 홀수, 일의자리: 짝수
[13] 십의자리: 홀수, 일의자리: 홀수
[14] 십의자리: 홀수, 일의자리: 짝수
[15] 십의자리: 홀수, 일의자리: 홀수
[16] 십의자리: 홀수, 일의자리: 짝수
[17] 십의자리: 홀수, 일의자리: 홀수
[18] 십의자리: 홀수, 일의자리: 짝수
[19] 십의자리: 홀수, 일의자리: 홀수
[20] 십의자리: 짝수, 일의자리: 0
[21] 십의자리: 짝수, 일의자리: 홀수
[22] 십의자리: 짝수, 일의자리: 짝수
[23] 십의자리: 짝수, 일의자리: 홀수
[24] 십의자리: 짝수, 일의자리: 짝수
(생략)
[96] 십의자리: 홀수, 일의자리: 짝수
[97] 십의자리: 홀수, 일의자리: 홀수
[98] 십의자리: 홀수, 일의자리: 짝수
[99] 십의자리: 홀수, 일의자리: 홀수
[100] 십의자리: 짝수, 일의자리: 0
fNum = int(input('정수 입력: '))
addSum = 0
for i in range(1, fNum + 1):
addSum += i
addSumFormated = format(addSum, ',')
print('합 결과: {}'.format(addSumFormated))
oddSum = 0
for i in range(1, fNum + 1):
if i % 2 !=0:
oddSum += i
oddSumFormated = format(oddSum, ',')
print('홀수 합 결과: {}'.format(oddSumFormated))
evenSum = 0
for i in range(1, fNum + 1):
if i % 2 == 0:
evenSum += i
evenSumFormated = format(evenSum, ',')
print('짝수 합 결과: {}'.format(evenSumFormated))
factorialResult = 1
for i in range(1, fNum + 1):
factorialResult *= i
factorialResultFormated = format(factorialResult, ',')
print('팩토리얼 결과: {}'.format(factorialResultFormated))
================================================================
정수 입력: 10
합 결과: 55
홀수 합 결과: 25
짝수 합 결과: 30
팩토리얼 결과: 3,628,800
for i in range(5):
i += 1
print('*' * i)
--------------------------
for i in range(1, 6):
for j in range(i):
print('*', end='')
print()
=========================
*
**
***
****
*****
for i1 in range(1, 6):
for i2 in range(6 - i1 -1):
print(' ', end='') #공백을 나타냄
for i3 in range(i1):
print('*', end='')
print()
======================================
*
**
***
****
*****
for i in range(5, 0, -1):
for j in range(i):
print('*', end='')
print()
===========================
*****
****
***
**
*
for i in range(5, 0, -1):
for j in range(5 -i):
print(' ', end='')
for j in range(i):
print('*', end='')
print()
===========================
*****
****
***
**
*
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()
===================================
*
**
***
****
*****
****
***
**
*
for i in range(1, 6):
for j in range(1, 6):
if j == i:
print('*', end='')
else:
print(' ', end='')
print()
=====================================
*
*
*
*
*
for i in range(5):
for j in range(5-i-1):
print(' ', end='')
print('*')
================================
*
*
*
*
*
for i1 in range(5):
for i2 in range(5 - i1 - 1):
print(' ', end='')
for i3 in range(2 * i1 + 1):
print('*', end='')
print()
for i1 in range(4, -1, -1):
for i2 in range(5 - i1 - 1):
print(' ', end='')
for i3 in range(2 * i1 + 1):
print('*', end='')
print()
=====================================
*
***
*****
*******
*********
*********
*******
*****
***
*

<윗부분 해석>
1. i = 0 / 공백 : 4 / : 1
2. i = 1 / 공백 : 3 / : 3
3. i = 2 / 공백 : 2 / : 5
4. i = 3 / 공백 : 1 / : 7
5. i = 4 / 공백 : 0 / * : 9
<아래 해석>
1. i = 4 / 공백 : 0 / : 9
2. i = 3 / 공백 : 2 / : 7
3. i = 2 / 공백 : 3 / : 5
4. i = 1 / 공백 : 4 / : 3
5. i = 0 / 공백 : 5 / * : 1
busA = 15
busB = 13
busC = 8
totalMin = 60 * 17 #17시간 운행(6~23시)
for i in range(totalMin + 1):
if i < 20 or i > (totalMin - 60): #6시20분전 또는 22시 이후는 운행 안할때 > A와 B만 운행
if i % busA == 0 and i % busB == 0:
print('busA와 busB 동시 정차!!', end='')
hour = 6 + i // 60
min = i % 60
print('\t{} : {}'.format(hour, min))
else: #A,B,C 모두 운행
if i % busA == 0 and i % busB == 0:
print('busA와 busB 동시 정차!!', end='')
hour = 6 + i // 60
min = i % 60
print('\t{} : {}'.format(hour, min))
elif i % busA == 0 and i % busC == 0:
print('busA와 busC 동시 정차!!', end='')
hour = 6 + i // 60
min = i % 60
print('\t{} : {}'.format(hour, min))
elif i % busB == 0 and i % busC == 0:
print('busB와 busC 동시 정차!!', end='')
hour = 6 + i // 60
min = i % 60
print('\t{} : {}'.format(hour, min))
==========================================================
busA와 busB 동시 정차!! 6 : 0
busB와 busC 동시 정차!! 7 : 44
busA와 busC 동시 정차!! 8 : 0
busA와 busB 동시 정차!! 9 : 15
busB와 busC 동시 정차!! 9 : 28
busA와 busC 동시 정차!! 10 : 0
busB와 busC 동시 정차!! 11 : 12
busA와 busC 동시 정차!! 12 : 0
busA와 busB 동시 정차!! 12 : 30
busB와 busC 동시 정차!! 12 : 56
busA와 busC 동시 정차!! 14 : 0
busB와 busC 동시 정차!! 14 : 40
busA와 busB 동시 정차!! 15 : 45
busA와 busC 동시 정차!! 16 : 0
busB와 busC 동시 정차!! 16 : 24
busA와 busC 동시 정차!! 18 : 0
busB와 busC 동시 정차!! 18 : 8
busA와 busB 동시 정차!! 19 : 0
busB와 busC 동시 정차!! 19 : 52
busA와 busC 동시 정차!! 20 : 0
busB와 busC 동시 정차!! 21 : 36
busA와 busC 동시 정차!! 22 : 0
busA와 busB 동시 정차!! 22 : 15
#최소 공배수 문제
gearATCnt = int(input('GaerA 톱니수 입력: '))
gearBTCnt = int(input('GaerB 톱니수 입력: '))
gearA = 0
gearB = 0
leastNum = 0
flag = True
while flag:
if gearA != 0:
if gearA != leastNum:
gearA += gearATCnt
else:
flag = False
else:
gearA += gearATCnt
if gearB != 0 and gearB % gearATCnt == 0:
leastNum = gearB
else:
gearB += gearBTCnt
print('최초 만나는 톱니수(최소공배수): {}톱니'.format(leastNum))
print('gearA 회전수: {}회전'.format(int(leastNum / gearATCnt)))
print('gearB 회전수: {}회전'.format(int(leastNum / gearBTCnt)))
====================================================================
GaerA 톱니수 입력: 7
GaerB 톱니수 입력: 12
최초 만나는 톱니수(최소공배수): 84톱니
gearA 회전수: 12회전
gearB 회전수: 7회전
year = int(input('연도 입력: '))
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print('{}년: 윤년!'.format(year))
else:
print('{}년: 평년!'.format(year))
===============================================================
연도 입력: 2024
2024년: 윤년!
👍
문제를 보고 조건문을 구상하는게 너무 어렵다.😭
답을 보기 전에 할 수 있는 부분은 먼저 진행하는데 걔속 막히니 답답하기도 하고,
강의 답안과 맞았을 때는 재밌기도하다.
특히 별찍기 문제는 응용력이 없어서 시간이 정말 오래걸렸다ㅠㅠ
비전공자인것도 맞지만 나만 오래걸리는게 아닌가 하는 생각이 들기도 했다,, 오래걸리는건 팩트이니 능숙하게 하려면 여러 예제를 접해봐야될거같다.
별찍기 관련 여러 응용문제들이 많이 보였는데 많이 접해보고 규칙찾는 연습을 아~~~주 많이 해봐야 될거같다.
시간이 너무 오래 걸리고 이해도 잘 안돼서 착잡했는데 그럼에도 해야지 어쩌겠어라는 심정으로 해결해보려고 한다. 수학 머리가 없다고 자책하지말고 모르겠으면 일단 외우자..!(?)
시간이 자나면 익숙해지고 숙련되어 저절로 해결되는 순간이 올때까지 일단은 해보자👍
여러번 반복하다보면 문제만 보고 조건문을 착착 구상하는 날이 올 수 있기를 바라본다ヾ(•ω•`)o
이 글은 제로베이스 데이터 분석 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.