파이썬 어디가 틀렸는지 알려주실 수 있나요?
학교 과제로 파이썬 작업하고 있는데 도저희 어디가 틀린건지 모르겠어요ㅠㅠ 아무리 해봐도 어떻게 해야 하는지 1도 모르겠어요ㅠㅠ 인터넷어 검색해도 안 나오고 너무 답답해서 문의 드립니다!!!
안녕하세요.
TV를 클래스로 만들어서 호출하고, 함수를 사용하는 구문이네요.
문제에 대한 오류는 TV = Television()라는 생성자를 class Television 선언 안에서 실행해서 그렇습니다.
그리고, 아래의 구문처럼 TV라는 생성자를 만들때 초기 init 값(채널,볼륨,파워)도 같이 넣어주셔야됩니다.
클래스에대해 다시 한번 공부하시는 것을 추천드립니다.
class Television:
def init(self, channel, volume, power):
self.channel = 1
self.volume = volume
self.power = power
def show(self):
print(self.channel, self.volume, self.power)
def setchannel(self, channel):
self.channel = channel
def getchannel(self):
return self.channel
def max(self):
self.volume = 100
def min(self):
self.volume = 0
def turnOn(self):
self.power = True
def turnOff(self):
self.power = False
TV = Television(1, 10, True)TV.show()
TV.setchannel(10)
TV.max()
TV.turnOn()
TV.show()
안녕하세요
제가 파이썬을 하지 않고 예전에 잠깐 재미로 만들었던 기억이나서 답변이 맞는지 모르겠으나 들여쓰기가 잘못되지 않았나 싶은 생각이 드네요..
c 나 자바에서는 소스코드의 블럭을 표시하기 위해서 중괄호{} 를 사용하는데, 파이썬은 들여쓰기로 합니다
마지막
def turnOff(self) :
self.power = False
TV = Television() --> 여기서 들여쓰기를 했다는것은 turnOff 아래에서 TV를 선언했다는 의미입니다
TV.Show() --> 여기서 Show()를 호출해도 코드블럭은 turnOff 안에있기때문에 Show() 가 선언되지 않은것으로 메세지가 나옵니다.
def turnOff(self) :
self.power = False
TV = Television() --> 여기서 들여쓰기를 안하고 def turnOff 와 같은 레벨로 코딩하면 오류가 나지 않을 것 같습니다
TV.Show()
안녕하세요
파이썬은 문법 규칙이 중요한 언어입니다.
IndentationError 오류는 들여쓰기 (Indentation) 오류입니다.
오류 내용 중에 "line 23" 이라고 나오기 때문에 23번째 라인부터 들여쓰기가 잘못되었습니다.
아래 "수정된 코드"처럼 들여쓰기를 맞춰주세요~
- 오류코드
... (생략) def turnOff(self): self.power = False TV = Television() TV.show() TV.setchannel(11) TV.max() TV.on() TV.show()- 수정된 코드
... (생략) def turnOff(self): self.power = False TV = Television() TV.show() TV.setchannel(11) TV.max() TV.on() TV.show()안녕하세요
show() 함수에서 에러가 나는 이유는
앞에 초기화를 해주지 않는데 값을 불러오려고 하기 때문입니다.
show를 하기 전에 생성자를 사용하여 값을 초기화 해주는 작업을 먼저 하는게 좋을 것 같습니다.
그리고 max, min은 파이썬 기본 함수로 제공하기 때문에 이름을 헷갈리지 않게 하려면 새로운 함수명을 사용하는게 더 좋아보입니다.