[TIL#8]Pythonベース-4
Table of Contents
1.基本文法
1.基本文法
処理
エラー発生時処理の
try:
print("나누기 전용 계산기")
nums = []
nums.append(int(input("첫번째 숫자를 입력하세요: ")))
nums.append(int(input("두번째 숫자를 입력하세요: ")))
print("{0} / {1} = {2}".format(nums[0], nums[1], nums[2]))
except ValueError:
print("에러가! 잘못된 값을 입력하셨습니다.")
except ZeroDivisionError as err: # err 출력6
print(err)
except Exception as err: # 위의 에러 외 나머지 에러 처리
print("알 수 없는 에러가 발생하였습니다.")
print(err) # 해당 에러메시지를 출력할 수도 있음.
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:
print("잘못된 값을 입력하였습니다. 한 자리 숫자로만 입력하세요.")
pythonで定義されたエラーに加えて、ユーザーは自分でエラーを定義して作成することができます.
class BigNumberError(Exception):
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)) # 여기서 raise 사용자가 정의 error 입력
print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError:
print("잘못된 값을 입력하였습니다. 한 자리 숫자로만 입력하세요.")
except BigNumberError as err:
print("Error")
print(err)
異常処理では、正常でもエラーでも値が出力されます.
class BigNumberError(Exception):
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)) # 여기서 raise 사용자가 정의 error 입력
print("{0} / {1} = {2}".format(num1, num2, int(num1 / num2)))
except ValueError:
print("잘못된 값을 입력하였습니다. 한 자리 숫자로만 입력하세요.")
except BigNumberError as err:
print("Error")
print(err)
finally:
print("계산기를 사용해 주셔서 감사합니다.")
class SoldOutError(Exception):
pass
chicken = 10
waiting = 1
while(True):
try:
print("남은 치킨: {0}".format(chicken))
order = int(input("치킨 몇 마리 주문하시겠습니까?"))
if order > chicken:
print("재료가 부족합니다.")
elif order <= 0:
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
必要な部品(自動車のタイヤ、バンパーなどをモジュールと呼ぶ).モジュールには拡張子があります.Pyim.
import theater_module
theater_module.price(3)
theater_module.price_morning(5)
theater_module.price_solider(10)
import theater_module as mv # as mv 는 theater_module을 호출 theater_module의 별명을 만들어준다고 생각하면 됨.
mv.price(3)
mv.price_morning(5)
mv.price_solider(10)
from theater_module import * # from random import * 이랑 같은거임
price(3)
price_morning(5)
price_solider(10)
from theater_module import price, price_morning # 특정 함수만 가져올수도 있다.
price(3)
price_morning(5)
from theater_module import price_solider as price # 특정 함수를 불러오는데 그 함수의 별명도 만들 수 있다.
price(10)
theater_moduel.py def price(people):
print("{0}명 가격은 {1} 원입니다.".format(people, people * 10000))
def price_morning(people):
print("{0}명 조조 할인 가격은 {1} 원입니다.".format(people, people * 6000))
def price_solider(people):
print("{0}명 군인 할인 가격은 {1} 원입니다.".format(people, people * 5000))
-パッケージモジュールセット
import travel.thailand # import 시 모듈이나 패키지만 가능 class는 안됨.
trip_to = travel.thailand.ThailandPackage()
trip_to.detail()
from travel.thailand import ThailandPackage # module, package , class 모두 호출 가능
trip_to = ThailandPackage()
trip_to.detail()
from travel import vietnam
trip_to = vietnam.VietnamPackage()
trip_to.detail ()
travel = packagethailand.py = module
class ThailandPackage:
def detail(self): # self 아무것도 받지 않고
print("[태국 패키지 3 박5일] 방콕, 파타야 여행(야시장투어) 50만원")
_all_
import travel.thailand # import 시 모듈이나 패키지만 가능 class는 안됨.
trip_to = travel.thailand.ThailandPackage()
trip_to.detail()
from travel.thailand import ThailandPackage # module, package , class 모두 호출 가능
trip_to = ThailandPackage()
trip_to.detail()
from travel import vietnam
trip_to = vietnam.VietnamPackage()
trip_to.detail ()
from travel import *
trip_to = thailand.ThailandPackage()
trip_to.detail()
__init__모듈에서 아래와 같이 모듈 공개범위 설정해야 한다.
__all__ = ["vietnam", "thailand"] # module 공개 범위 설정 가능
ダイレクトモジュールを作成し、正常に動作していることを確認する必要があります.
```thailand.py 에서```
class ThailandPackage:
def detail(self): # self 아무것도 받지 않고
print("[태국 패키지 3 박5일] 방콕, 파타야 여행(야시장투어) 50만원")
if __name__ =="__main__": # 이것은 Thailand 모듈 직접 실행을 위해서
print("Thailand 모듈을 직접 실행")
print("이 문장은 모듈을 직접 실행 할 때만 실행됩니다.")
trip_to = ThailandPackage()
trip_to.detail()
else:
print("Thailand 외부에서 모듈 호출")
from travel import *
import inspect # inspect를 활용하여 패키지, 모듈 위치 확인.
import random
print(inspect.getabsfile(random))
print(inspect.getabsfile(thailand))
複数のモジュール
input : 사용자 입력을 받는 함수
langauge = input("무슨 언어를 좋아하세요?")
print("{0} 은 아주 좋은 언어입니다.".format(langauge))
dir : 어떤 객체를 넘겨줬을대 그 객체가 어떤 변수와 함수를 갖고 있은지 표시
print(dir())
import random
print(dir(random))
# glob : 경로 내의 폴더 / 파일 목록 조회 (윈도우에서 dir)
import glob
print(glob.glob("*.py")) # 확장자기 py인 모든 파일
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, "폴더를 생성하였습니다.")
import time # 시간 외장함수
print(time.localtime())
print(time.strftime("%Y-%m-%d %H:%M:%S"))
import datetime # 날짜 출력 외장함수
print("오늘 날짜는", datetime.date.today()) # 오늘 날짜 출력하는법
today = datetime.date.today() # 오늘 날짜 저장
td = datetime.timedelta(days=100) # 100일 저장
print("우리가 만난지 100일은", today + td) # 오늘부터 100일 후
byme.py
def sign():
print("이 프로그램은 나도코딩에 의해 만들어졌습니다.")
print("유튜브 : http://youtube.com")
print("이메일: [email protected]")
실행은 아래와 같이.
import byme
byme.sign()
Reference
この問題について([TIL#8]Pythonベース-4), 我々は、より多くの情報をここで見つけました https://velog.io/@junchi211/TIL8-Python-기초-4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol