Майкл Доусон - Программируем на Python 8 глава задача 2


Создайте программу, имитирующую телевизор как объект. У пользователя должна быть возможность вводить номер канала, а также увеличивать и уменьшать громкость. Программа должна следить за тем, чтобы номер
канала и уровень громкости оставались в допустимых пределах.

class TV(object):

  def __init__(self, program=0, volume=0):
    self.volume=0
    self.program=0
 
  def __str__(self):
    rep="Now volume: "+str(self.volume)+"  program: "+str(self.program)
    return rep

  def check(self,st='', numb=None):
    while  numb==None:
      try:
        numb=int(input(st))
      except:
        print('Try again')
    return numb

  def increase_volume(self, vol=-1):
    while vol<0:
      vol=self.check(st='How many? Write from 0  to 100 ' )
    self.volume+=vol
    if self.volume>100:
      self.volume=100
   
  def turndown_volume(self, vol=1):
    while vol>0:
      vol=self.check(st='How many? Write from  -100 to  0 ')
    self.volume+=vol
    if self.volume<0:
      self.volume=0
   
  def change_program(self, prog=-1):
    while prog<0 or prog>50:
      prog=self.check(st='What do you want to watch? Write from 0  to  50 ')
    self.program = prog

def main():
    television = TV()
    choice = None
    while choice != "0":
        print \
        ("""
        TV
 
        0 - Quit
        1 - Increase volume
        2 - Turn down the volume
        3 - Change program
        4 - See settings
        """)
 
        choice = input("Choice: ")
        print()

        if choice == "0":
            print("Good-bye.")

        elif choice == "1":
            television.increase_volume()
         
        elif choice == "2":
            television.turndown_volume()

        elif choice == "3":
            television.change_program()

        elif choice == "4":
            print(television)

        else:
            print("\nSorry, but", choice, "isn't a valid choice.")

main()
("\n\nPress the enter key to exit.")

Комментарии

  1. File "D:/PycharmProjects/douson_learning/tv_chapter_8.py", line 47
    tv.chan_set(chan) = choice
    ^
    SyntaxError: can't assign to function call

    ОтветитьУдалить
  2. У меня как-то так вышло:

    class Tv(object):
    """Имитация телевизора"""

    def __init__(self, channel=1, volume=0):
    """Атрибуты класса"""
    self.channel = 1
    self.volume = 0

    def change_channel(self, cur_ch=1):
    """Смена канала"""
    cur_ch = int(input('Выберите желаемый канал: '))
    if cur_ch < 0 or cur_ch > 50:
    print('Такого канала нет!')
    else:
    self.channel = cur_ch
    print('Сейчас включен', self.channel, 'канал')

    def volume_up(self, vol_up=0):
    """Добавление громкости"""
    vol_up = int(input('Сколько громкости добавить? '))
    self.volume += vol_up
    if self.volume > 100:
    self.volume = 100
    print('Текущая громкость:', self.volume)

    def volume_down(self, vol_down=0):
    """Убавление громкости"""
    vol_down = int(input('Сколько громкости убавить? '))
    self.volume -= vol_down
    if self.volume < 0:
    self.volume = 0
    print('Текущая громкость:', self.volume)

    def current_set(self):
    """Текущие настройки"""
    print('Сейчас включен', self.channel, 'канал. Уровень громкости:', self.volume)


    # Основная часть
    def main():
    television = Tv()

    choice = None
    while choice != '0':
    print(
    """
    Телевизор
    0 - выход
    1 - выбрать канал
    2 - добавить громкость
    3 - убавить громкость
    4 - текущий канал
    """
    )

    choice = input('Ваш выбор: ')
    print()

    if choice == '0':
    print('До свидания!')
    elif choice == '1':
    television.change_channel()
    elif choice == '2':
    television.volume_up()
    elif choice == '3':
    television.volume_down()
    elif choice == '4':
    television.current_set()
    else:
    print('Такого пункта нет!')


    main()

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Майкл Доусон - Программируем на Python 8 глава задача 1

Майкл Доусон - Программируем на Python 3 глава

Майкл Доусон - Программируем на Python 4 глава