Python 11

[파이썬] 스타크래프트 개발 및 실행 (class, unit, isinstance)

캐릭터는 3개: 마린(지상), 탱크(지상), 레이스(공중)class unit :유닛 생성, 이동, 공격받음- 모든 유닛에 적용class attackunit: 특정 방향으로 공격함 - 마린, 탱크에 적용   - class marine: 스팀팩(stimpack) 기능   - class tank: 시즈모드(seize_mode) 기능class flyable: 공중 이동함class flyableattack: 공중 이동+ 공격   - class wraith: 클로킹(clocking) 기능-유닛 쌓기from random import * # 난수-random으로 데미지를 입는다고 가정# 일반 유닛class unit: def __init__(self, name, hp, speed): self.name..

Python 2024.11.11

[파이썬] 모듈 Ⅲ (내장함수 input, dir & 외장함수 glob, os, time, datetime, timedelta)

내장함수( 안에 들어있어서 import 하지 않아도 됨 ) - input함수 : 사용자 입력을 받는 함수#input 사용자 입력을 받는 함수language=input("무슨 언어를 좋아하세요?")print("{0}은 아주 좋은 언어입니다.".format(language))-dir함수: 어떤 객체를 넘겨줬을 때 그 객체가 어떤 변수와 함수를 가지고 있는지 표시해줌.1)print(dir())#dir 어떤 객체를 넘겨줬을 때 그 객체가 어떤 변수와 함수를 가지고 있는지 표시print(dir())import random #외장 함수print(dir())import pickleprint(dir()): random 함수 추가/ pickl, random 함수 추가되어 터미널에 뜸. 2)print(dir(random)..

Python 2024.11.11

[파이썬] 모듈 Ⅱ (모듈 위치확인-inspect& getfile, 패키지 다운로드 및 활용- pypi, pip install )

모듈 위치 확인하기- import inspect, inspect.getfile#이 파일이 어느 위치에 있는지 확인하려면import inspectimport randomprint(inspect.getfile(random))print(inspect.getfile(thailand))1. inspect를 import한다. 그리고 랜덤을 import한 후에2. print(inspect.getfile(random))3. 같은 경로에 없어도 사용가능할 수 있음!패키지 다운받기(pypi) - 워낙 개발된 패키지가 많기 때문에 적절하게 고르는 것이 포인트 1. 파이썬 패키지 다운로드 하는 방법:  복사해서 terminal에 붙이고 enter하면 다운로드 받아짐.2. quick start 밑 세 줄 정도 코딩 복사 붙여넣..

Python 2024.11.10

[파이썬] 모듈 ( import, from import , package, detail함수, __all__,__name__)

모듈: 필요한 것들을 부품처럼 잘 만들어진 파일들 불러오겠다.(확장명 .py)- 모듈 파일(theater_module.py)#일반 가격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))  -모듈 파일 불러오기1. 파일에서 불러오기 import 파일명2. 파일에서 불러오는데 별명으로..

Python 2024.11.10

[파이썬] 예외처리(try, except, ValueError, ZeroDivision, raise, __str__, break, finally)

Try 와 except로 예외처리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: print(err)  value error :값이 잘못 입력 됐을 때zerodivision error: 0으로 나누는 문제가 발생했을 때Terminal>>나누기 전용 계산기입니다. 첫 번째 숫자를 입력하세요:3 두 번째 숫자를 입력..

Python 2024.11.10

[파이썬]클래스class Ⅱ (상속, 다중상속, 메소드오버라이딩)

상속 (Inheritance): 유닛 사이에서 반복되는 부분이 있을 때class unit: def __init__(self,name,hp): self.name=name self.hp=hp class attackunit(unit): #unit에서 상속받아 attackunit 만들겠다. def __init__(self,name,hp,damage): unit.__init__(self,name,hp) #유닛에서 이닛(self,name,hp)를 상속 받겠다. self.damage=damage #추가된 데미지1. class unit과 class attackunit에서 self.name=name, self.hp=hp 멤버변수가 똑같음.그래서..

Python 2024.11.09

[파이썬] 클래스class (__init__,멤버변수, 메소드)

-클래스를 사용하지 않고 유닛을 하나씩 만들 때: 정보값을 유닛마다 하나씩 만들어야해서 불편함.#마린 : 공격 유닛, 군인, 총을 쏠 수 있음.name = "마린" #유닛의 이름hp=40 #유닛의 체력damage=5 #유닛의 공격력print("{0} 유닛이 생성되었습니다".format(name))print("체력 {0}, 공격력{1}\n".format(hp,damage))# 탱크: 공격 유닛, 탱크, 포를 쓸 수 있음. 일반/시즈(탱크 고정) 모드tank_name ="탱크"tank_hp =150tank_damage =35print("{0} 유닛이 생성되었습니다".format(tank_name))print("체력 {0}, 공격력{1}\n".format(tank_hp,tank_damage))tank2_nam..

Python 2024.11.09

[파이썬] 파일 입출력(write, read, pickle, with)

파일 내용 입력-print 활용 (줄바꿈 알아서 됨)score_file=open("score.txt","w",encoding="utf8") #w는 쓰기 위함이라는 뜻, utf8정의 안하면 한글정보 오류생기는 경우 생김print("수학:0",file=score_file)print("영어:50",file=score_file)score_file.close() #파일 닫아주는 것까지 해야함1. 스코어 파일 변수를 열겠다 open("score.txt","w",encoding="utf8") -> score.txt 라는 파일명에, 쓸것이고, 인코딩하겠다.2.  값을 쓸 거고 file은 처음 정의한 스코어 파일이다. print("값",file= score_file)3.  값을 다 썼으니 스코어 파일을 닫아주겠다. sc..

Python 2024.11.09

[파이썬] 입력, 출력 포맷(sep, end, items, ljust,rjust,zfill, input)

입력 포맷print("python","java","javascript", sep=",")print("python","java","javascript", sep=" vs ")print("python","java",sep=",",end="?")print("무엇이 더 재미있을까요?") Terminal>>python,java,javascript python vs java vs javascript python,java?무엇이 더 재미있을까요?1. sep 는 seperate , 사이에 띄워진 부분에 무엇을 넣겠다는 것.2. end 는 끝에 무엇을 넣겠다는 의미로 밑에 있는 print 출력문과 붙어서 나옴.정형화된 포맷으로 출력 나타내기- 글자 : 숫자 정렬import sysprint("python","java",f..

Python 2024.11.08