从循环中创建值列表

时间:2018-02-14 18:52:40

标签: python python-3.x loops numbers list-comprehension

我正在制作一个程序作为练习,为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()

2 个答案:

答案 0 :(得分:1)

试试这个:

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

或者,如果您想要在代码中完成n的10个不同总和,则可以执行以下操作:

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

输出:

471
0
3243
1348
896
808
2865
867
0
2447

答案 1 :(得分:0)

如果目标是排除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()