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
- 따라하며 배우는 노드 리액트 기본 강의
- intellij
- vs code 내 node
- ReactDOM.render is no longer supported in React 18. Use createRoot instead
- 자바스크립트
- 웹 게임을 만들며 배우는 리액트
- Python
- 모두의 파이썬
- Do it 자바스크립트 + 제이쿼리 입문
- props
- intllij 내 Bean을 찾지 못해서 발생하는 오류
- 거북이 대포 게임
- spring-boot
- node.js 설치
- DB Browser
- 타자 게임 만들기
- You are importing createRoot from "react-dom" which is not supported. You should instead import it from "react-dom/client"
- googleColaboratory
- 인프런
- react오류
- react
- Spring-Framework
- 노드에 리액트 추가하기
- 계산맞추기 게임
- node.js로 로그인하기
- 모던자바스크립트
- Concurrently
- JS 개념
- 리액트
- Colaboratory 글자 깨짐
Archives
- Today
- Total
프로그래밍 삽질 중
[유투브]나도코딩 : 파이썬 코딩 무료 강의(기초편) 4 본문
※ 강의를 선택한 이유 : 파이썬에 대해 기초부터 알려주는 강의 중 평가가 좋아서
※ 학습 중간중간에 예제(문제풀의)도 같이 있는데, 예시가 이해하기 쉬웠음
※ 6/10 현재 6시간 강의 다 들음, 웹 크롤링 관련 강좌 듣는 중
※ 순서가 뒤죽박죽이므로, 반드시 유투브 강의를 참고하길 바람
※ https://www.youtube.com/watch?v=kWiCuklohdY&t=14455s (참고 출처)
※ 모든 코드의 저작권은 나도코딩님에게 있으며, 문제가 될 경우 삭제하겠습니다
[practice4.py]
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
#에러상황 -> 예외처리
print("나누기 전용 계산기입니다.")
num1 = int(input("첫 번째 숫자를 입력하세요 : "))
num2 = int(input("두 번째 숫자를 입력하세요 : "))
print("{0} / {1} = {2}".format(num1, num2, int(num1/num2)))
#숫자가 아닌 문자열을 넣을 때 오류 발생 -> 예외처리 하도록 함
try:
print("나누기 전용 계산기입니다.")
num1 = int(input("첫 번째 숫자를 입력하세요 : "))
num2 = int(input("두 번째 숫자를 입력하세요 : "))
print("{0} / {1} = {2}".format(num1, num2, int(num1/num2)))
except ValueError:
print("에러! 잘못된 값을 입력하였습니다.")
except ZeroDivisionError as err: #0으로 나눌 때 예외
print(err) #division by zero
#리스트 만들기
try:
print("나누기 전용 계산기입니다.")
nums = []
nums.append(int(input("첫 번째 숫자를 입력하세요 : ")))
nums.append(int(input("두 번째 숫자를 입력하세요 : ")))
nums.append(int(nums[0] / nums[1]))
print("{0} / {1} = {2}".format(nums[0], nums[1], nums[2]))
except ValueError:
print("에러! 잘못된 값을 입력하였습니다.")
except ZeroDivisionError as err: #0으로 나눌 때 예외
print(err) #division by zero
#리스트 만들기 중 nums.append(int(nums[0] / nums[1])) 빠진 경우
try:
print("나누기 전용 계산기입니다.")
nums = []
nums.append(int(input("첫 번째 숫자를 입력하세요 : ")))
nums.append(int(input("두 번째 숫자를 입력하세요 : ")))
#nums.append(int(nums[0] / nums[1]))
#list index out of rang로 오류 표시
print("{0} / {1} = {2}".format(nums[0], nums[1], nums[2]))
except ValueError:
print("에러! 잘못된 값을 입력하였습니다.")
except ZeroDivisionError as err: #0으로 나눌 때 예외
print(err) #division by zero
#해결법(나머지 모든 에러)
except Exception as err: #Exception as err 에러 표시
print("알 수 없는 에러가 발생하였습니다.")
#에러 발생시키기
try:
print("한 자리 숫자 나누기 전용 계산기입니다.")
num1 = int(input("첫 번째 숫자를 입력하세요 : "))
num2 = int(input("두 번째 숫자를 입력하세요 : "))
if num1 >= 10 or num2 >= 10:
raise ValueError
print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError: #10이상 표시할 때 발생하는 에러
print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요")
#사용자 정의 예외 처리
class BigNumberError(Exception):
#pass
def __init__(self, msg):
self.msg = msg
def __str__(self):
return self.msg
try:
print("한 자리 숫자 나누기 전용 계산기입니다.")
num1 = int(input("첫 번째 숫자를 입력하세요 : "))
num2 = int(input("두 번째 숫자를 입력하세요 : "))
if num1 >= 10 or num2 >= 10:
raise BigNumberError("입력값 : {0}, {1}".format(num1, num2))
print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError: #10이상 표시할 때 발생하는 에러
print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요")
except BigNumberError as err:
print("에러가 발생하였습니다. 한 자리 숫자만 입력하세요2")
print(err)
#finally : 예외 처리 구문 중 정상적이건, 오류가 나건 무조건 실행
class BigNumberError(Exception):
#pass
def __init__(self, msg):
self.msg = msg
def __str__(self):
return self.msg
try:
print("한 자리 숫자 나누기 전용 계산기입니다.")
num1 = int(input("첫 번째 숫자를 입력하세요 : "))
num2 = int(input("두 번째 숫자를 입력하세요 : "))
if num1 >= 10 or num2 >= 10:
raise BigNumberError("입력값 : {0}, {1}".format(num1, num2))
print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError: #10이상 표시할 때 발생하는 에러
print("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요")
except BigNumberError as err:
print("에러가 발생하였습니다. 한 자리 숫자만 입력하세요2")
print(err)
finally:
print("계산기를 이용해 주셔서 감사합니다.")
#퀴즈
#자동 주문 시스템 제작
#조건 1 : 1도가 작거나 숫자가 아닌 입력값이 들어올 때 ValueError로 처리
#출력 메시지 : "잘못된 값을 입력하였습니다"
#조건 2 : 대기 손님이 주문할 수 있는 총 치킨량은 10마리로 한정
#치킨 소진 시 사용자 정의 에러[SoldOutError]를 발생시키고 프로그램 종료
#출력 메시지 : "재고가 소진되어 더 이상 주문을 받지 않습니다."
#[코드] #기존 코드는 -1 입력시 chicken 값 증가됨
class SoldOutError(Exception): #조건 2
pass
chicken = 10
waiting = 1 #홀 안에 현재 만석. 대기번호 1번부터 시작
while(True):
try :
print("[남은 치킨 : {0}]".format(chicken))
order = int(input("치킨 몇 마리 주문하시겠습니까?"))
if order > chicken: #남은 치킨보다 주문량이 많을 때
print("재료가 부족합니다.")
elif order <= 0: #조건 1 해결법
raise ValueError
else:
print("[대기번호 {0}] {1} 마리 주문이 완료 되었습니다."\
.format(waiting, order))
waiting += 1
chicken -= order
if chicken == 0:
raise SoldOutError
except ValueError:
print("잘못된 값을 입력하였습니다.")
except SoldOutError:
print("재고가 소진되어 더 이상 주문을 받지 않습니다.")
break #while문 탈출
|
cs |
<module>
[theather_module.py]
1
2
3
4
5
6
7
8
9
10
11
12
13
|
# 일반 가격
def price(people):
print("{0}명 가격은 {1}원 입니다.".format(people, people*10000))
#조조할인 가격
def price_morning(people):
print("{0}명 조조 할인 가격은 {1}원 입니다.".format(people, people*6000))
#군인 할인 가격
def price_soldier(people):
print("{0}명 군인 할인 가격은 {1}원 입니다.".format(people, people*4000))
|
cs |
[module_test.py]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import theather_module #폴더 내에 있으면 인식x
theather_module.price(3) #3명이서 영화를 보러 갔을 때 가격
theather_module.price_morning(4) #4명이서 조조 할인 영화를 보러 갔을 때
theather_module.price_morning(4)
theather_module.price_soldier(5)
import theather_module as mv
mv.price(3)
mv.price_morning(4)
mv.price_soldier(5)
from theather_module import *
price(3)
price_morning(4)
price_soldier(5)
from theather_module import price, price_morning
price(5)
price_morning(6)
#price_soldier(7) -> 쓸 수 없음
from theather_module import price_soldier
|
cs |
<package> : Thailand.py, Vietnam.py, __init__.py 셋 다 travel 폴더에 존재
[Thailand.py]
1
2
3
4
5
6
7
8
9
10
11
12
|
#패키지 - 모듈을 모아놓음
class ThailandPackage:
def detail(self):
print(["[태국 패키지 4박5일] 방콕, 파타야 여행(야시장 투어) 50만원"])
if __name__ == "__main__":
print("Thailand 모듈을 직접 실행")
print("이 문장은 모듈을 직접 실행할 때만 실행돼요")
trip_to = ThailandPackage()
trip_to.detail()
else:
print("Thailand 외부에서 모듈 호출")
|
cs |
[Vietnam.py]
1
2
3
4
|
#패키지 - 모듈을 모아놓음
class VietnamPackage:
def detail(self):
print(["[베트남 패키지 3박5일] 다낭 효도 여행(야시장 투어) 60만원"])
|
cs |
[__init__.py]
1
|
__all__ = ["Vietnam", "Thailand"]
|
cs |
[package_test.py]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
from travel import Thailand
import travel.Thailand
trip_to = travel.Thailand.ThailandPackage()
trip_to.detail()
from travel.Thailand import ThailandPackage
trip_to = ThailandPackage()
trip_to.detail()
from travel import Vietnam
trip_to = Vietnam.VietnamPackage()
trip_to.detail()
from travel import * //travel 내 전체 파일 불러옴
# trip_to = Vietnam.VietnamPackage()
trip_to = Thailand.ThailandPackage()
trip_to.detail()
import inspect
import random
print(inspect.getfile(random))
print(inspect.getfile(Thailand))
|
cs |
[practice5.py]
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
from bs4 import BeautifulSoup
soup = BeautifulSoup("<p>Some<b>bad<i>HTML")
print(soup.prettify())
#내장함수
#input : 사용자의 입력을 받는 함수
language = input("무슨 언어를 좋아하세요?")
print("{0}은 아주 좋은 언어입니다!.".format(language))
#dir : 어떤 객체를 넘겨줬을 때 그 객체가 어떤 변수와 함수를 가지고 있는지 표시
print(dir())
import random #외장함수
print(dir())
import pickle
print(dir())
print(dir(random))
lst = [1, 2, 3]
print(dir(list))
name = "Jim"
print(dir(name))
#외장함수
#glob : 경로 내의 폴더 / 파일 목록 조회(윈도우 dir)
import glob
print(glob.glob("*.py")) #확장자가 py인 모든 파일
#os : 운영체제에서 제공하는 기본 기능
import os
print(os.getcwd()) #현재 디렉토리
folder = "sample_dir"
if os.path.exists(folder):
print("이미 존재하는 폴더입니다.")
os.rmdir(folder) #폴더 삭제
print(folder, "폴더를 삭제하였습니다.")
else:
os.makedirs(folder) #폴더 생성
print(folder, "폴더를 생성하였습니다.")
print(os.listdir())
#time : 시간 관련 함수
import time
print(time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S")) #2021-06-10 17:45:23
import datetime
print("오늘 날짜는 ", datetime.date.today()) #오늘 날짜는 2021-06-10
#timedelta : 두 날짜 사이의 간격
today = datetime.date.today() #오늘 날짜 저장
td = datetime.timedelta(days=100) #100일 저장
print("우리가 만난 지 100일은", today+td) #우리가 만난 지 100일은 2021-09-18
#퀴즈
#프로젝트 내에 나만의 시그니처를 남기는 모듈을 만드시오
#조건 : 모든 파일명은 byme.py로 작성
#(모듈 사용 예제)
import byme
byme.sign()
#(출력 예제)
#이 프로그램은 나도코딩에 의해 만들어졌습니다
#유투브 : http://youtube.com
#이메일 : nadocoding@gmail.com
|
cs |
[byme.py]
1
2
3
4
|
def sign():
print("이 프로그램은 나도코딩에 의해 만들어졌습니다")
print("유투브 : http://youtube.com")
print("이메일 : nadocoding@gmail.com")
|
cs |
'과거 프로그래밍 자료들 > python' 카테고리의 다른 글
모두의 파이썬 - Day 15 타자 게임 만들기 (2) | 2022.09.13 |
---|---|
모두의 파이썬 - Day 14 계산 맞히기 게임 만들기 (0) | 2022.09.13 |
[유투브]나도코딩 : 파이썬 코딩 무료 강의(기초편) 3 (0) | 2021.06.09 |
[유투브]나도코딩 : 파이썬 코딩 무료 강의(기초편) 2 (2) | 2021.06.09 |
[유투브]나도코딩 : 파이썬 코딩 무료 강의(기초편) 1 (0) | 2021.06.09 |