2017-03-06 151 views
1

我要做的就是打印出5 4 3 2 1 然後4 3 2 1在那之下然後3 2 1依此類推,現在我所擁有的就是第一行所以我會得到5 4 3 2 1或6 5 4 3 2 1,但我似乎無法得到它試圖讓它繼續,直到達到1Python循環隨機數

from random import choice 
    i=choice([5,6,7,8,9,10]) 
    while i: 
     print(i, end=" ") 
     i -= 1 
     if(i <1): 
      break 
+0

聽起來像你需要兩個循環,而不僅僅是一個。 – khelwood

回答

1

一個緊湊的方法:

import random as rnd 

length = rnd.choice([5, 6, 7, 8, 9, 10]) 
lst = [str(x) for x in range(length, 0, -1)] 
while lst: 
    print(" ".join(lst)) 
    lst.pop(0) 

更換rangexrange如果你正在使用Python 2.7。

0

你需要兩個循環的權利時,一個做最初的倒計時(5,4,3,2,1),另一個循環遍歷你需要產生的每個列表。例如:

from random import choice 
i=choice([5,6,7,8,9,10]) 
for j in [*range(i,0,-1)]: 
    for k in [*range(j,0,-1)]: 
     print(k, end=" ") 
    print('') 
0

您可以試試這個。

from random import choice 
x = choice([5,6,7,8,9,10]) 
while x > 0: 
    y = x 
    while y > 0: 
     print y, 
     y = y-1 
    print "\n" 
    x = x-1 
+0

你好,這是我尋找的代碼的類型,但是當我嘗試運行時,它有一個錯誤,由y和「\ n」,我一直在編輯它,所以它運行,但不能似乎得到它100% –