gpt4 book ai didi

python - 当尝试在任何地方定义全局变量时,我得到 'invalid syntax'

转载 作者:行者123 更新时间:2023-12-01 08:35:32 24 4
gpt4 key购买 nike

我目前正在尝试制作一款刽子手游戏。我已经在任何函数之外定义了变量“lives”,但是当尝试在 start_game 函数内使用它时,编辑器说该变量已定义但从未使用过。然而,当我尝试将其声明为全局时,无论是在函数内部还是外部,它都会给我一个“无效语法”错误 - 特别是在赋值运算符“=”处。

import random

words = "dog cat log hog etc" # <-- just a huge string of a bunch of words

words = words.split()

word = random.choice(words)


# Difficulties: Easy:12 Medium:9 Hard:6
lives = 0

current = "_" * 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()
break

start_game()

最佳答案

当我写这个问题时,我意识到我做错了什么,所以我决定继续自己回答这个问题。

当您将变量定义为全局变量时,您不希望像这样立即为该变量分配变量:

global lives = 0

这会给你一个错误。为什么?当您想将变量定义为全局变量时,您是在告诉计算机:“嘿,这里的这个变量是全局使用的,而不是本地使用的。”上面这行代码的问题在于,当您此时应该做的就是告诉计算机该变量是全局变量时,您还为该变量分配了一个值。如果您想为变量分配一个值(无论是第一次还是重新分配),那么您需要在不同的代码行上分配该值。

当我查找此内容时,我没有发现任何明确说明这一点的内容,因此我希望这可以帮助任何刚接触 Python 编码的人或像我一样忘记它是如何工作的人。

关于python - 当尝试在任何地方定义全局变量时,我得到 'invalid syntax',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53745311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com