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

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

有沒有辦法在 python 中重新設置列表的值?

有沒有辦法在 python 中重新設置列表的值?

慕森王 2023-02-15 16:31:32
我正在開發一款井字游戲,該游戲的功能是將列表中的連字符替換為 X 和 O 以形成網格。我也是 python 的初學者,所以這段代碼會很笨重。問題是我希望游戲可以重新玩,但我找不到將列表重置為開始時使用的連字符的方法。這是一段簡化的代碼,可以更好地說明問題:list = ["-","-","-", "X","O"]def replace():    list[0] = list[3]def main():    replace()    play_again = input ("play again?")    if play_again == "yes":        main()    else:        exit()    main()這使得列表從["-","-","-", "X","O"]變為["X","-","-", "X","O"],從而使游戲正常運行。我希望能夠做的是以某種方式回到list玩家["-","-","-", "X","O"]再次玩游戲的時候。不幸的是,該列表似乎停留在["X","-","-", "X","O"]. 我試過了:list = ["-","-","-", "X","O"]在上方添加replace()list[0] = "-"在上方添加replace()這些選項都不起作用。是否可以將 的值重置list為我開始時的值?如果是這樣,我應該如何處理這個問題?
查看完整描述

1 回答

?
嚕嚕噠

TA貢獻1784條經驗 獲得超7個贊

使您的代碼“工作”的最簡單的更改是:


def main():

    global list

    list = ["-","-","-", "X","O"]

    replace()

    play_again = input ("play again?")

    if play_again == "yes":

        main()

    else:

        exit()

(雖然這不是我從頭開始做這件事的方式——但你已經指出笨重的代碼是可以的/預期的,所以我不打算在這里嘗試修復它。)


這也將起作用,并且不需要global聲明:


def main():

    list[:] = ["-","-","-", "X","O"]

    replace()

    play_again = input ("play again?")

    if play_again == "yes":

        main()

    else:

        exit()


查看完整回答
反對 回復 2023-02-15
  • 1 回答
  • 0 關注
  • 121 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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