亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

隨機顯示和存儲,不重復存儲值

隨機顯示和存儲,不重復存儲值

UYOU 2021-11-16 15:03:14
我正在努力讓我的代碼工作。我的 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)


查看完整回答
反對 回復 2021-11-16
  • 1 回答
  • 0 關注
  • 220 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號