일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 파이썬
- 제로초
- programmers
- 리트코드
- 손에 익히며 배우는 네트워크 첫걸음
- 4주 프로젝트
- 자바스크립트
- 2주 프로젝트
- python
- 렛츠기릿 자바스크립트
- LeetCode
- 리덕스
- 알고리즘
- js
- 리액트
- 타임어택
- til
- 프로그래머스
- 타입스크립트
- 회고
- 코드스테이츠
- 타입스크립트 올인원
- 백준
- codestates
- 정재남
- Async
- javascript
- SQL 고득점 Kit
- 토익
- 코어 자바스크립트
Archives
- Today
- Total
Jerry
python #3 본문
반응형
# 표준 입출력
print("Python", "Java", "Javascript", sep=" vs ")
print("Python", "Java", "Javascript", end="?") # 한 줄에 나오게 한다
print("무엇이 더 재밌을까요?")
import sys
print("Python", "Java", file=sys.stdout) # 표준 출력
print("Python", "Java", file=sys.stderr) # 표준 에러
scores = {"수학":0, "영어": 50, "코딩": 60}
for subject, score in scores.items():
# print(subject, score)
print(subject.ljust(8), str(score).rjust(4), sep=":") # 왼쪽 정렬, 오른쪽 정렬
# 은행 대기 순번표
for num in range(1, 21):
print("대기번호 : " + str(num).zfill(3))
# answer = input("아무 값이나 입력하세요 : ")
# print("입력하신 값은 " + answer + "입니다.")
# print(type(answer)) # 사용자 입력을 통해 받은 값은 str로 값을 받는다
# 다양한 출력 포맷
# 빈 자리는 빈공간으로 두고, 오른쪽 정렬을 하되, 총 10자리 공간을 확보
print("{0: >10}".format(500))
print("{0: <+5}".format(500))
print("{0: >+5}".format(-500))
print("{0: <10}".format(500))
print("------------------------")
print("{0: >10}".format(-500))
print("{0: <5}".format(-500))
print("{0: >5}".format(-500))
print("{0: <10}".format(-500))
# 왼쪽 정렬하고, 빈칸으로 _로 채움
print("{0:_<+10}".format(500))
# 3자리 마다 콤마를 찍어주기
print("{0:,}".format(1000000000))
# 3자리 마다 콤마를 찍어주기 + 부호
print("{0:+,}".format(-1000000000))
print("{0:^<+30,}".format(1000000000))
print("{0:f}".format(5/3))
print("{0:.2f}".format(5/3))
# 파일 입출력
# score_file = open("score.txt", "w", encoding="utf8") # w: write
# print("수학 : 0", file=score_file)
# print("영어 : 50", file=score_file)
# score_file.close()
# score_file = open("score.txt", "a", encoding="utf8") # a: append
# score_file.write("과학 : 80")
# score_file.write("\n코딩 : 100")
# score_file.close()
# score_file = open("score.txt", "r", encoding="utf8")
# print(score_file.read())
# score_file.close()
# score_file = open("score.txt", "r", encoding="utf8")
# print(score_file.readline()) # 한 줄만 읽고 커서는 다음 줄로
# print(score_file.readline(), end="") # 한 줄만 읽고 커서는 다음 줄로
# print(score_file.readline()) # 한 줄만 읽고 커서는 다음 줄로
# print(score_file.readline()) # 한 줄만 읽고 커서는 다음 줄로
# score_file.close()
score_file = open("score.txt", "r", encoding="utf8")
# while True:
# line = score_file.readline()
# if not line:
# break
# # print(line)
# print(line, end="")
# score_file.close()
# lines = score_file.readlines() # list 형태로 저장
# for line in lines:
# print(line, end="")
# score_file.close()
# pickle : 프로그램 상의 데이터를 파일형식으로 저장하여 데이터 활용 가능한다
# import pickle
# profile_file = open("profile.pickle", "wb") # write: 쓰기 binary: pickle 쓰기위해 바이너리 사용
# profile = {"이름":"박명수", "나이":30, "취미":["축구", "골프", "코딩"]}
# print(profile)
# pickle.dump(profile, profile_file) # profile에 있는 정보를 file에 저장
# profile_file.close()
# profile_file = open("profile.pickle", "rb")
# profile = pickle.load(profile_file) # file에 있는 정보를 profile에 불러오기
# print(profile)
# profile_file.close()
# with
# import pickle
# with open("profile.pickle", "rb") as profile_file: #profile_file 변수에 저장
# print(pickle.load(profile_file)) # load로 불러와서 출력을 해준것
# with open("study.txt", "w", encoding="utf8") as study_file:
# study_file.write("파이썬을 열심히 공부하고 있어요")
# with open("study.txt", "r", encoding="utf8") as study_file:
# print(study_file.read())
# quiz
# week = 0 # 불필요
for week in range(1, 51):
report_file = open("{0} 주차 주간보고.txt".format(week), "w", encoding="utf8")
report_file.write("- {0} 주차 주간보고-\n부서 : \n이름 : \n업무 요약 : ".format(week))
week += 1
report_file.close()
# 강사 코드
# for i in range(1, 51):
# with open(str(i) + "주차.txt", "w", encoding="utf8") as report_file:
# report_file.write("- {0} 주차 주간보고-\n부서 : \n이름 : \n업무 요약 : ")
# 클래스 : 붕어빵 틀에 비유
# 마린 : 공격 유닛, 군인. 총을 쓸 수 있음
# name = "마린"
# hp = 40
# damage = 5
# print("{} 유닛이 생성되었습니다.".format(name))
# print("체력 {0}, 공격력 {1}\n".format(hp, damage))
# # 탱크 : 공격 유닛, 군인. 포을 쓸 수 있음, 일반 모드 / 시즈 모드
# tank_name = "탱크"
# tank_hp = 150
# tank_damage = 35
# print("{} 유닛이 생성되었습니다.".format(tank_name))
# print("체력 {0}, 공격력 {1}\n".format(tank_hp, tank_damage))
# def attack(name, location, damage):
# print("{0} : {1} 방향으로 적군을 공격합니다. [공격력 {2}]".format(name, location, damage))
# attack(name, "1시", damage)
# attack(tank_name, "1시", tank_damage)
class Unit:
def __init__(self, name, hp, speed): # __init__ 생성자; 마린, 탱크 같은 갹채 호출 될 때 자동으로 호출되는 부분
self.name = name # 멤버 변수
self.hp = hp # 멤버 변수
self.speed = speed
def move(self, location):
print("[지상 유닛 이동]")
print("{0} : {1} 방향으로 이동합니다. [속도 {2}]".format(self.name, location, self.speed))
# self.damage = damage # 멤버 변수
# print("{0} 유닛이 생성 되었습니다.".format(self.name))
# print("체력 {0}, 공격력 {1}".format(self.hp, self.damage))
# marine1 = Unit("마린", 40, 5) # 클래스로 부터 만들어지는 것을 객체라 부름
# marine2 = Unit("마린", 40, 5) # 유닛 클래스의 인스턴스라고 부름
# tank1 = Unit("탱그", 150, 35)
# # 레이스 : 공중 유닛, 비행기, 클로킹
# wraith1 = Unit("레이스", 80, 5)
# print("유닛 이름 : {0}, 공격력 : {1}".format(wraith1.name, wraith1.damage))
# # 마인드 컨트롤
# wraith2 = Unit("레이스", 80, 5)
# wraith2.clocking = True # 추가로 변수를 바깥에서 만들어서 넣을 수 있다 다만, 확장된 변수는 확장한 객체에만 적용이 된다
# if wraith2.clocking == True:
# print("{0} 는 현재 클로킹 상태입니다.".format(wraith2.name))
class AttackUnit:
def __init__(self, name, hp, damage, speed):
Unit.__init__(self, name, hp) # 상속, 부모가 Unit + 다중 상속은 부모가 둘 이상
self.damage = damage
def attack(self, location):
# 위 location 인자를 받아 쓰며 name과 damage는 위에 멤버 변수를 사용
print("{0} : {1} 방향으로 적군을 공격 합니다. [공격력 {2}]".format(self.name, location, self.damage))
def damaged(self, damage):
print("{0} : {1} 데미지를 입었습니다.".format(self.name, damage))
self.hp -= damage
print("{0} : 현재 체력은 {1}입니다.".format(self.name, self.hp))
if self.hp <= 0:
print("{0} : 파괴되었습니다.".format(self.name))
# 파이어뱃 : 공격 유닛, 화염 방사기
# firebat1 = AttackUnit("파이어뱃", 50, 16)
# firebat1.attack("5시")
# 공격 2번 받는다고 가정
# firebat1.damaged(25)
# firebat1.damaged(25)
# 드랍쉽
class Flyable:
def __init__(self, flying_speed):
self.flying_speed = flying_speed
def fly(self, name, location):
print("{0} : {1} 방향으로 날아갑니다. [속도 {2}]".format(name, location, self.flying_speed))
# 공중 공격 유닛 클래스 # 다중상속
class FlyableAttackUnit(AttackUnit, Flyable):
def __init__(self, name, hp, damage, flying_speed):
AttackUnit.__init__(self, name, hp, 0, damage)
Flyable.__init__(self, flying_speed)
# 발키리
valkyrie = FlyableAttackUnit("발키리", 200, 6, 5)
valkyrie.fly(valkyrie.name, "3시")
# 건물
class BuildingUnit(Unit):
def __init__(self, name, hp, location):
# pass
Unit.__init__(self, name, hp, 0)
super().__init__(name, hp, 0)
self.location = location
supply_depot = BuildingUnit("서플라이 디폿", 500, "7시")
#quiz
class House:
# 매물 초기화
def __init__(self, location, house_type, deal_type, price, completion_year):
self.location = location
self.house_type = house_type
self.deal_type = deal_type
self.price = price
self.completion_year = completion_year
print("매물 생성자")
# 매물 정보 표시
def show_detail(self):
# print("세부 내용", end=" ")
print("{0} {1} {2} {3} {4}".format(self.location, self.house_type, self.deal_type, self.price, self.completion_year)) # format메서드 안 써도 됨
houses = []
house1 = House("강남", "아파트", "매매", "10억", "2010년")
house2 = House("마포", "오피스텔", "전세", "5억", "2007년")
house3 = House("송파", "빌라", "월세", "500/50", "2000년")
houses.append(house1)
houses.append(house2)
houses.append(house3)
print("총 {0}대의 매물이 있습니다.".format(len(houses)))
for house in houses:
house.show_detail()
# # 예외처리
# try :
# print("나누기 전용 계산기입니다.")
# num1 = int(input("첫 번째 숫자 입력"))
# num2 = int(input("두 번째 숫자 입력"))
# print("{0} / {1} = {2}".format(num1, num2, int(num3)))
# except ValueError:
# print("에러! 잘못된 값을 입력하였습니다.")
# except ZeroDivisionError as err:
# 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("잘못된 값을 입력하였습니다. 한 자리 숫자만 입력하세요.")
finally:
print("fuckyp!!")
# quiz
chicken = 10
waiting = 1
class SoldOutError(Exception):
pass
while(True):
try:
print("[남은 치킨 : {0}]".format(chicken))
order = int(input("치킨 몇 마리 주문하시겠습니까? "))
if order <= 0:
raise ValueError
elif order > chicken:
print("재료가 부족합니다.")
else:
print("[대기번호 {0}] {1} 마리 주문이 완료되었습니다.".format(waiting, order))
waiting +=1
chicken -= order
if chicken == 0:
raise SoldOutError
except ValueError:
print("잘못된 값을 입력하였습니다.")
except SoldOutError:
print("재료가 소진되어 더 이상 주문을 받지 않습니다.")
break
# 모듈 : 필요한 것들끼리 부품처럼 만드는 것, 함수 정의, 클래스 등의 파이썬 문장을 담고 있는 파일
# import theater_module
# theater_module.price(3)
# theater_module.price_morning(4)
# theater_module.price_soldier(5)
# import theater_module as mv
# mv.price(30)
# mv.price_morning(5000)
# mv.price_soldier(6)
# from theater_module import *
# price(3)
# price_soldier(4)
# price_morning(2)
# from theater_module import price_morning, price
# price(5)
# price_morning(3)
# price_soldier(11)
# 패키지: 여러 모듈들을 모아놓은 것
# 패키지 생성 및 사용
from travel import *
# trip_to = thailand.ThailandPackage()
# trip_to.detail()
# import inspect
# import random
# print(inspect.getfile(random))
# print(inspect.getfile(thailand))
#pip로 패키지 설치하기
# from bs4 import BeautifulSoup
# soup = BeautifulSoup("<p>Some<b>bad<i>HTML")
# print(soup.prettify())
# glob: 경로 내 폴더 / 파일 목록 조회
import glob
print(glob.glob("*.py"))
반응형
'etc > python' 카테고리의 다른 글
python #2 (0) | 2021.12.23 |
---|---|
[python] 기본 다지기 #1 (0) | 2021.12.22 |