Как мне повторить / зациклить код так, чтобы он запускался кратно, пока я не попросил его остановить? - PullRequest
0 голосов
/ 05 ноября 2018

У меня есть фрагмент кода Python, который я генерирую 3 случайных целых числа от 0 до 100:

list1=random.sample(0, 100),3)
if sum(list1)=20:
    print(list1)
else:
    pass #do nothing

Я хочу:

  1. Сумма трех сгенерированных чисел, равная 20, и, если она не равна 20, затем повторять код еще раз, пока не будет получено 3 числа, которые равны 20.
  2. Чтобы продолжать делать это, повторяйте N раз, чтобы было сгенерировано несколько списков, которые составляют до 20.

Кто-нибудь может помочь? Мои идеи пока что связаны с функциями цикла, но я не знаю, с чего начать.

Ответы [ 3 ]

0 голосов
/ 05 ноября 2018
list1=random.sample(0, 100),3)
while sum(list1) != 20:
    list1=random.sample(0, 100),3)
print(list1)
0 голосов
/ 05 ноября 2018

Выполнение чего-либо, пока что-то еще не происходит, является while -циклом. Выполнение чего-либо заданное количество раз является for -циклом.

Допустим, вы хотите 3 записи в вашем списке. Это for -петл с диапазоном 3:

for i in range(3):
  do_something()

Вы не знаете, когда случайная выборка будет складываться до 20, так что это while -кольцо:

result = []
list1 = []
while sum(list1) != 20:
  list1 = random.sample(range(100),3)
result.append(list1)

Итак, сложив это вместе, мы получим:

result = []
for i in range(3):
  list1 = []
  while sum(list1) != 20:
    list1 = random.sample(range(100),3)
  result.append(list1)
0 голосов
/ 05 ноября 2018

Используйте цикл while:

while True:
    list1=random.sample(0, 100),3)
    if sum(list1)=20:
        print(list1)
        break
...