Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 19, 2016 19:56:24

Samscara
Зарегистрирован: 2016-02-14
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с кодом

Привет, ребята!
Изучаю питон с книжкой Доусона, только только подкрадываюсь к теме ООП, имеется такая задача: создать программу, имитирующую телевизор как объект, чтоб можно было менять каналы и громкость.
Вот, собственно, мой код:

class TV(object):
    def __init__(self, name):
        self.name = name
        print("Вот ваш новый телевизор,", self.name, " в нем вы можете переключать каналы и менять уровень громкости")
        
    def volume(self):
        gr = int(input("Введите уровень громкости (1 - 100): "))
        if 0 >= gr >= 101:
            print("Это недопустимое значение")
        print(gr)
    def channel(self):
        ch = int(input("Выберите канал от 1 до 100: "))
        if 0 >= ch >= 101:
            print("Это недопустимое значение")
        print(ch)
    def display(self):
        print("Ваш телевизор называется", self.name, "Вы смотрите канал ", self.channel, "на громкости ", self.volume)
        
def main():
    TV_name = input("Как называется телевизор?")
    telly = TV(TV_name)
    choice = None
    while choice != 0:
        print \
        ("""
        Телевизор
        0 - Выключить телевизор
        1 - Переключить канал
        2 - Изменить уровень громкости
        3 - Посмотреть информацию
        """
         )
        choice = input("Введите пункт меню")
        if choice == "0":
            print("Пока!")
        elif choice == "1":
            telly.channel()
        elif choice == "2":
            telly.volume()
        elif choice == "3":
            telly.display()
        else:
            print("такого пункта нет")
main()
input("чтобы выйти, нажмите любую клавишу")

Все работает хорошо, кроме одного, когда я выбираю пункт 3 в меню, то громкость и номер канала отображаются некорректно, вот так:
Ваш телевизор называется sony Вы смотрите канал <bound method TV.channel of <__main__.TV object at 0x033F2330>> на громкости <bound method TV.volume of <__main__.TV object at 0x033F2330>>

Помогите, как от этого избавиться?

Офлайн

#2 Июнь 19, 2016 20:17:22

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2789
Репутация: +  185  -
Профиль   Отправить e-mail  

Помогите с кодом

class TV(object):
    def __init__(self, name):
        self.name = name
        self._channel = self._volume = None
        print("Вот ваш новый телевизор,", self.name, " в нем вы можете переключать каналы и менять уровень громкости")
        
    def volume(self):
        gr = int(input("Введите уровень громкости (1 - 100): "))
        if 0 >= gr >= 101:
            print("Это недопустимое значение")
        print(gr)
        self._volume = gr
    def channel(self):
        ch = int(input("Выберите канал от 1 до 100: "))
        if 0 >= ch >= 101:
            print("Это недопустимое значение")
        print(ch)
        self._channel = ch
    def display(self):
        print("Ваш телевизор называется", self.name, "Вы смотрите канал ", self._channel, "на громкости ", self._volume)



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Офлайн

#3 Июнь 20, 2016 15:56:29

Samscara
Зарегистрирован: 2016-02-14
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с кодом

Rodegast
Спасибо!

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version