基本广播节目输入法

2024-09-29 22:22:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经做了好几个小时想知道该怎么办。我似乎不知道如何处理用户输入,以便激活实例变量并返回一个站。你知道吗

class Radio:

    def __init__(self):
        self.stations = ["STATIC", "97.2", "99.6", "101.7", "105.3", "108.5"]
        self.station_index = 0

    def seekNext(self):
        self.station_index = (self.station_index + 1) % len(self.stations)
        return self.station_index

    def longPressPreset1(self):
        self.progamStation1 = self.stations[self.station_index]

    def longPressPreset2(self):
        self.programStation2 = self.stations[self.station_index]

    def longPressPreset3(self):
        self.programStation3 = self.stations[self.station_index]

    def shortPressPreset1(self):
        self.programStaion1

    def shortPressPreset2(self):
        self.programStation2

    def shortPressPreset3(self):
        self.programStation3

    def displayLCD(self):
        print("Currently Tuned:",self.station_index)
        print("present1:", self.programStation1)
        print("present2:", self.programStation2)
        print("present3:", self.programStation3)

    def __str__(self):
        return "Currently Tuned:", str(self.station_index)


def main():
    myradio = Radio()
    print(myradio)
    displayMenuGetOption()

def displayMenuGetOption():
    print("1 = Display tuned in staion")
    print("2 = Program present station 1")
    print("3 = Program present station 2")
    print("4 = Program present station 3")
    print("5 = Seek next station")
    print("6 = Tune preset station 1")
    print("7 = Tune preset station 2")
    print("8 = Tune preset station 3")
    print("9 = Dump Programming")
    print("10 = Turn off radio")
    option = input("\nEnter option:")

 main()

我在考虑使用if逻辑,但我认为它会使代码更复杂。我注意到当我试图返回当前已调谐的电台时,我得到了0而不是静态。当前应调整输出:静态。我只是想知道如何让用户输入匹配并激活类中的实例变量。你知道吗


Tags: 实例用户selfindexdefprogramradiopreset
2条回答
  • print("Currently Tuned:", self.station_index)打印当前电台的索引,而不是名称。你可能想要print("Currently Tuned:", self.stations[self.station_index])
  • return "Currently Tuned:", str(self.station_index)不返回字符串。你可能想要return "Currently Tuned: {}".format(self.stations[self.station_index]))
  • shortPressPreset1中的self.programStaion1行没有任何作用。你可能想要return self.programStation1return self.stations[self.programStation1](顺便说一句:打字错误)。其他两个shortPressPreset方法也一样。你知道吗
  • __init__中不初始化programStation1等。如果在longPressPreset1之前调用shortPressPreset1displayLCD,则对象没有成员programStation1,并引发异常。你知道吗

如果不想用if语句处理用户输入,可以用字典处理:

actions = {
    '1': radio.displayLCD,
    '2': radio.longPressPreset1,
    '5': radio.seekNext,
    # ...
}
actions[option]()

用途:

def __str__(self):
    return 'Currently tuned: %s' % self.stations[self.station_index] 

相关问题 更多 >

    热门问题