带有 if 语句的函数中的全局变量

2023-12-07

好吧,我目前正在做一个用 python 制作二十一点游戏的项目,但遇到了一些麻烦。我的问题之一是我不知道何时将变量定义为全局变量,特别是在带有 if 语句的函数中。如果我在 if 语句之外有一个全局变量,我是否必须声明该变量在 if 语句内也是全局的?例如:

x = 5
def add():
    global x  <--- ?
    x += 1
    if x == 7:
        global x <--- ?
        x = 5

我很确定我需要第一个问号处的“global x”,但是第二个问号处呢?如果我希望 if 语句更新全局变量,我是否还需要在 if 语句中添加“global x”?或者函数开头的全局 x 是否使 if 语句内的 x 成为全局的?另外,如果我想在这里返回x,我应该在哪里做呢?


只有一个global声明就足够了。

From docs:

The global声明是一个声明,它适用于整个 当前代码块。

x = 5
def add():
    global x
    x += 1
    if x == 7:
        x = 5

另外,如果我想在这里返回x,我应该在哪里做呢?

如果您正在使用global在你的函数中然后return x必须在之后global x声明,如果您没有使用任何global声明并且也没有定义任何局部变量x然后你可以return x函数中的任意位置。

如果您定义了局部变量x then return x必须位于定义之后。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

带有 if 语句的函数中的全局变量 的相关文章

随机推荐

  • 在 .NET MVC 4.0 URL 结构中强制使用连字符

    我正在专门寻找一种自动连接 CamelCase 操作和视图的方法 也就是说 我希望不必实际重命名我的视图或向站点中的每个 ActionResult 添加装饰器 到目前为止 我一直在使用routes MapRouteLowercase 如图所
  • 扩展多边形的范围 - Google Maps V3 Javascript API

    我的目标是检测标记是否位于形状奇怪的多边形对象内 想想 25 个不同的点 我注意到 LatLngBounds 属性仅包含两组 LatLng 即使在使用 extend 函数之后也是如此 例如 34 347971491244955 122 40
  • const 引用的默认参数中使用的统一初始值设定项

    这是合法的 c 0x 语法吗 class A public void some function const std set
  • Java 中使用同步块的并发未给出预期结果

    下面是一个简单的 java 程序 它有一个名为 cnt 的计数器 该计数器会递增 然后添加到名为 monitor 的列表中 cnt 由多个线程递增 值由多个线程添加到 monitor 在方法 go 的末尾 cnt 和 monitor siz
  • 如何打开包含图像数组的 fancybox

    我在 JS 中有一组图像 ulrs photos img1 jpg img2 jpg 我正在使用 Fancybox 2 如何打开包含数组图像的 fancybox start slides fancybox openEffect elasti
  • 你能用 JavaScript 编写嵌套函数吗?

    我想知道 JavaScript 是否支持在另一个函数中编写函数或嵌套函数 我在博客中读到 这真的可能吗 事实上 我已经使用过这些 但不确定这个概念 我对此真的不清楚 请帮忙 这真的可能吗 Yes function a x lt functi
  • 如何获取javax.comm API?

    我最近下载了一个项目SMS正在发送 但是当我尝试编译代码时 它给出了在线错误import javax comm 谁能告诉我在哪里可以找到javax comm以及放置在哪里 这样就不会出现编译错误 Oracle Java 通信 API 参考
  • 从一个枚举状态移动到下一个状态并循环

    我只有具有 3 种模式 ledOn ledBlink ledOFF 的枚举器 并且有一个可变模式来跟踪特定对象的模式 例如 我有一个 LED 以 ledOn 模式启动 我想在 5 秒后移动到下一个元素 即 ledBlink 然后移动到 le
  • Django self.cleaned_data Keyerror

    我正在编写一个 Django 网站 并且正在编写自己的表单验证 class CreateJobOpportunityForm forms Form subject forms CharField max length 30 start da
  • UIButton 中图像下的标签

    我正在尝试创建一个按钮 该按钮在图标下方有一些文本 有点像应用程序按钮 但它似乎很难实现 任何想法如何让文本显示below图像与UIButton 或者您可以只使用此类别 ObjC interface UIButton VerticalLay
  • 如何解决“react-native start”错误

    我刚刚安装了 node js 和 cli 安装了node js 安装了react native cli npm g react native cli 并创建了一个 新项目 react native init new project 在 ne
  • 使用 jQuery 将三个重复的 div 组合并为一个

    我这里还有另一个问题 我有几个重复的 div 组 一组有3个不同班级的分区 我需要做的是将其包装到一个 容器 中 当我使用wrapAll时 它会将所有内容包装到一个div中 这是我的 html div class bb box tl div
  • 使用jquery ajax将javascript对象转为php

    我有一个数组或一个 javascript 对象 我创建如下 arr arr length obj其中 obj 是一个经典的 JSON 字符串 例如 id 1 So arr似乎是一个 JavaScript 对象数组 我可以这样访问它 arr
  • 无法使用自定义适配器理解 NullPointerException

    我正在尝试创建一个列表视图 它作为可以显示 html 内容的 TextView WebView 和其他基本 TextView 我尝试扩展 SimpleAdapter 但我遇到了这个问题 如果有人能指出我正在做的错误 我会很高兴 在onCre
  • 从BackgroundWorker内的剪贴板获取数据

    我有一个后台工作者 在 DoWork 方法中我有以下内容 var clipboardData Application Current Dispatcher Invoke new Action gt Clipboard GetData Dat
  • 如何将操作栏选项卡向右对齐?

    我以编程方式添加了操作栏选项卡 我不知道如何将操作栏选项卡向右对齐 ActionBar bar getActionBar bar setNavigationMode ActionBar NAVIGATION MODE TABS instan
  • Google Apps 脚本中的 Cookie 处理 - 如何在标头中发送 Cookie?

    我正在尝试编写一个简单的脚本 从网页中获取文本并处理该字符串 但是 该网站要求我登录 我成功登录该网站 这是我登录的方式 var payload name1 val1 name2 val2 var opt payload payload m
  • 如何格式化 Winform 中 LostFocus 事件的所有文本框值

    我需要在失去焦点事件时向任何相关文本框值中每个数值的千位添加逗号 我创建了以下函数 public static void FormatNumerical this Control control if control is TextBox
  • 递归函数的复杂性 - 时间和空间

    我有兴趣知道如何计算递归函数的时间和空间复杂度 如排列 斐波那契 描述here 一般来说 我们可以在很多地方进行递归 而不仅仅是排列或递归 所以我正在寻找通常遵循的方法来计算时间和空间复杂度 谢谢 看一眼http www cs duke e
  • 带有 if 语句的函数中的全局变量

    好吧 我目前正在做一个用 python 制作二十一点游戏的项目 但遇到了一些麻烦 我的问题之一是我不知道何时将变量定义为全局变量 特别是在带有 if 语句的函数中 如果我在 if 语句之外有一个全局变量 我是否必须声明该变量在 if 语句内