데이터분석 4일 차

김보성·2024년 1월 7일

목차

(연습문제)데이터와 변수(01)
(연습문제)데이터와 변수(02)
(연습문제)데이터와 변수(03)
(연습문제)데이터와 변수(04)
(연습문제)데이터와 변수(05)

(연습문제)연산자(01)
(연습문제)연산자(02)
(연습문제)연산자(03)
(연습문제)연산자(04)
(연습문제)연산자(05)

(연습문제)조건문(01)
(연습문제)조건문(02)
(연습문제)조건문(03)
(연습문제)조건문(04)
(연습문제)조건문(05)
(연습문제)조건문(06)

(연습문제)반복문(01)
(연습문제)반복문(02)
(연습문제)반복문(03)
(연습문제)반복문(04)
(연습문제)반복문(05)
(연습문제)반복문(06)

(연습문제)데이터와 변수(01)

ex)
name = '홍길동'
product = '야구글러브'
orderNo = 2568956
payMethod = '신용카드'
productPrice = 110000
payPrice = 100000
userPoint = 10000
payDate = '2021/08/03 21:50:12'
payDiv = 6
payDivCate = '무'
phone = '02-1234-5678'

print(name, '고객님 안녕하세요.')
print(name, '고객님의 주문이 완료되었습니다.')
print('다음은 주문건에 대한 상세 내역입니다.')
print('-' 50)
print('상품명\t : ', product)
print('주문번호\t : ', orderNo)
print('결제방법\t : ', payMethod)
print('상품금액\t : ', productPrice)
print('결제금액\t : ', payPrice)
print('포인트\t : ', userPoint)
print('결제일시\t : ', payDate)
print('할부\t\t : ', payDiv)
print('할부유형\t : ',payDivCate)
print('문의\t\t : ',phone)
print('-'
50)
print('저희 사이트를 이용해 주셔서 감사합니다.')

출력값 :
홍길동 고객님 안녕하세요.
홍길동 고객님의 주문이 완료되었습니다.
다음은 주문건에 대한 상세 내역입니다.

상품명 : 야구글러브
주문번호 : 2568956
결제방법 : 신용카드
상품금액 : 110000
결제금액 : 100000
포인트 : 10000
결제일시 : 2021/08/03 21:50:12
할부 : 6
할부유형 : 무
문의 : 02-1234-5678

저희 사이트를 이용해 주셔서 감사합니다.

(연습문제)데이터와 변수(02)

ex)

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

출력값 :
메시지 입력 : 안녕
메시지 문자열 길이 : 2

*len은 문자길이를 구해주는 함수.(공백,특수문자 포함)

article = '파이썬은 ~, 객체지향, ~~~이다.'

strIdx = article.find('객체지향')
print('\'객체지향\' 문자열 위치 : {} '.format(strIdx))

출력값 :
'객체지향' 문자열 위치 : 00번째

*find 함수를 이용해 찾고자 하는 것이 문자열 몇 번째인지 알려줌.

(연습문제)데이터와 변수(03)

%f % - 실수
%d % - 정수 표기
\t - 정렬 이쁘게 표기

ex)
pi = 3.14
diameter = 6
radius = float(input('반지름(cm) 입력 : '))
circleArea = pi radius radius #원의 넓이
circleLength = 2 pi radius #원의 둘레길이

print('원의 넓이\t : %d' %circleArea)
print('원 둘레길이\t : %d' % circleLength)

print('원의 넓이\t : %.1f' % circleArea)
print('원 둘레길이\t : %.1f' % circleLength)

print('원의 넓이\t : %.3f' % circleArea)
print('원 둘레길이\t : %.3f' % circleLength)

출력값:
반지름(cm) 입력 : 3
원의 넓이 : 28
원 둘레길이 : 18
원의 넓이 : 28.3
원 둘레길이 : 18.8
원의 넓이 : 28.260
원 둘레길이 : 18.840

len() : 문자길이를 반환함.
str(0) : str에 저장된 첫 번째 문자를 반환함.

ex)
pwStar = '' len(pw)
****

