第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

嘗試在任何地方定義全局變量時(shí),我得到“無(wú)效語(yǔ)法”

嘗試在任何地方定義全局變量時(shí),我得到“無(wú)效語(yǔ)法”

森林海 2021-09-14 20:59:08
我目前正在嘗試制作一個(gè)劊子手游戲。我已經(jīng)在任何函數(shù)之外定義了變量“l(fā)ives”,但是當(dāng)嘗試在 start_game 函數(shù)中使用它時(shí),編輯器說(shuō)該變量已定義但從未使用過(guò)。但是,當(dāng)我嘗試將它聲明為全局時(shí),無(wú)論它是在函數(shù)內(nèi)部還是外部,它都會(huì)給我一個(gè)“無(wú)效語(yǔ)法”錯(cuò)誤——特別是在賦值運(yùn)算符“=”處。import randomwords = "dog cat log hog etc"     # <-- just a huge string of a bunch of wordswords = words.split()word = random.choice(words)# Difficulties: Easy:12 Medium:9 Hard:6lives = 0current = "_" * len(word)def gameLoop():  while current != word and lives > 0:    print("Guess a letter. If you wish to exit the game, enter 'exit'")    input("")    print(lives)def start_game():  while True:    print("Welcome to Hangman! What game mode would you like to play? Easy, medium, or hard?")    game_mode = str.lower(input(""))   if game_mode == "easy":      lives = 12      gameLoop()      break    elif game_mode == "medium":      lives = 9      gameLoop()      break    elif game_mode == "hard":      lives = 6      gameLoop()      breakstart_game()
查看完整描述

2 回答

?
慕雪6442864

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊

在我寫(xiě)這個(gè)問(wèn)題的時(shí)候,我意識(shí)到我做錯(cuò)了什么,所以我決定繼續(xù)自己回答這個(gè)問(wèn)題。

當(dāng)您將變量定義為全局變量時(shí),您不想像這樣為變量分配一個(gè)變量:

global lives = 0

那會(huì)給你一個(gè)錯(cuò)誤。為什么?當(dāng)你想將一個(gè)變量定義為全局變量時(shí),你是在告訴計(jì)算機(jī),“嘿,這里的這個(gè)變量是全局使用的,而不是本地使用的。” 上面這行代碼的問(wèn)題在于,您還為變量分配了一個(gè)值,而此時(shí)您應(yīng)該做的就是告訴計(jì)算機(jī)該變量是全局的。如果你想給變量賦值(無(wú)論是第一次還是重新賦值),那么你需要在不同的代碼行上賦值。

當(dāng)我查找這個(gè)時(shí),我沒(méi)有發(fā)現(xiàn)任何明確的說(shuō)法,所以我希望這有助于任何使用 python 編碼的新人或者像我一樣忘記它是如何工作的人。


查看完整回答
反對(duì) 回復(fù) 2021-09-14
?
狐的傳說(shuō)

TA貢獻(xiàn)1804條經(jīng)驗(yàn) 獲得超3個(gè)贊

首先,global語(yǔ)句是聲明,而不是可執(zhí)行語(yǔ)句。它只是告訴解釋器查看模塊命名空間而不是函數(shù)調(diào)用命名空間。它只需要在函數(shù)內(nèi)部使用。


在外面,本地和全局命名空間是同一個(gè)東西(模塊命名空間),所以該global語(yǔ)句什么都不做。


該語(yǔ)句必須是關(guān)鍵字,global后跟要被視為全局名稱(chēng)的逗號(hào)分隔列表。如果要為任何名稱(chēng)賦值,無(wú)論是否為全局名稱(chēng),都必須在單獨(dú)的賦值語(yǔ)句中進(jìn)行。


您可能想要更像下面的代碼的東西,它會(huì)按照您的需要“工作”(我意識(shí)到這只是開(kāi)發(fā)中的部分程序)。我修復(fù)了縮進(jìn)以符合 PEP 8,因?yàn)槲业睦涎劬Πl(fā)現(xiàn)否則很難閱讀代碼!


import random


words = "tom dick harry".split()

word = random.choice(words)



# Difficulties: Easy:12 Medium:9 Hard:6

lives = 0


current = "_" * len(word)



def gameLoop():

    global lives

    while current != word and lives > 0:

        print("Guess a letter. If you wish to exit the game, enter 'exit'")

        input("")

        print(lives)



def start_game():

    global lives

    while True:

        print(

            "Welcome to Hangman! What game mode would you like to play? Easy, medium, or hard?"

        )

        game_mode = str.lower(input(""))


        if game_mode == "easy":

            lives = 12

            gameLoop()

            break

        elif game_mode == "medium":

            lives = 9

            gameLoop()

            break

        elif game_mode == "hard":

            lives = 6

            gameLoop()

            break



start_game()



查看完整回答
反對(duì) 回復(fù) 2021-09-14
  • 2 回答
  • 0 關(guān)注
  • 222 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)