무료
다른 수강생들이 자주 물어보는 질문이 궁금하신가요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
marine(attackUnit)
class marine(AttackUnit): def__init__(self): ★ AttackUnit.__init__(self,"마린",40,1,5) ●★이 부분에서 self만 넣어줬는데 ●이 부분에서 마린과 40 1 5를 넣을 수 있는 이유는 무엇인가요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
print(glob.glob("*.py")) 결과로 아무 것도 출력 안 되는 이유가 궁금합니다.
실행 결과에 빈 리스트만 뜨는데 이유가 뭔지 알고 싶습니다.혹시 glob.glob() 함수는 현재 디렉토리(PYTHONWORKSPACE) 바로 안에 있는 (depth가 1인) 파일만 표시해주는 건가요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
왜 Wraith 클래스에서 부모 클래스 호출할 때 왜 self가 안 들어가나요?
# 공중 공격 유닛 클래스 (다중 상속 받음) class FlyableAttackUnit(AttackUnit, Flyable): def __init__(self, name, hp, damage, flying_speed): AttackUnit.__init__(self, name, hp, 0, damage) # 지상 speed 0 Flyable.__init__(self, flying_speed) def move(self, location): # move 함수 재정의 (오버라이딩) print("[공중 유닛 이동]") self.fly(self.name, location) # 레이스 class Wraith(FlyableAttackUnit): def __init__(self): FlyableAttackUnit.__init__("레이스", 80, 20, 5) self.clocked = False # 클로킹 모드 (해제 상태) def clocking(self): # 클로킹 모드 -> 모드 해제 if self.clocked == True: print("{0}: 클로킹 모드 해제합니다.".format(self.name)) self.clocked = False # 클로킹 모드 해제 -> 모드 설정 else: print("{0}: 클로킹 모드 설정합니다.".format(self.name)) self.clocked = True FlyableAttackUnit 클래스나 다른 클래스에서는 class FlyableAttackUnit(AttackUnit, Flyable): def __init__(self, name, hp, damage, flying_speed): AttackUnit.__init__(self, name, hp, 0, damage) # 지상 speed 0 Flyable.__init__(self, flying_speed)이렇게 부모 클래스 생성자를 호출(?)할 때 꼬박꼬박 self를 넣어주는데 왜 Wraith 클래스만class Wraith(FlyableAttackUnit): def __init__(self): FlyableAttackUnit.__init__("레이스", 80, 20, 5)이렇게 부모 클래스 생성자를 호출(?)하면서 왜 파라미터로 self를 넣어주지 않는지 궁금합니다.
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
파이썬 설치 과정
파이썬을 설치하는데 설치 경로 줄이려고 customize installation에 들어가서 python숫자 를 제외한 나머지를 지우라고 하셨는데 지우면 설치에서 계속 오류가 뜹니다ㅜㅜ 그래서 안건들고 설치 해봤는데 그러면 설치가 돼요ㅜ설치된 상태에서 수업 계속 진행 하다가 hello world에서 python interpreter클릭하고 맨 위에 python를 클릭하라고 하셨는데 저는 python이 안뜹니다ㅜㅜpython is not installed라고 떠요
- 해결됨파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
가변인자 print() 있고 없고의 차이
def pro(name, age, *language): print("이름 : {0}\t나이 : {1}\t".format(name, age), end=" ") for lang in language: print(lang, end=" ") print() pro("박보영", 30, "", "일본어")def pro(name, age, *language): print("이름 : {0}\t나이 : {1}\t".format(name, age), end=" ") for lang in language: print(lang, end=" ") pro("박보영", 30, "한국어", "일본어")이 두 개의 코딩의 차이는 line 5에 print()가 있고 없고의 차이인데, 제가 실행 시켰을때는 결과 값이 같더라고요. 근데 나도코딩님의 강의 는 첫번째 처럼 print()를 포함시키던데, 굳이 포함시켜야 하나요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
__str__ 부분은 없어도 똑같이 구동이 되는데 필요성에 대해 알 수 있을까요?
이거랑 바로 밑에 return 도 왜 쓰는지 잘 모르겠어요 ㅠㅠ
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
다양한 출력포맷에서 질문입니다.
"{0:^<+30,}"에서 '^<+30,'과 같이 입력하는 순서가 정해진 것이라고 이해하면 될까요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
퀴즈 8 리스트 질문입니다.
houses = [house1, house2, house3] house1 = House("강남", "아파트", "매매", "10억", "2010년") house2 = House("마포", "오피스텔", "전세", "5억", "2007년") house3 = House("송파", "빌라", "월세", "500/50", "2000년") 이렇게는 왜 안되는걸까요? [] 비워놓고 append로 해야만 프린트되네요...
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
퀴즈5에서 질문있습니다!
1. 반복문 for 사용시 cnt가 아닌 i를 넣는 이유를 알 수 있을까요?사람수가 1번째 2번째 이런식으로 증가하면서 for cnt in .... 및 .format(cnt, time) 이라고 작성해야한다고 생각했는데 출력이 다르게 나오네요... 랜덤함수 사용 시 from random import* 를 적고 시작하는데 이 밑에 있는 모든 함수에 랜덤이 적용되는게 아니라 시간에만 적용되는 원리를 알 수 있을까요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
pip install - beautifulsoup4 인스톨 과정의 문제
설명해주신대로 beautifulsoup4를 인스톨했습니다. 그 후 web 페이지에 있는 예제대로 아래와 같이 실행하려고 했습니다.from bs4 import BeautifulSoup soup = BeautifulSoup("<p>Some<b>bad<i>HTML") print(soup.prettify()) 그랬더니 bs4 라는 모듈을 찾을 수 없다고 나옵니다. pip 에 bs4 라는 모듈이 있는지 찾아보았더니 2016년에 게시된 것이 있고 dummy 라고 설명이 되어 있습니다. 이 문제를 어떻게 해결할 수 있을까요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
house.append() 에서 반복문 (퀴즈8)
안녕하세요. 해당 코드에서 append를 반복적으로 사용하여 생성된 값들을 리스트에 추가해주셨는데, 이를 loop 문을 사용하여 자동으로 업데이트 되게 하는 방법은 없을지 궁금합니다.
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
if의 위치
치킨이 0마리가 되었을 경우 SoldOutError를 발생시키는 구문이 else 안에 위치해도 답은 똑같이 나옵니다. 제가 생각하기에도 else 안에서 남은 chicken의 수를 계산하고 이때에 chicken이 0이 되면 오류를 발생시켜야 할 것 같은데, 왜 if chicken == 0을 else와 같은 선상에 위치 시켰는지 알 수 있을까요? [제 코드][수업 코드]
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
코드 오류
from random import * # 일반 유닛 class Unit: def __init__(self, name, hp, speed): self.name = name self.hp = hp self.speed = speed print("{0} 유닛이 생성되었습니다.".format(name)) def move(self, location): print("{0} : {1} 방향으로 이동합니다. [속도 {2}]"\ .format(self.name, location, self.speed)) 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)) # 공격 유닛 class AttackUnit(Unit): def __init__(self, name, hp, speed, damage): Unit.__init__(self, name, hp, speed) self.damage = damage def attack(self, location): print("{0} : {1} 방향으로 적군을 공격합니다. [공격력 {2}]"\ .format(self.name, location, self.damage)) # 마린 class Marine(AttackUnit): def __init__(self): AttackUnit.__init__(self, "마린", 40, 1, 5) # 스팀팩 : 일정 시간 동안 이동 및 공격 속도를 증가, 체력 10 감소 def stimpack(self): if self.hp > 10: self.hp -= 10 print("{0} : 스팀팩을 사용합니다. (HP 10 감소)".format(self.name)) else: print("{0} : 체력이 부족하여 스팀팩을 사용하지 않습니다.".format(self.name)) # 탱크 class Tank(AttackUnit): # 시즈모드 : 탱크를 지상에 고정시켜, 더 높은 파워로 공격 가능. 이동 불가. seize_developed = False # 시즈모드 개발여부 def __init__(self): AttackUnit.__init__(self, "탱크", 150, 1, 35) self.seize_mode = False def set_seize_mode(self): if Tank.seize_developed == False: return # 현재 시즈모드가 아닐 때 -> 시즈모드 if self.seize_mode == False: print("{0} : 시즈모드로 전환합니다.".format(self.name)) self.damage *= 2 self.seize_mode = True # 현재 시즈모드일 때 -> 시즈모드 해제 else: print("{0} : 시즈모드로 해제합니다.".format(self.name)) self.damage /= 2 self.seize_mode = False # 날 수 있는 기능을 가진 클래스 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) # 지상 speed 0 Flyable.__init__(self, flying_speed) def move(self, location): self.fly(self.name, location) # 레이스 class Wraith(FlyableAttackUnit): def __init__(self): FlyableAttackUnit.__init__("레이스", 80, 20, 5) self.clocked = False # 클로킹 모드 (해제 상태) def clocking(self): if self.clocked == True: print("{0} : 클로킹 모드 해제합니다.".format(self.name)) self.clocked = False else: print("{0} : 클로킹 모드 설정합니다.".format(self.name)) self.clocked = True def game_start(): print("[알림] 새로운 게임을 시작합니다.") def game_over(): print("Player : gg") print("[Player] 님이 게임에서 퇴장하셨습니다.") # 게임 시작 game_start() # 마린 3기 생성 m1 = Marine() m2 = Marine() m3 = Marine() # 탱크 2기 생성 t1 = Tank() t2 = Tank() # 레이스 1기 생성 w1 = Wraith() # 유닛 일괄 관리 attack_units = [] attack_units.append(m1) attack_units.append(m2) attack_units.append(m3) attack_units.append(t1) attack_units.append(t2) attack_units.append(w1) # 전군 이동 for unit in attack_units: unit.move("1시") # 탱크 시즈모드 개발 Tank.seize_developed = True print("[알림] 탱크 시즈 모드 개발이 완료되었습니다.") # 공격 모드 준비 (마린 : 스팀팩, 탱크 : 시즈모드, 레이스 : 클로킹) for unit in attack_units: if isinstance(unit, Marine): # isinstance() -> 만들어진 객체가 어떤 클래스의 instance인지 확인하는 것 unit.stimpack() elif isinstance(unit, Tank): unit.set_seize_mode() elif isinstance(unit, Wraith): unit.clocking() # 전군 공격 for unit in attack_units: unit.attack("1시") # 전군 피해 for unit in attack_units: unit.damaged(randint(5, 21)) # 게임 종료 game_over()이런식으로 오류가 뜨는데 뭐가 잘못된 것인지 모르겠습니다. 1개의 요소가 부족하다고 나오는데 저는 4가지 다 작성했습니다...
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
return과 print
return을 되도록이면 꼭 써주는 게 좋다고 질문 댓글에서 본 것 같은데 print를 쓰는 경우에는 return을 사용하지 않아도 되는 것인가요?둘 중에 하나만 작성하면 되는걸까요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
return
withdraw_night 함수에서 return 값을 commission과 balance - money - commision 두 가지로 줬는데 그러면 이 함수에서는 commission과 balance - money - commission 이 두 가지를 항상 같이 반환해야 하는 것인가요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
SyntaxError: invalid syntax
print(5)라고만 입력해도 SyntaxError: invalid syntax 이라고 떠요
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
저는 이렇게 풀었습니다.
import pickle for i in range(1, 51): breef_files = open(str(i) + "주차.pickle", "wb") breef = "- "+ str(i) +"주차 주간 보고 -\n부서 : \n이름 : \n업무 요약" # print(breef) pickle.dump(breef, breef_files) breef_files.close() for i in range(1, 51): breef_files = open(str(i) + "주차.pickle", "rb") breef = pickle.load(breef_files) print(breef) breef_files.close()?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
패키지 강의에서 오류가 납니다.
똑같이 했는데 실행이 안 되네요 ㅠㅠㅠㅠAttributeError: module 'travel.thailand' has no attribute 'ThailandPackage'PS C:\Users\jungminjee\Desktop\python workspace> & C:/Python/python.exe "c:/Users/jungminjee/Desktop/python workspace/practice.py"Traceback (most recent call last): File "c:\Users\jungminjee\Desktop\python workspace\practice.py", line 1132, in <module> from travel.thailand import ThailandPackageImportError: cannot import name 'ThailandPackage' from 'travel.thailand' (c:\Users\jungminjee\Desktop\python workspace\travel\thailand.py)PS C:\Users\jungminjee\Desktop\python workspace>
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
튜플 강의
튜플 강의에서 2분 24초 쯤에(name, age, hobby) = ("김종국", 20, "코딩")이라고 작성 후 print(name, age, hobby)라고 출력하셨는데name, age, hobby = "김종국", 20, "코딩"이렇게 작성 후 print로 출력해도 똑같은 값이 나옵니다. 괄호는 꼭 작성해야 하는 것인가요?
- 미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
모듈직접 실행에서 질문
class ThailandPackage: def detail(self): print("[태국 패키지 3박 5일] 방콕, 파타야 여행 (야시장 투어) 50만원") if __name__ == "__main__": #만약 name이 main이면 print("Thailand 모듈을 직접 실행") print("이 문장은 모듈을 직접 실행할 때만 실행돼요") trip_to = ThailandPackage() trip_to.detail() #만약 파일을 직접 갖다가 쓸 때는 진행된다. else: print("Thailand 외부에서 모듈 호출")이 부분에서 if 문을 보시면 "__main__"이랑 같을 때 실행되도록 하였는데 저 if문이 정확히 의미하는 바가 무엇인지 알고 싶습니다."__main__" 뜻이 무엇인지"__name__"의 뜻이 무엇인지