在嘗試從頭開始編碼后,我試圖列印出最高出價者。我已經盯著這個看了一個小時,不明白為什么這一切都有效,但它總是宣布最近的競標者為中標者,而不是最高的。一雙新鮮的眼睛將不勝感激!
#print(logo)
#Then we set variables to store the inputs
print("Welcome to the secret auction program.\n")
#We then create a dictionary to store the functions output
bidders = []
#Function to add bids to dictionary
def create_bidder(name, bid):
bidders.append({
"name": name,
"bid" : bid
})
start_name = input("What is your name?\n")
start_bid = input("What's your bid?\n")
create_bidder(start_name,start_bid)
keep_going = input("Are there any other bidders? Type 'yes' or 'no'\n")
while keep_going == "yes":
clear()
name = input("What is your name?\n")
bid = input("What's your bid?\n")
keep_going = input("Are there any other bidders? Type 'yes' or 'no'\n")
create_bidder(name, bid)
for i in range(0, len(bidders)):
maxBid = -1
maxBidName = "";
bid = int(bidders[i]["bid"])
name = bidders[i]["name"]
if bid > maxBid:
maxBid = bid
maxBidName = name
if keep_going == 'no':
for i in range(0, len(bidders)):
maxBid = -1
maxBidName = "";
bid = int(bidders[i]["bid"])
name = bidders[i]["name"]
if bid > maxBid:
maxBid = bid
maxBidName = name
print(f"Congratulations {maxBidName}! Your bid of ${maxBid} wins!")
if keep_going == 'print':
print(bidders)
uj5u.com熱心網友回復:
在您的情況下,您可以maxBid跳出for回圈keep_gooing == 'no'。它看起來像這樣:
maxBid = 0
maxBidName = ""
for bidder in bidders:
bid = int(bidder["bid"])
name = bidder["name"]
if bid > maxBid:
maxBid = bid
maxBidName = name
print(f"Congratulations {maxBidName}! Your bid of ${maxBid} wins!")
如果在maxBidfor 回圈中,它將在-1每次回圈運行時設定為!
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/410020.html
標籤:
上一篇:修改物件陣列的Javascript函式回傳相同的陣列
下一篇:聚合字典串列的有效方法
