【问题标题】:Python secret santa-ish drawPython 的秘密圣诞老人抽奖
【发布时间】:2020-04-02 18:29:24
【问题描述】:

有时它可以正常工作,有时会引发错误。想不通。不管输入多少。

这就是错误。是代码的顺序还是别的什么?

    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")

【问题讨论】:

  • 嗨。尝试在问题中添加更多信息。它应该做什么?它在做什么呢?它会产生什么错误?没有这些信息,真的很难为您提供帮助
  • 您似乎没有采取任何措施来防止最后一个给予者和最后一个接受者是同一个人的情况。
  • 你也可以从给予者列表中重新绘制接收者。
  • 但是我想知道为什么在几次成功的抽奖之后它就挂了。

标签: python python-3.x list


【解决方案1】:

这行有问题:

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

应该是:

reciever = random.choice(give_gift)

【讨论】:

    猜你喜欢
    • 2010-09-21
    • 2013-11-10
    • 2016-05-23
    • 2022-01-12
    • 2022-01-15
    • 2012-01-26
    • 2022-11-17
    • 2017-04-24
    • 1970-01-01
    相关资源
    最近更新 更多