residentB[0] + ('' 6)
→ 2** (입력 숫자 : 2018543)

(연습문제)데이터와 변수(04)

isdigit(): ()가 숫자라면 True

(연습문제)데이터와 변수(05)

ex)

selectNumber = input('언어 선택(choose your language) : 1.한국어\t 2.English') # 1

if selectNumber == '1':
menu = '1. 샌드위치 \t 2. 햄버거 \t 3.쥬스 \t 4. \t 커피 \t 5.아이스크림'
elif selectNumber == '2':
menu ='1.Sand \t 2. Ham \t 3. juice \t 4.Coffe \t 5. IceC'

print(menu)
2번선택 시
1.Sand 2. Ham 3. juice 4.Coffe 5. IceC

(연습문제)연산자(01)

한 행에 여러개 입력 시 ; 사용.(단, 끝에는 ; 사용하지 않는다.)

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; money1Cnt = 0

productPrice = int(input('상품 가격 입력 : '))
payPrice = int(input('지불 금액 : '))

if payPrice > productPrice:
changeMoney = payPrice - productPrice
changeMoney = (changeMoney // 10) * 10
print('거스름돈 : {}(원단위 절사)'.format(changeMoney))

if changeMoney > money50000:
money50000Cnt = changeMoney // money50000
changeMoney %= money50000
if changeMoney > money10000:
money10000cnt = changeMoney // money10000
changeMoney %= money10000

if changeMoney > money5000:
money5000Cnt = changeMoney // money5000
changeMoney %= money5000

if changeMoney > money1000:
money1000Cnt = changeMoney // money1000
changeMoney %= money1000

if changeMoney > money500:
money500Cnt = changeMoney // money500
changeMoney %= money500

if changeMoney > money100:
money100Cnt = changeMoney // money100
changeMoney %= money100

if changeMoney > money10:
money10Cnt = changeMoney // money10
changeMoney %= money10

print('50,000 {}장'.format(money50000Cnt))
print('10,000 {}장'.format(money10000Cnt))
print('5,000 {}장'.format(money5000Cnt))
print('1,000 {}장'.format(money1000Cnt))
print('500 {}장'.format(money500Cnt))
print('100 {}장'.format(money100Cnt))
print('10 {}장'.format(money10Cnt))

출력값 :

상품 가격 입력 : 68534
지불 금액 : 100000
거스름돈 : 31460(원단위 절사)

50,000 0장
10,000 0장
5,000 0장
1,000 1장
500 0장
100 4장
10 6장

(연습문제)연산자(02)

최고, 최저점수 실행문
maxScore = korScore
maxSubject = '국어'
if engScore > maxScore :
maxScore = engScore
maxSubject = '영어'

if matScore >maxScore:
maxScore = matScore
maxSubject = '수학'

minScore = korScore
minSubject = '국어'
if engScore <minScore:
minScore = engScore
minSubject = '영어'

if matScore <minScore:
minScore = matScore
minSubject = '수학'

(연습문제)연산자(03)

산술,비교,논리 연산자를 이용한 프로그래밍

숫자를 천 단위로 표기하고싶을때
format(format(hou 60 60 + min * 60 + sec, ',')))
이런식으로 format함수를 써서 ',' 추가하면 된다.(기존의 format함수 제외하고)

ex)

hou = int(input('시간 입력 : '))
min = int(input('분 입력 : '))
sec = int(input('초 입력 : '))

print('{}초'.format(format(hou 60 60 + min 60 + sec, ',')))
hou
60 60 + min 60 + sec

출력값 :

시간 입력 : 9
분 입력 : 45
초 입력 : 51
35,151초

ex) 금액,이율, 거치기간 입력 시 복리계산 프로그램

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

targetMoney = money

for i in range(term):
targetMoney += targetMoney rate 0.01

targetMoneyFormated = format(int(targetMoney), ',')

print('이율 : {}'.format(rate))
print('원금 : {}'.format(format(money),','))
print('{}년 후 금액 : {}원'.format(term, targetMoneyFormated))

출력값 :

금액 입력 : 1500000
이율 입력: 4.3
기간 입력 : 5

