我正在努力讓我的代碼工作。我的 PC 上存儲了大量水果。每次運行程序時,我都希望程序從列表中隨機顯示一個水果。然后將那個水果保存在myfruitPicked.我的目標是:程序應該始終檢查myfruitPicked隨機選擇的水果是否已經在myfruitPicked. 然后它應該丟棄那個水果并從原始列表中隨機選擇另一個。當myfruitPicked列表中的水果等于我原始列表中的水果數量時。該程序應該break并打印所有已顯示的水果。這個想法是,我不想在運行程序時看到一個水果顯示兩次。也因為水果清單實在是太大了。我想讓代碼工作得很好,這樣它就不會導致內存問題或減慢程序的速度。例如,假設我在文件中列出了 5 個水果。當我運行該程序時,它應該給我 1 個水果,然后在不關閉程序的情況下,我將再次運行該程序以獲得另一個不同的水果,依此類推。現在在顯示第 5 個水果后,如果我要求另一個水果,那么程序將中斷并打印“所有水果都已顯示”。如此基本的程序應該知道我在文件中有多少水果,并且只要它還沒有給我它就應該繼續提供不同的水果import randommyfruitPicked = ''fruits = "C:\users\Homer\fruits.txt"while True: randFruit = random.choice(fruits) myfruitPicked = myfruitPicked + randFruit if randFruit in myfruitPicked: print('All Fruits Already Displayed') break else: print(randFruit)
1 回答
www說
TA貢獻1775條經驗 獲得超8個贊
這就是我在評論中的意思。創建水果副本的原因并不是那么必要。因為您將從變量中刪除水果,而不是從 .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)
添加回答
舉報
0/150
提交
取消
