2017-03-01 77 views
1

我为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]) 
+1

您正在打印相同的*'数组'*七次 –

+0

取出最后一个'for'循环。你只想打印一次输出。 – Peter

回答

0

有了这个:

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) 
0

正如TigerhawkT3说看来你是混淆如何打印出的值,一旦你让他们推入你的数组。

This link展示了如何使用不同容量的循环(你也不会,除非你希望它在列表中打印为每个项目希望把初始打印语句在循环内)。为您解决问题的一个方法是:

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] 

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

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

你好艾伦,我真的很感谢你的回应。我使用Python 3.6,所以我最后一个例子的打印语句如下所示:print(“\ n你的随机抽奖号码是:”) print(“,”.join(numbers))但是,我得到这个错误, .join()需要一个字符串:TypeError:序列项目0:期望的str实例,发现int我是否必须将numbers = []更改为字符串? – Shamar

+0

我更新了使用map(str,numbers)将数组元素转换为字符串的答案,根据这篇文章:http://stackoverflow.com/questions/3590165/joining-a-list-that-has-integer-values -with-蟒蛇 –

-1

我希望这可以帮助。我试图测试你所做的事情;而且,我能够做到这一点。我希望这是你要找的。

# Used Python 3.6 IDLE (32-bit) to code sample 

# Sample Output 

# Your Numbers Are: 6 2 1 0 9 1 7 
# main() 
# Your Numbers Are: 7 4 7 0 9 7 9 
# main() 
# Your Numbers Are: 3 8 3 7 0 9 4 
# main() 
# Your Numbers Are: 2 3 4 8 1 5 4 


# This is the main function of our Python Script 
def main(): 

# IMPORTS 
import random # Our Built-Library containg the Python random function 

# DECLARATIONS 
Arr_myNumbers = [] 

# Populate our array with 7 spots 
for x in range(7): 
    Arr_myNumbers.append( random.randint(0 , 9) ) 


print('Your Numbers Are:' , Arr_myNumbers[0] 
          , Arr_myNumbers[1] 
          , Arr_myNumbers[2] 
          , Arr_myNumbers[3] 
          , Arr_myNumbers[4] 
          , Arr_myNumbers[5] 
          , Arr_myNumbers[6] 
          , end = '\n' 
    ) 




# Tells Python to execute our method when it executes 
main()