파이썬 기초4

InSung-Na·2023년 1월 6일
0

Part 01-1. Python Basic

목록 보기
4/4
post-thumbnail

해당 글은 제로베이스데이터스쿨 학습자료를 참고하여 작성되었습니다

📌datetime 모듈

  • 날짜, 시간 출력

📝입력

import datetime
today = datetime.datetime.today()
print(today)
print('{}년 {}월 {}일 {}시 {}분 {}초'.format(today.year, today.month, today.day, today.hour, today.minute, today.second))
print('2021년 8월 3일 화요일')
print('21시 31분 52초')

🧾출력

2023-01-06 13:15:12.533807
202316131512202183일 화요일
213152

📌len(), str.find()

  • 길이 측정, 문자열찾기

📝입력

userMsg = input('메시지 입력 : ')
print('메시지 문자열 길이 : {}'. format(len(userMsg)))

print(userMsg.find('ba'))

🧾출력

메시지 입력 : zerobase
메시지 문자열 길이 : 8
4

📌len활용 : 개인정보 출력하기

📝입력

userName = input('이름 입력 : ')
mail = input('메일 입력 : ')
id = input('아이디 입력 : ')
password = input('비밀번호 입력 : ')
privateNum1 = input('주민번호 앞자리 입력 : ')
privateNum2 = input('주민번호 뒷자리 입력 : ')
address = input('주소 입력 : ')

password = len(password) * '*'
privateNum2 = privateNum2[0] + (len(privateNum2) - 1) * '*'

print('이름 : {}'.format(userName))
print('메일 : {}'.format(mail))
print('아이디 : {}'.format(id))
print('비밀번호 : {}'.format(password))
print('주민번호 : {} - {}'.format(privateNum1, privateNum2))
print('주소 : {}'.format(address))

🧾출력

이름 입력 : 홍길동
메일 입력 : gilldong@gmail.com
아이디 입력 : Gogilldong
비밀번호 입력 : 123456
주민번호 앞자리 입력 : 20230106
주민번호 뒷자리 입력 : 1234789
주소 입력 : 서울 강남구
이름 : 홍길동
메일 : gilldong@gmail.com
아이디 : Gogilldong
비밀번호 : ******
주민번호 : 20230106 - 1******
주소 : 서울 강남구

📌isdigit() : BMI지수 출력

  • 숫자 데이터인지 확인

📝입력

for _ in range(1):
    weight_g = (input('체중 입력(g) : '))
    if weight_g.isdigit():
        weight_kg = int(weight_g) / 1000
    else:
        print('정수를 입력해주세요')
        continue

    height_cm = (input('신장 입력(cm) : '))
    if height_cm.isdigit():
        height_m = int(height_cm) / 100
    else:
        print('정수를 입력해주세요')
        continue

    print('체중 : {}[kg]'.format(weight_kg))
    print('신장 : {}[m]'.format(height_m))
    print('BMI : {}'.format(weight_kg / (height_m ** 2)))

🧾출력

체중 입력(g) : 76321
신장 입력(cm) : 213
체중 : 76.321[kg]
신장 : 2.13[m]
BMI : 16.822279530075605

📌데이터 바꾸기

📝입력

# # 데이터 서로 바꾸기
num1 = 10
num2 = 20
print('num1 : {}, num2 : {}'.format(num1, num2))

# 다른 언어의 방식
temp = num1
num1 = num2
num2 = temp
print('num1 : {}, num2 : {}'.format(num1, num2))

# 파이썬의 방식
num1, num2 = num2, num1
print('num1 : {}, num2 : {}'.format(num1, num2))

🧾출력

num1 : 10, num2 : 20
num1 : 20, num2 : 10
num1 : 10, num2 : 20

📌거스름돈 거슬러주기

📝입력

money50000 = 50000; money10000 = 10000; money5000 = 5000; money1000 = 1000;
money500 = 500; money100 = 100; money10 = 10;

money50000cnt = 0; money10000cnt = 0; money5000cnt = 0; money1000cnt = 0;
money500cnt = 0; money100cnt = 0; money10cnt = 0;

