簡體   English   中英

從循環中創建值列表

[英]Making a list of values from a loop

我正在編寫一個程序作為練習,它將為 N 設置一個最大為 400 的隨機數,並且一個名為 K 的計數器每次都會增加一。 最后,我希望它列出分配給 N 的所有值。

有誰知道如何做到這一點?

import random
separateur = "============================================================"
def Compteur_bulletins():
  K = 0
  N = 36
  while N >= 36:
      N = random.randint(1,400)
      K += 1
  print("Nombre de bulletins au-dessus ou egal a 36: ", K)
  print("Valeure de 'N': ", N, "\n")
  print(separateur, "\n")
  return K, N

for x in range(10):
  Compteur_bulletins()

嘗試這個:

def compteur_bulletins():
    k = 0
    values_of_n = []
    n = random.randint(1, 400)
    while n >= 36:
        values_of_n.append(n)
        n = random.randint(1, 400)
        k += 1

    return values_of_n, k

values, count = compteur_bulletins()
print('K:', count)
print(values)
print('Sum:', sum(values))

輸出:

K: 15
[193, 114, 203, 227, 328, 262, 133, 311, 211, 323, 86, 310, 226, 147, 223]
Sum: 3297

或者,如果您想要 10 個不同的n值的總和,就像您在代碼中所做的那樣,您可以這樣做:

for _ in range(10):
    values, count = compteur_bulletins()
    print(sum(values))

輸出:

471
0
3243
1348
896
808
2865
867
0
2447

如果目標是排除 N 的第一個值 (36) 和 N 的最終值(低於 36 的值),那么這樣的事情將起作用:

import random
separateur = "============================================================"
def Compteur_bulletins():
  K = 0
  N = 36
  valeures_N = []
  while N >= 36:
      if K >= 1:
          valeures_N.append(N)
      N = random.randint(1,400)
      K += 1
  print("Nombre de bulletins au-dessus ou egal a 36: ", K)
  print("Valeure de 'N': ", N, "\n")
  print("Valeures anciennes de 'N': ",valeures_N, "\n") 
  print("Somme:",sum(valeures_N))
  print(separateur, "\n")
  return K, N, valeures_N

for x in range(10):
  Compteur_bulletins()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM