我正在努力使代码正常工作。
我的PC上存储了大量水果。每当我运行该程序时,我都希望该程序随机显示列表中的一种水果。然后将该水果保存在myfruitPicked
中。
我的目标是:程序应始终检查myfruitPicked
是否已包含随机选择的水果。然后,应丢弃该水果,并从原始列表中随机选择另一个。 myfruitPicked
列表中的水果数等于我原始列表中的水果数时。该程序应myfruitPicked
并打印所有已显示的水果。
这个想法是,我不想在我每次运行该程序时看到一个水果显示两次。也因为水果清单很大。我希望代码能正常工作,以免导致内存问题或程序变慢。
例如,假设我在文件中列出了5种水果。当我运行该程序时,应该给我1个水果,然后在不关闭程序的情况下,我将再次运行该程序以得到另一个不同的水果,依此类推。现在,在显示第5个水果之后,如果我要求再添加一个水果,则程序将中断并打印“已显示所有水果”。如此基本,程序应该知道文件中有多少个水果,并且只要没有给我,它就应该继续提供不同的水果
break
答案 0 :(得分:1)
这就是我在评论中的意思。创建水果副本的原因不是那么必要。由于您将从变量而不是.txt文件中删除水果。由您决定!
import random
myfruitPicked = ''
fruits = "C:\users\Homer\fruits.txt"
#ASSUMING EACH FRUIT IS IN A DIFFERENT LINE, it is passed into an array (lines).
lines = [line.rstrip('\n') for line in open(fruits)]
fruitsC = lines
while True:
randFruit = random.choice(fruitsC)
myfruitPicked = myfruitPicked + randFruit
#Remove picked fruit from list
fruitsC.remove(randFruit)
if (len(fruitsC)==0): #All the fruits have been picked
print('All Fruits Already Displayed')
break
else:
print(randFruit)