【问题标题】:Loop printing output multiple times多次循环打印输出
【发布时间】:2017-03-01 23:22:32
【问题描述】:

我为 COP1000 创建了一个随机彩票号码生成器,它将一个随机数 0-9 传递给一个由 7 个整数组成的数组。但是,当我打印数组时,我得到了 7 次相同的输出。这可能是其中一个循环的问题,但我不确定它来自哪里。任何帮助将不胜感激。

代码如下:

import random
print("Seven lucky numbers; are you ready?")

numbers = [0,0,0,0,0,0,0]



index = 0
while index<len(numbers):
    numbers[index] = random.randint(0,9)
    index = index + 1

for n in numbers:
    print("\nYour random lottery number is:")
          print(numbers[0],numbers[1],numbers[2],numbers[3],numbers[4],numbers[5],numbers[6])

【问题讨论】:

  • 您正在打印相同的 'array' 七次
  • 取出最后一个for循环。您只想打印一次输出。

标签: python arrays list python-3.x loops


【解决方案1】:

有了这个:

for n in numbers:
    print("\nYour random lottery number is:")
    print(numbers[0],numbers[1],numbers[2],numbers[3],numbers[4],numbers[5],numbers[6])

您正在循环打印整个列表。循环遍历列表或打印整个内容,但不要两者都做。解决此问题并产生所需输出的最简单方法是将上述代码替换为以下代码:

print("\nYour random lottery number is:")
print(*numbers)

【讨论】:

    【解决方案2】:

    正如 TigerhawkT3 所说,您似乎对将值推入数组后如何打印它们感到困惑。 (此外,您不希望将初始打印语句放在循环中,除非您希望它为列表中的每个项目打印

    This link 展示了如何使用不同容量的 for 循环。解决问题的一种方法是:

    print("\nYour random lottery numbers are:")
    for n in numbers: 
      print n
    

    如果您想循环并打印出每个值,并且在所有或 1 个项目前使用某种字符串,您可以使用:

    print("\nYour random lottery numbers are:")
    for index in range(len(numbers)):
      if index == len(numbers) - 1:
        print "power number: ", numbers[index]
      else:
        print index, ' : ', numbers[index]
    

    最后,如果您只是想在一个打印语句中打印带有分隔符的所有数字,那么看起来这可能与解决方案所在的 this questionthis one 重复:

     print("\nYour random lottery numbers are:")
     print ', '.join(map(str, numbers))
    

    【讨论】:

    • 您好艾伦,非常感谢您的回复。我使用的是 Python 3.6,因此最后一个示例的打印语句如下所示: print("\nYour random lottery numbers are:") print(", ".join(numbers)) 但是,我收到了这个错误,说明 . join() 需要一个字符串:TypeError: sequence item 0: expected str instance, int found 我必须将 numbers=[] 更改为字符串吗?
    • 我根据这篇文章更新了使用 map(str, numbers) 将数组元素转换为字符串的答案:stackoverflow.com/questions/3590165/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多