📌 파이썬 연습문제 [조건문]
📋 교통 과속 프로그램
speed = int(input('속도 입력 : '))
if speed <= 50:
print('안전 속도 준수!')
else:
print('안전 속도 위반!')
📋 문자메시지 길이에 따라 문자 요금이 결정되는 프로그램
message = input('메시지 입력 : ')
print('--전송 중--')
messageLength = len(message)
print(f'메시지 길이 :{len(message)}')
if messageLength <= 50:
print('메시지 발송 요금 : 50')
else:
print('메시지 방송 요금 : 100원')
📋 국어, 영어, 수학, 국사 점수 입력하면 데이터가 출력되는 프로그램
korAvg = 85
engAvg = 82
mathAvg = 89
scienceAvg = 75
historyAvg = 94
kor = int(input('국어 : '))
eng = int(input('영어 : '))
math = int(input('수학 : '))
science = int(input('과학 : '))
history = int(input('국사 : '))
total = kor + math + eng + science + history
totalAvg = total / 5
avgTotal = korAvg + engAvg + mathAvg + scienceAvg + historyAvg
korGap = kor - korAvg
engGap = eng - engAvg
mathGap = math - mathAvg
scienceGap = science - scienceAvg
hisGap = history - historyAvg
print('-' * 30)
print(f'총점 : {total}({avgTotal - total})')
print(
f'국어 : {kor}({korGap}), 영어 : {eng}({engGap}), 수학 : {math}({mathGap}), 과학 : {science}({scienceGap}), 국사 : {history}({hisGap})')
print('-' * 30)
gap = ''
if korGap > 0:
gap = '+' * korGap
else:
gap = '-' * abs(korGap)
print(f'국어 편차 : {gap}')
if engGap > 0:
gap = '+' * engGap
else:
gap = '-' * abs(engGap)
print(f'영어 편차 : {gap}')
if mathGap > 0:
gap = '+' * mathGap
else:
gap = '-' * abs(mathGap)
print(f'수학 편차 : {gap}')
if scienceGap > 0:
gap = '+' * scienceGap
else:
gap = '-' * abs(scienceGap)
print(f'과학 편차 : {gap}')
if hisGap > 0:
gap = '+' * hisGap
else:
gap = '-' * abs(hisGap)
print(f'국사 편차 : {gap}')
print('-' * 30)
📋 난수를 이용한 홀/짝 프로그램
import random
flag = True
while flag:
comNum = random.randint(1, 2)
if comNum == 1:
comNumStr = '홀'
else:
comNumStr = '짝'
select = int(input('홀/짝 선택 1. (홀) 2. (짝) : '))
if comNum == select:
print(f'빙고 : {comNumStr}')
flag = False
else:
print(f'실패 : {comNumStr}')
📋 난수를 이용한 가위 바위 보
flag = True
comNum = random.randint(1, 3)
while flag:
userResult = ''
comResult = ''
print(comNum)
select = int(input('[가위 | 바위 | 보] 선택 -> 1. 가위 2. 바위 3. 보 : '))
if comNum == select:
userResult = '무승부'
comResult = '무승부'
elif comNum == 1:
if select == 2:
userResult = '승'
comResult = '패'
flag = False
else:
userResult = '패'
comResult = '승'
elif comNum == 2:
if select == 3:
userResult = '승'
comResult = '패'
flag = False
else:
userResult = '패'
comResult = '승'
elif comNum == 3:
if select == 1:
userResult = '승'
comResult = '패'
flag = False
else:
userResult = '패'
comResult = '승'
else:
print('다시 입력해 주세요.')
print(f'컴퓨터 : {comNum}, 유저 : {select}')
print(f'컴퓨터 : {comResult}, 유저 : {userResult}')
📋 상수도 요금 계산기
part = int(input('업종 선택 (1. 가정용, 2. 대중탕용, 3. 공업용 ) : '))
useWater = int(input('사용량 입력 : '))
price = 0
if part == 1:
price = 540 * useWater
elif part == 2:
if useWater <= 50:
price = 820 * useWater
if useWater <= 300:
price = 1920 * useWater
else:
price = 2400 * useWater
elif part == 3:
if useWater <= 500:
price = 240 * useWater
else:
price = 470 * useWater
else:
print('다시 입력해주세요')
print('=' * 30)
print('상수도 요금표')
print('-' * 30)
print('사용량 \t:\t 요금')
print(f'{useWater} \t:\t {format(price,",")}원')
print('=' * 30)
📋 미세먼지 차량 운행 제한 프로그램
import datetime
dust = int(input('미세먼지 수치 입력 : '))
carType = int(input('차량 종류 선택 - [1. 승용차 2, 영업용 차] : '))
carNum = int(input('차량 번호 입력 : '))
carLimit = ''
day = datetime.datetime.today().day
if dust <= 150 and carNum % 5 == day % 5:
carLimit = '차량 5부제'
elif dust > 150 and carNum % 2 == day % 2:
if carType == 1:
carLimit = '차량 2부제'
elif carType == 2:
carLimit = '차량 5부제'
else:
carLimit = '다시 입력해주세요'
exit(0)
else:
carLimit = '운행 가능합니다'
print('-' * 20)
print(datetime.datetime.now())
print('-' * 20)
print(f'{carLimit} ')
print('-' * 20)
📋난수 맞추기 게임
import random
randNum = random.randint(1, 1000)
flag = True
cnt = 0
while flag:
cnt += 1
num = int(input('1에서 1000까지 정수 입력 : '))
if num > randNum:
print("더 작은 수 입력")
elif num < randNum:
print('더 큰 수 입력')
else:
print(f'빙고!\n난수 : {randNum}, 시도 횟수 : {cnt}')
flag = False
📋 실내온도 입력하면 자동으로 에어컨 상태가 설정 되는 프로그램
airconState = ''
temp = int(input('실내온도 입력 : '))
if temp <= 18:
airconState = 'off'
elif temp <= 22:
airconState = '매우 약'
elif temp <= 24:
airconState = '약'
elif temp <= 26:
airconState = '중'
elif temp <= 28:
airconState = '강'
else:
airconState = '매우 강'
print(f'에어컨 상태 : {airconState} ')
📌 파이썬 연습문제 [반복문]
📋 1부터 100까지 정수 중 십의 자리와 일의 자리에 대해 홀/짝 구분 프로그램
import operator
for i in range(1, 101):
num10 = operator.floordiv(i, 10)
num1 = operator.mod(i, 10)
if i >= 10:
if num10 % 2 == 0:
print(f'[{i}] 십의 자리 : 짝수 ', end='')
if num1 % 2 == 0:
print('일의 자리 : 짝수')
else:
print('일의 자리 : 홀수')
else:
print(f'[{i}] 십의 자리 : 홀수 ', end='')
if num1 % 2 == 0:
print('일의 자리 : 짝수')
else:
print('일의 자리 : 홀수')
else:
if num1 % 2 == 0:
print(f'[{i}] 일의 자리 : 짝수')
else:
print(f'[{i}] 일의 자리 : 홀수')
📋 1부터 사용자가 입력한 정수까지의 합, 홀수의 합 그리고 팩토리얼을 출력하는 프로그램
sum = 0
oddSum = 0
evenSum = 0
factorial = 1
num = int(input('정수 입력 : '))
for i in range(1, num + 1):
sum += i
factorial = factorial * i
if i % 2 == 0:
evenSum += i
else:
oddSum += i
print(f'합 : {sum}')
print(f'홀수 합 : {oddSum}')
print(f'짝수 합 : {evenSum}')
print(f'팩토리얼 결과 :{format(factorial, ",")}')
📋 '*'를 이용해서 모양 출력
rint("#1")
for i in range(5):
for j in range(i + 1):
print("*", end='')
print()
print('-' * 20)
print("#2")
for i in range(5, 0, -1):
print(' ' * (i - 1), '*' * (6 - i))
print('-' * 20)
print("#3")
for i in range(5):
for j in range(5 - i):
print("*", end='')
print()
print('-' * 20)
print("#4")
for i in range(5, 0, -1):
print(' ' * (5 - i), '*' * i)
print('-' * 20)
print('#5')
for i in range(1, 10):
if i > 5:
i = 10 - i
for j in range(i):
print('*', end="")
print()
print('-' * 20)
print('#6')
for i in range(5, 0, -1):
print(' ' * (5 - i), '*')
print('-' * 20)
print('#7')
for i in range(5, 0, -1):
print(' ' * (i - 1), '*')
print('-' * 20)
print('#8')
for i in range(1, 10):
if i > 5:
i = 10 - i
print(' ' * (5 - i), "*" * (2 * i - 1), ' ' * (5 - i))
print('-' * 20)
#짧은 정리
가장 자주 쓰는 단축키
ctrl+D : 복사+자동 붙여넣기 단축키
ctrl+shift+L : 문단 정리 단축키
#체크사항
문제 정답과 내가 작성한 코드랑 다른 경우에 복잡도가 얼마나 차이나는지 궁금하다..
#소감
아직 반복문 3문제가 남았지만 기초 문제 거의 다 풀었다! 커리큘럼 상 연습문제는 하루만에 다 풀어야하지만 그건 무리였다,, 아직은 커리큘럼 보다 진도가 빠르니깐 ^-^
앞으로 더 어려워질테니 파이팅 해야지!