아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
기운찬타킨197
기운찬타킨19721.04.04

파이썬 어디가 틀렸는지 알려주실 수 있나요?

학교 과제로 파이썬 작업하고 있는데 도저희 어디가 틀린건지 모르겠어요ㅠㅠ 아무리 해봐도 어떻게 해야 하는지 1도 모르겠어요ㅠㅠ 인터넷어 검색해도 안 나오고 너무 답답해서 문의 드립니다!!!

55글자 더 채워주세요.
답변의 개수
4개의 답변이 있어요!
  • 안녕하세요.

    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()


  • 탈퇴한 사용자
    탈퇴한 사용자21.04.05

    안녕하세요

    파이썬은 문법 규칙이 중요한 언어입니다.

    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은 파이썬 기본 함수로 제공하기 때문에 이름을 헷갈리지 않게 하려면 새로운 함수명을 사용하는게 더 좋아보입니다.