목차
(연습문제)데이터와 변수(01)
(연습문제)데이터와 변수(02)
(연습문제)데이터와 변수(03)
(연습문제)데이터와 변수(04)
(연습문제)데이터와 변수(05)
(연습문제)연산자(01)
(연습문제)연산자(02)
(연습문제)연산자(03)
(연습문제)연산자(04)
(연습문제)연산자(05)
(연습문제)조건문(01)
(연습문제)조건문(02)
(연습문제)조건문(03)
(연습문제)조건문(04)
(연습문제)조건문(05)
(연습문제)조건문(06)
(연습문제)반복문(01)
(연습문제)반복문(02)
(연습문제)반복문(03)
(연습문제)반복문(04)
(연습문제)반복문(05)
(연습문제)반복문(06)
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
저희 사이트를 이용해 주셔서 감사합니다.
ex)
useMsg = input('메시지 입력 : ')
print('메시지 문자열 길이{}'.format(len(useMsg)))
출력값 :
메시지 입력 : 안녕
메시지 문자열 길이 : 2
*len은 문자길이를 구해주는 함수.(공백,특수문자 포함)
article = '파이썬은 ~, 객체지향, ~~~이다.'
strIdx = article.find('객체지향')
print('\'객체지향\' 문자열 위치 : {} '.format(strIdx))
출력값 :
'객체지향' 문자열 위치 : 00번째
*find 함수를 이용해 찾고자 하는 것이 문자열 몇 번째인지 알려줌.
%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)
isdigit(): ()가 숫자라면 True
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
한 행에 여러개 입력 시 ; 사용.(단, 끝에는 ; 사용하지 않는다.)
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장
최고, 최저점수 실행문
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 = '수학'
산술,비교,논리 연산자를 이용한 프로그래밍
숫자를 천 단위로 표기하고싶을때
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원
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
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
금요일 접종 가능!!
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))
난수를 이용한 홀/짝 게임 만들기.
import random(무작위 숫자)
import datime 모듈(연도, 월,별 )
xxx = datetime.datime.today()
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
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()
출력값 :
*
**
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))