Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- iframe 태그
- css
- tag html
- 자식결합자
- go live
- padding 속성
- RGBA
- Live Server
- 인접 형제 결합자
- i 태그
- width속성
- html
- html 태그
- focus 의사클래스
- sub태그
- height속성
- 아두이노
- RGB
- br 태그
- sup태그
- iframe
- reveal in file explorer
- id 선택자
- background-color 속성
- 전체 선택자
- html tag i
- 임베디드
- Checked 의사 클래스
- not 의사클래스
- 일반 형제 결합자
Archives
- Today
- Total
so woon!
python_7일차 본문
## ex) 반복문을 이용한 커피 자판기 프로그램 ##
coffee = 5 # 커피의 개수
while True:
money = int(input("돈을 넣어주세요 : ")) # 사용자로 부터 돈을 입력 받는다.
if money == 300: # 커피값을 300원이라고 가정했을 경우
print('커피 나왔습니다!')
coffee -= 1 # coffee = coffee - 1
print(f'남은 커피의 양은 {coffee}개 입니다.')
elif money > 300:
print(f'거스름돈 {money-300}원을 주고 커피도 줍니다!')
coffee -= 1 # coffee = coffee - 1
print(f'남은 커피의 양은 {coffee}개 입니다.')
else: # 돈을 300원보다 적게 넣었을 경우
print(f'{money}원을 다시 돌려주고 커피는 주지 않습니다!')
print(f'남은 커피의 양은 {coffee}개 입니다.')
if coffee == 0:
print('커피가 다 떨어졌습니다. 판매를 중지합니다.')
break # 반복문을 빠져나온다.
============실행결과===============
돈을 넣어주세요 : 600
거스름돈 300원을 주고 커피도 줍니다!
남은 커피의 양은 4개 입니다.
돈을 넣어주세요 : 300
커피 나왔습니다!
남은 커피의 양은 3개 입니다.
돈을 넣어주세요 : 200
200원을 다시 돌려주고 커피는 주지 않습니다!
남은 커피의 양은 3개 입니다.
돈을 넣어주세요 : 500
거스름돈 200원을 주고 커피도 줍니다!
남은 커피의 양은 2개 입니다.
돈을 넣어주세요 : 300
커피 나왔습니다!
남은 커피의 양은 1개 입니다.
돈을 넣어주세요 : 300
커피 나왔습니다!
남은 커피의 양은 0개 입니다.
커피가 다 떨어졌습니다. 판매를 중지합니다.
## 139page) ##
fruits = ['사과', '감귤']
count = 3 # 입력해야 할 남은 과일의 수
while count > 0:
fruit = input('어떤 과일을 저장할까요? >>> ')
if fruit in fruits: # fruit변수에 있는 값이 fruits리스트에 포함되어있나?
print('동일한 과일이 있습니다.')
continue # 포함되었다면 다시 반복문의 처음으로 올라간다.
fruits.append(fruit) # 포함되지 않았다면 리스트에 추가한다.
count -= 1 # 횟수를 1번 줄여준다.
print('입력이 {}번 남았습니다.'.format(count))
print('5개의 과일은 {}입니다.'.format(fruits))
============실행결과===============
어떤 과일을 저장할까요? >>> 사과
동일한 과일이 있습니다.
어떤 과일을 저장할까요? >>> 딸기
입력이 2번 남았습니다.
어떤 과일을 저장할까요? >>> 사과
동일한 과일이 있습니다.
어떤 과일을 저장할까요? >>> 오렌지
입력이 1번 남았습니다.
어떤 과일을 저장할까요? >>> 포도
입력이 0번 남았습니다.
5개의 과일은 ['사과', '감귤', '딸기', '오렌지', '포도']입니다.
## 140page)
count = 0 # 5번 입력받기 위해 사용되는 변수
total = 0 # 합계
while count < 5:
n = int(input('{}번째 정수를 입력하세요>>>'.format(count + 1)))
if n <= 0: # 0과 음수는 제외하기 위해서 넣은 코드
print('0 이하의 정수는 처리할 수 없습니다!')
continue # 반복문의 처음으로 되돌아간다.
total += n # n의 값을 합계에 누적시킨다.
count += 1 # 횟수를 1 증가시킨다.
print('입력된 5개의 양수의 총 합은 {}입니다.'.format(total))
============실행결과===============
1번째 정수를 입력하세요>>>1
2번째 정수를 입력하세요>>>3
3번째 정수를 입력하세요>>>0
0 이하의 정수는 처리할 수 없습니다!
3번째 정수를 입력하세요>>>6
4번째 정수를 입력하세요>>>5
5번째 정수를 입력하세요>>>5
입력된 5개의 양수의 총 합은 20입니다.
## 참고) 리스트 내포(리스트 컴프리헨션) ##
# append 사용
num = []
for n in [1, 2, 3]:
num.append(n*2) # n에 2를 곱한 후 num 리스트에 추가
print('append 사용 :', num)
# 리스트 내포 사용
num2 = [n * 2 for n in [1, 2, 3]]
print('리스트 내포 사용 :', num2)
============실행결과===============
append 사용 : [2, 4, 6]
리스트 내포 사용 : [2, 4, 6]
## append, if 사용
num3 = []
li = [1, 2, 3, 4, 5]
for n in li:
if n % 2 == 1: # 홀수만
num3.append(n*2) # n에 2를 곱한 후 num3 리스트에 추가
print('append, if 사용 :', num3)
# 조건을 만족하는 데이터만 출력하는 리스트 내포
num4 = [n * 2 for n in li if n % 2 == 1 ]
print('조건 리스트 내포 사용 : ', num4)
============실행결과===============
append, if 사용 : [2, 6, 10]
조건 리스트 내포 사용 : [2, 6, 10]
## 내장 함수 ##
## 문자열 내장 함수 ##
# chr() : 유니코드를 문자로 변환
print(chr(48))
print(chr(49))
print(chr(65))
print(chr(66))
print(chr(97))
print(chr(98))
print('=================')
# ord() : 문자를 유니코드로 변환
print(ord('A'))
print(ord('한'))
print('-----------------')
# eval() : 문자열로 된 값을 계산
print('100 + 200')
print(eval('100 + 200'))
a = 10
print(eval('a * 5'))
print(eval('min(1, 2, 3)')) # min() : 최솟값
print('----------------------------')
# format() : 형식을 갖춘 문자열
print(format(10000, ',')) # 천단위 구분기호 넣기
print(format(10000, '_'))
============실행결과===============
0
1
A
B
a
b
=================
65
54620
-----------------
100 + 200
300
50
1
----------------------------
10,000
10_000
# 149page)
expr = input('계산식을 입력하세요 >>> ')
result = eval(expr)
print(expr + '=' + str(result)) # 문자열끼리 더하기는 연결의 결과가 나온다.
============실행결과===============
계산식을 입력하세요 >>> 1+2+3+4
1+2+3+4=10
## 숫자 내장 함수 ##
# abs() : 절대값
print(abs(10))
print(abs(-10))
print('------------------------------------------')
# divmod() : 몫과 나머지
print(divmod(10, 3)) # 결과는 튜플형식
d, m = divmod(5, 2) # (2, 1)
print(d) # 몫
print(m) # 나머지
print('----------------------------------')
# max() : 최대값
print(max(1, 10))
li = [10, 8, 4, 6, 2]
print(max(li))
# min() : 최소값
print(min(1, 10))
li = [1, 3, 2, 5, 4]
print(min(li))
print('-------------------------------------')
# pow() : 거듭제곱 (** 연산자)
print(pow(10, 2))
print(pow(10, 3))
print(pow(10, -2))
print(pow(10, -3))
print('--------------------------------------')
# round() : 반올림해주는 함수
print(round(1.5)) # 일의 자리까지
print(round(1.4))
print(round(1.55, 1)) # 소수 첫째자리까지
print('--------------------------------')
# sum() : 합계
list1 = [1, 2, 3, 4, 5]
print(sum(list1))
============실행결과===============
10
10
------------------------------------------
(3, 1)
2
1
----------------------------------
10
10
1
1
-------------------------------------
100
1000
0.01
0.001
--------------------------------------
2
1
1.6
--------------------------------
15
# 153page)
money = 10000
price = 3000 # 빵 1개의 가격
result = divmod(money, price)
print(result) # 결과는 튜플형식(인덱싱 가능)
print('빵을 {}개 사고 {}원이 남았습니다.'.format(result[0], result[1]))
============실행결과===============
(3, 1000)
빵을 3개 사고 1000원이 남았습니다.
## 시퀀스 내장 함수 ##
# enumerate()
<형식>
for 인덱스번호, 값 in enumerate(리스트명):
수행할 코드
# ex)
a = [10, 20, 30]
for i in a:
print(i)
print()
for index, value in enumerate(a):
print(index, value)
print()
for index, value in enumerate(a, start=1): # 인덱스 시작 번호를 1로 정함
print(f'{index} 번째 : {value}')
print()
for item in enumerate(a):
print(item) # 결과는 튜플형식
print('-----------------------------')
# len() : 길이(항목 수)
li = ['a', 'b', 'c', 'd']
print(len(li))
ch = 'hello'
print(len(ch))
d = {'a':'apple', 'b':'banana'}
print(len(d))
print(len(range(10))) # 0~9
print(len(range(1, 10))) # 1~9
============실행결과===============
10
20
30
0 10
1 20
2 30
1 번째 : 10
2 번째 : 20
3 번째 : 30
(0, 10)
(1, 20)
(2, 30)
-----------------------------
4
5
2
10
9
# ex) 총점과 평균 구하기
score = [70, 60, 55, 75, 95] # 학생 점수 리스트
total = 0 # 총점을 0으로 초기화
for i, v in enumerate(score, start=1):
print(f'{i}번째 학생 점수 : {v}')
total = total + v # total += v
print('총점 :', total)
avg = total / len(score) # 리스트 개수로 나누어서 평균 구함
print('평균 :', avg)
============실행결과===============
1번째 학생 점수 : 70
2번째 학생 점수 : 60
3번째 학생 점수 : 55
4번째 학생 점수 : 75
5번째 학생 점수 : 95
총점 : 355
평균 : 71.0
## sorted() : 정렬 ##
my_list = [6, 3, 1, 2, 5, 4]
sorted_list = sorted(my_list)
reverse_list = sorted(my_list, reverse=True)
print('원본 :', my_list)
print('정렬 후 (오름차순) :', reverse_list)
print('-------------------------------------')
# zip() : 튜플로 묶기
names = ['james', 'emily', 'amanda']
scores = [60, 70, 80]
for student in zip(names, scores):
print(student)
for name, score in zip(names, scores):
print('{}의 점수는 {}점입니다.'.format(name, score))
============실행결과===============
원본 : [6, 3, 1, 2, 5, 4]
정렬 후 (오름차순) : [6, 5, 4, 3, 2, 1]
-------------------------------------
('james', 60)
('emily', 70)
('amanda', 80)
james의 점수는 60점입니다.
emily의 점수는 70점입니다.
amanda의 점수는 80점입니다.
## 159page)
months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for month, day in enumerate(months):
print('{}월={}일'.format(month+1, day))
============실행결과===============
1월=31일
2월=28일
3월=31일
4월=30일
5월=31일
6월=30일
7월=31일
8월=31일
9월=30일
10월=31일
11월=30일
12월=31일
'Python > 개념정리' 카테고리의 다른 글
python_9일차 (0) | 2022.08.10 |
---|---|
python_8일차 (0) | 2022.08.10 |
python_6일차 (0) | 2022.08.10 |
python_5일차 (0) | 2022.08.10 |
python_4일차 (0) | 2022.08.10 |
Comments