带有 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 语句的函数中的全局变量 的相关文章

  • 类的 IPython 表示

    我正在使用我创建的模块尝试 IPython 但它没有显示类对象的实际表示 相反 它显示类似的内容 TheClass module TheClass name I heavily在这个模块中使用元类 我有真正有意义的类表示 应该向用户显示 是
  • pandas DataFrame.join 的运行时间是多少(大“O”顺序)?

    这个问题更具概念性 理论性 与非常大的数据集的运行时间有关 所以我很抱歉没有一个最小的例子来展示 我有一堆来自两个不同传感器的数据帧 我需要最终将它们连接成两个very来自两个不同传感器的大数据帧 df snsr1 and df snsr2
  • 使用主题交换运行多个 Celery 任务

    我正在用 Celery 替换一些自制代码 但很难复制当前的行为 我期望的行为如下 创建新用户时 应向tasks与交换user created路由键 该消息应该触发两个 Celery 任务 即send user activate email
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • 矩形函数的数值傅里叶变换

    本文的目的是通过一个众所周知的分析傅里叶变换示例来正确理解 Python 或 Matlab 上的数值傅里叶变换 为此 我选择矩形函数 这里报告了它的解析表达式及其傅立叶变换https en wikipedia org wiki Rectan
  • 打印包含字符串和其他 2 个变量的变量

    var a 8 var b 3 var c hello my name is var a and var b bye print var c 当我运行程序时 var c 会像这样打印出来 hello my name is 8 and 3 b
  • 如何将特定范围内的标量添加到 numpy 数组?

    有没有一种更简单 更节省内存的方法可以单独在 numpy 中执行以下操作 import numpy as np ar np array a l r ar c a a 0 l ar tolist a r 它可能看起来很原始 但它涉及获取给定数
  • Django 视图中的“请求”是什么

    在 Django 第一个应用程序的 Django 教程中 我们有 from django http import HttpResponse def index request return HttpResponse Hello world
  • 如何将 ascii 值列表转换为 python 中的字符串?

    我在 Python 程序中有一个列表 其中包含一系列数字 这些数字本身就是 ASCII 值 如何将其转换为可以在屏幕上回显的 常规 字符串 您可能正在寻找 chr gt gt gt L 104 101 108 108 111 44 32 1
  • Pandas 组合不同索引的数据帧

    我有两个数据框df 1 and df 2具有不同的索引和列 但是 有一些索引和列重叠 我创建了一个数据框df索引和列的并集 因此不存在重复的索引或列 我想填写数据框df通过以下方式 for x in df index for y in df
  • Python - 如何确定解析的 XML 元素的层次结构级别?

    我正在尝试使用 Python 解析 XML 文件中具有特定标记的元素并生成输出 excel 文档 该文档将包含元素并保留其层次结构 我的问题是我无法弄清楚每个元素 解析器在其上迭代 的嵌套深度 XML 示例摘录 3 个元素 它们可以任意嵌套
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • 如何使用 AWS Lambda Python 读取 AWS S3 存储的 Word 文档(.doc 和 .docx)文件内容?

    我的场景是 我尝试使用 python 实现从 Aws Lambda 读取 AWS 存储的 S3 word 文档 doc 和 docx 文件内容 下面的代码是我使用的 我的问题是我可以获取文件名 但无法读取内容 def lambda hand
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • Firebase Firestore:获取文档的生成 ID (Python)

    我可以创建一个新文档 带有自动生成的 ID 并存储对其的引用 如下所示 my data key value doc ref db collection u campaigns add my data 我可以像这样访问数据本身 print d
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • JSON:TypeError:Decimal('34.3')不是JSON可序列化的[重复]

    这个问题在这里已经有答案了 我正在运行一个 SQL 查询 它返回一个小数列表 当我尝试将其转换为 JSON 时 出现类型错误 查询 res db execute SELECT CAST SUM r SalesVolume 1000 0 AS

随机推荐

  • 在 .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 语句内