이율 : 4.3
원금 : 1500000
5년 후 금액 : 1,851,453원

(연습문제)연산자(04)

ex)학생 17한테 빵 197,우유 152를 몇명한테 나누어줄 수 있는 개수, 남는 개수 구하기.

bread = 197
milk = 152
studentCnt = 17

takeBread = bread // studentCnt
remainBread = bread % studentCnt

takeMilk = milk // studentCnt
remainMilk = milk % studentCnt

print('학생 한 명이 빵을 갖는 갯수 : {}'.format(takeBread))
print('남은 빵의 갯수 : {}'.format(remainBread))
print('학생 한 명이 우유를 갖는 갯수 : {}'.format(takeMilk))
print('남은 우유의 갯수 : {}'.format(remainMilk))

출력값 :
학생 한 명이 빵을 갖는 갯수 : 11
남은 빵의 갯수 : 10
학생 한 명이 우유를 갖는 갯수 : 8
남은 우유의 갯수 : 16

(연습문제)연산자(05)

ex)19세 이하 65세 이상일 때 백신접종 시 연도에 따라 무슨요일에 접종하는지 확인하는

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

if old <= 19 or old >= 65:
endNum = int(input('출생 연도 끝자리 입력 : '))
if endNum == 1 or endNum == 6:
print('월요일 접종 가능!!')
elif endNum == 2 or endNum == 7:
print('화요일 접종 가능!!')
elif endNum == 3 or endNum == 8:
print('수요일 접종 가능!!')
elif endNum == 4 or endNum == 9:
print('목요일 접종 가능!!')
elif endNum == 5 or endNum == 0:
print('금요일 접종 가능!!')

else:
print('하반기 일정 확인바람')

출력값 :

나이 입력 : 13
출생 연도 끝자리 입력 : 0
금요일 접종 가능!!

(연습문제)조건문(01)

ex)문자 메시지 길이에 따라 요금이 결정되는 프로그램만들기.

massage = input('메시지 입력 : ')
lenMassage = len(massage)
textLength = 50
if lenMassage <= 50:
textLength = 50
print('SMS 발송!!')

if lenMassage > 50:
textLength = 100
print('MMS 발송!!')

print('메시지 길이 : {}'.format(lenMassage))
print('메시지 발송 요금 : {}'.format(textLength))

(연습문제)조건문(02~03)

난수를 이용한 홀/짝 게임 만들기.

import random(무작위 숫자)

(연습문제)조건문(04~05)

import datime 모듈(연도, 월,별 )
xxx = datetime.datime.today()

(연습문제)조건문(06)

import random (난수)
xxx = random.randint(1, 1000)
1에서 1000까지 랜덤

ex)

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까지의 정수 입력 : 400
난수가 크다
1에서 1,000까지의 정수 입력 : 450
난수가 크다
1에서 1,000까지의 정수 입력 : 470
난수가 크다
1에서 1,000까지의 정수 입력 : 480
난수가 크다
1에서 1,000까지의 정수 입력 : 490
난수가 크다
1에서 1,000까지의 정수 입력 : 495
난수가 작다
1에서 1,000까지의 정수 입력 : 494
난수가 작다
1에서 1,000까지의 정수 입력 : 493
난수가 작다
1에서 1,000까지의 정수 입력 : 492
난수가 작다
1에서 1,000까지의 정수 입력 : 491
빙고!
난수 : 491, 시도 횟수 : 11

(연습문제)반복문(01~02)

while : 조건에 의한 반복문에 적합
for : 횟수에 의한 반복문에 적합

ex)

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

출력값 :
*
**




(연습문제)반복문(04~05)

year = int(input('연도 입력 : '))

if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
print('{}년 : 윤년'.format(year))
else:
print('{}년 : 평년'.format(year))

for year in range(2021, (2021 + 101)):
if (year % 4 == 0 and year % 100 !=0) or (year % 400 == 0):
print('{}년 : 윤년'.format(year))
else:
print('{}년 : 평년'.format(year))

profile
안녕하세요~

0개의 댓글