Python Basic - 연습

Syl·2024년 6월 14일

Python

목록 보기
3/7

Tue. 12. 6.
파이썬 기초 연습

학습한 핵심 내용:

1. 데이터와 변수 사용법

ㄴ len(), find()

import datetime
today = datetime.datetime.today()
age = input('나이 입력: ')

if age.isdigit():
    birthYear = today.year - int(age)
    year100 = birthYear + 100
    leftYear = 100 - int(age)
    year = '{}년({}년후)에 100살!!'.format(year100, leftYear)

ㄴ 주의할 점: isdigit()은 숫자 판별해주지만, 입력한 값은 str이므로 int casting 해주어야 함.

2. 연산자

- 거스름돈 구하기

price = int(input('product price: '))
payment = int(input('your payment: '))

if payment > price:
    change = ((payment - price) // 10) * 10
    print('change: {}(won cut)'.format(change))

money1 = 50000; money2 = 10000; money3 = 5000; money4 = 1000
money5 = 500; money6 = 100; money7= 50; money8 = 10

money50000 = 0; money10000 = 0; money5000 = 0; money1000 = 0;
money500 = 0; money100 = 0; money50 = 0; money10 = 0

if change >= money1:
    money50000 = change // money1
    change %= money1

...(중략)...

if change >= money8:
    money10 = change // money8
    change %= money8

print('-' * 30)
print(f'50000 cnt: {money50000}')
print(f'10000 cnt: {money10000}')
print(f'5000 cnt: {money5000}')
print(f'1000 cnt: {money1000}')
print(f'500 cnt: {money500}')
print(f'100 cnt: {money100}')
print(f'50 cnt: {money50}')
print(f'10 cnt: {money10}')
print('-' * 30)

ㄴ 주의! : 코드 줄바꿈 안 할 때 쉼표(,) 대신 세미콜론(;)

- 최고 점수 구하기

- 복리 계산

money = int(input('금액 입력: '))
rate = float(input('이율 입력: '))
period = int(input('기간 입력: '))

targetMoney = money

for i in range(period):
    targetMoney *= ((rate / 100) + 1)

targetMoney = int(targetMoney)

print('-'*30)
print('이율: {}%'.format(rate))
print('원금: {}원'.format(format(money, ',')))
print('{}년 후 금액: {}원'.format(period, format(targetMoney, ',')))
print('-'*30)

ㄴtargetMoney를 두 번 쓰는 걸 피하고자 강의 내용과는 다르게 targetMoney *= ((rate / 100) + 1)로 계산했다. 이게 더 보기 예쁜 거 같아서.

- 접종 가능 여부 계산

age = int(input('나이 입력: '))

import datetime
today = datetime.datetime.today()
birthYear = today.year - age
myNum = birthYear % 10

if age <= 19 or age >= 65:
    print('출생 연도 끝자리: {}'.format(myNum))
    if myNum == 1:
        print('월요일 접종 가능!!')
...(중략)...
    elif myNum == 0:
        print('금요일 접종 가능!!')

else: print('하반기 일정 확인하세요.')

ㄴ문제에서는 출생 연도 끝자리를 직접 입력하는 거지만, 나이만 입력하면 알아서 계산 되도록 해봤다. (elif 문제)

- 절댓값

ㄴ abs()

- 조건문

part = int(input('업종 선택: 1. 가정용 2. 대중탕용 3. 공업용 '))
userWater = int(input('사용량 입력: '))
unitPrice = 0

if part ==1:
    unitPrice = 540
    pass
    
...(후략)...

ㄴif문 전에 미리 필요한 변수 초기화해 둘 것

- datetime() 날짜

- 난수(random.randint())

ㄴ count += 1을 어디에 넣을지 고민됐었는데 else 뒤에 놨었음. 작동은 정상으로 되지만 맨 앞에 넣는 게 보기 편한 것 같다.

- 홀짝 구하기

ㄴ 은근 까다로웠던 점: result10, result1라는 변수를 추가하는 것을 처음에 생각해내지 못해서 시간이 소요됨.
ㄴ result1 = '0'으로 놓으면 간결해짐.

- 합계/팩토리얼

ㄴ 문제 풀이를 강의 해설보다 깔끔하게 해서 기분이 좋군:)

- asterisk: 중첩 반복문

- 반복문 연습

ㄴ 분을 기준으로 반복문을 설정하는 아이디어 & 몫과 나머지로 시간, 분을 설정

- 최소공배수

ㄴ 원리는 같지만 이번 건은 강의 해설이 gearA와 gearB를 나눠서 볼 수 있어서 좀 더 가독성 있는 듯하다.

이 글은 제로 베이스 데이터 취업 스쿨 강의 자료 일부를 발췌하거나 참고하여 작성되었습니다.

0개의 댓글