price = int(input('상품 가격 입력 : '))
payMoney = int(input('지불 금액 : '))
if payMoney > price:
    restMoney = payMoney - price
    print('거스름 돈 : {}(원단위 절사)'.format(restMoney // 10 * 10))

    if restMoney >= money50000:
        money50000cnt = restMoney // money50000
        restMoney %= money50000

    if restMoney >= money10000:
        money10000cnt = restMoney // money10000
        restMoney %= money10000

    if restMoney >= money5000:
        money5000cnt = restMoney // money5000
        restMoney %= money5000

    if restMoney >= money1000:
        money1000cnt = restMoney // money1000
        restMoney %= money1000

    if restMoney >= money500:
        money500cnt = restMoney // money500
        restMoney %= money500

    if restMoney >= money100:
        money100cnt = restMoney // money100
        restMoney %= money100

    if restMoney >= money10:
        money10cnt = restMoney // money10
        restMoney %= money10

    print('50000원\t : {}'.format(money50000cnt))
    print('10000원\t : {}'.format(money10000cnt))
    print('5000원\t : {}'.format(money5000cnt))
    print('1000원\t : {}'.format(money1000cnt))
    print('500원\t : {}'.format(money500cnt))
    print('100원\t : {}'.format(money100cnt))
    print('10원\t : {}'.format(money10cnt))
else:
    print('돈이 부족합니다')

🧾출력

상품 가격 입력 : 35863
지불 금액 : 100000
거스름 돈 : 64130(원단위 절사)
50000: 1
10000: 1
5000: 0
1000: 4
500: 0
100: 1
10: 3

📌최고 최저 점수 출력

📝입력

국어 = int(input('국어 점수 입력 : '))
영어 = int(input('영어 점수 입력 : '))
수학 = int(input('수학 점수 입력 : '))
총점 = 국어 + 영어 + 수학
평균 = 총점 / 3

최고과목 = '국어'
최고점수 = 국어
if 영어 > 최고점수:
    최고과목 = '영어'
    최고점수 = 영어
if 수학 > 최고점수:
    최고과목 = '수학'
    최고점수 = 수학

최저과목 = '국어'
최저점수 = 국어
if 최저점수 > 영어:
    최저과목 = '영어'
    최저점수 = 영어
if 최저점수 > 수학:
    최저과목 = '수학'
    최저점수 = 수학

print('총점 : {}'.format(총점))
print('평균 : {}'.format(평균))
print('최고과목 : {}({})'.format(최고과목, 최고점수))
print('최저과목 : {}({})'.format(최저과목, 최저점수))
print('점수차이 : {}'.format(최고점수 - 최저점수))

🧾출력

국어 점수 입력 : 44
영어 점수 입력 : 56
수학 점수 입력 : 32
총점 : 132
평균 : 44.0
최고과목 : 영어(56)
최저과목 : 수학(32)
점수차이 : 24

📌random.randint() : 홀짝게임

  • 임의의 정수 출력

📝입력

from random import randint

comNum = randint(1, 2)
userSelect = int(input('홀/짝 선택 : 1.홀 \t 2.짝 '))

if comNum == 1 and userSelect == 1:
    print('빙고!! 홀수!!!')
elif comNum == 2 and userSelect == 2:
    print('빙고!! 짝수!!!')
elif comNum == 1 and userSelect == 1:
    print('실패!! 홀수!!!')
elif comNum == 2 and userSelect == 1:
    print('실패!! 짝수!!!')

🧾출력

/짝 선택 : 1.2.1
빙고!! 홀수!!!

📌스무고개

📝입력

import random
rNum = random.randint(1, 30)
print('스무고개에 오신 것을 환영합니다')
print('숫자의 범위는 1~30이며, 정수만 입력해주세요')
print('게임 종료 : 0')

i = 0
while i < 20:
    print('{}/20회 '.format(i+1), end='')

    userInput = input('숫자를 입력하세요 : ')
    if userInput.isdigit():
        userInput = int(userInput)
    else:
        print('잘못된 입력입니다')
        continue

    if userInput == 0:
        print('게임을 종료합니다')
        break
    elif userInput > rNum:
        print('타겟은 {}보다 작습니다'.format(userInput))
    elif userInput < rNum:
        print('타겟은 {}보다 큽니다'.format(userInput))
    elif userInput == rNum:
        print('타겟은 {}입니다'.format(userInput))
        break
    
    else:
        print('잘못된 입력입니다')
    i += 1

    if i >= 20:
        print('정답을 맞추지 못했습니다')

🧾출력

스무고개에 오신 것을 환영합니다
숫자의 범위는 1~30이며, 정수만 입력해주세요
게임 종료 : 0
1/20회 숫자를 입력하세요 : 15
타겟은 15보다 작습니다
2/20회 숫자를 입력하세요 : 7
타겟은 7입니다

📌버스 운행 정보

📝입력

busA = 15; busB = 13; busC = 8
totalMin = 60 * 17

for i in range(totalMin + 1):
    if i < 20 or i > (totalMin - 60):
        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:
        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

Process finished with exit code 0

📌기어 수(최소공배수)

📝입력

gearATCnt = int(input('Gear1 톱니수 입력 : '))
gearBTCnt = int(input('Gear2 톱니수 입력 : '))

if gearATCnt > gearBTCnt:
    gearATCnt, gearBTCnt = gearBTCnt, gearATCnt

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)))


print()
import math
gcd = math.gcd(gearATCnt, gearBTCnt)
print('최대공약수 : {}'.format(gcd))
print('최소공배수 : {}'.format(int((gearATCnt * gearBTCnt / gcd))))

🧾출력

Gear1 톱니수 입력 : 8
Gear2 톱니수 입력 : 18
최초 만나는 톱니 수(최소공배수) : 72
gearA 회전수 : 9회전
gearB 회전수 : 4회전

최대공약수 : 2
최소공배수 : 72

📌백신접종 대상자 구분

📝입력

나이 = int(input('나이 입력 : '))
출생연도끝자리 = int(input("출생 연도 끝자리 입력 : "))
day = ['일', '월', '화', '수', '목', '금', '토']

if not (19 < 나이 < 65):
    print('{}요일 접종 가능!!'.format(day[출생연도끝자리]))
else:
    print('하반기 일정을 확인하세요')

🧾출력

나이 입력 : 66
출생 연도 끝자리 입력 : 3
수요일 접종 가능!!

0개의 댓글