【问题标题】:Chaning number in a variable name更改变量名称中的数字
【发布时间】:2019-12-11 01:02:18
【问题描述】:

我还是新手,标题不是最准确的。我道歉。 我不打算深入探讨整个问题,但我在这个特定部分遇到了麻烦。

所以这里是sn-p的代码:

num = 0
SongAttributes = myMusic.getSongAttributes(num)

while True:
    print(SongAttributes)
    num += 1

所以“myMusic.getSongAttributes()”是一个包含 5000 首歌曲的列表。我希望能够打印第一首歌曲的详细信息,即“myMusic.getSongAttributes(0)”,然后是第二首歌曲“myMusic.getSongAttributes(1)”,以此类推。

为此,我将变量“num”设置为零,并将其放在 () 中。当我把它放在循环中时,它应该在每次循环发生时加 1,从而改变每个循环的歌曲细节。但它只是重复同样的事情。

我被困在这里,我的教授没有回应,任何事情都值得赞赏。

【问题讨论】:

    标签: python list loops numbers add


    【解决方案1】:

    您也应该将“SongAttributes = myMusic.getSongAttributes(num)”放入循环中。

    您仅在循环之前将值分配给 SongAttributes,因此该值永远不会改变

    【讨论】:

      【解决方案2】:

      您已经将 SongAttributes 设置为 myMusic.getSongAttributes(0) 并在循环中不断打印。

      您需要在循环中调用getSongAttributes

      num = 0
      
      while True:
      
          SongAttributes = myMusic.getSongAttributes(num)
      
          print(SongAttributes)
      
          num += 1
      

      如果无法退出,您的循环也会无限循环。

      【讨论】:

        【解决方案3】:

        您在循环之前设置了 SongAttributes,因此它永远不会更新,您应该将其移动到循环内,如下所示(我个人会使用 for 循环,因为它会为我处理计数器和退出条件)

        num = 0
        while True:
            SongAttributes = myMusic.getSongAttributes(num)
            print(SongAttributes)
            num += 1
        
        for i in range(len(myMusic)):
            Attributes = myMusic.getSongAttributes(num)
            print(SongAttributes)
        

        【讨论】:

          【解决方案4】:

          您对 SongAttributes 变量的赋值应该在 while 循环内

          num = 0 
          while True: 
               SongAttributes = myMusic.getSongAttributes(num)
               print(SongAttributes) 
               num += 1
          

          此外,您还应该添加一行来终止循环,或者使用 for 循环。否则它将无限地继续运行,并且您尝试运行的任何代码都不会经过该循环。 这是它的样子

          for num in range (len(myMusic.getSongAttributes())):
              print(myMusic.getSongAttributes(num))
          

          这里我不是将myMusic.getSongAttributes(num) 分配给一个变量来提高代码的性能,对于小程序你不需要这样做,但优化是一个好习惯。

          我使用len(myMusic.getSongAttributes()因为你说这是一个包含 5000 首歌曲的列表。如果列表的长度是恒定的,那么您不妨将这个术语想象为 5000。

          希望对你有帮助

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-02-27
            • 2021-07-02
            • 2015-11-10
            相关资源
            最近更新 更多