Python секрет санта-я sh розыгрыш - PullRequest
0 голосов
/ 02 апреля 2020

Иногда работает нормально, иногда выдает ошибку. Не могу понять это. Независимо от того, сколько входов.

Это ошибка. Это порядок кода или что-то еще?

    give_gift.remove(reciever)
ValueError: list.remove(x): x not in list 

Код:

import random
import os
import time
random.seed()
buy_gift = []
give_gift = []
names = True
print('Add name, then press ENTER. To finish type "end".')
while names is True:
    name = input()
    if name == "end":
        if len(buy_gift) < 2:
            print("Go play with your own gift. Goodbye!")
            print()
            os.system("PAUSE")
            quit()
        else:
            names = False
    else:
        buy_gift.append(name)
        give_gift.append(name)

exchange = len(give_gift)
os.system("cls")
time.sleep(1)
print("Drawing pairs...")
print()
time.sleep(1)
while exchange > 0:
    giver = random.choice(buy_gift)
    reciever = random.choice(give_gift)
    while giver == reciever:
        reciever = random.choice(buy_gift)
    print(giver,"buys gift for",reciever)
    time.sleep(0.25)
    buy_gift.remove(giver)
    give_gift.remove(reciever)
    exchange -= 1
print()
os.system("PAUSE")

1 Ответ

0 голосов
/ 03 апреля 2020

Есть проблема с этой строкой:

while giver == reciever:
    reciever = random.choice(buy_gift)

Должно быть:

reciever = random.choice(give_gift)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...