Python,函数改变值

2023-12-01

所以我在让这个系统正常工作时遇到了麻烦,我不确定我是否提出了正确的问题,但这就是正在发生的事情以及我想要发生的事情。

money = 1
def Stats():
     print
     print "money " + str(money)

def gainM():
     money + 2
     Stats()

if money == 1:
     gainM()

现在,当它去印钞票时会发生什么,即使我在该值上添加 2,该值仍然是 1。 (代码不是我实际程序的副本,而是一个显示正在发生的情况的示例。)


money + 2是一个空操作。你实际上必须分配money到一个新的值

money = money + 2
# or
money += 2

但随后您会发现出现错误 - 您无法分配给函数范围之外的变量。您可以使用global关键词:

global money
money += 2

这将允许您更改的值money函数内。

不过,推荐的方式是通过money作为参数:

def gainM(money):
    money += 2
    Stats()
    return money

if money == 1:
    money = gainM(money)

如果您使用第二个选项(您应该这样做),您还需要更改您的Stats函数,有一个money参数也是如此。

def Stats(money):
     print
     print "money " + str(money)

否则该函数将打印1代替3.

另一个建议 - 使用字符串格式。

'money %d' % money  # the old way
'money {}'.format(money)  # the new and recommended way

现在你通过了money进入Stats功能。

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

Python,函数改变值 的相关文章

随机推荐

  • HTML5 的 History.js - 需要进行黑客攻击才能不破坏 IE7

    我的目标是仅支持 HTML5 浏览器的 AJAX 历史记录 但是 我希望我的网站能够使用 HTML4 浏览器 但没有 AJAX 历史记录 许多 History js 示例在执行任何操作之前都包含以下检查 if History enabled
  • mailto链接多条正文线

    无法在 mailto 链接中使多行正常工作 就我而言 我正在使用 Outlook 默认邮件阅读器对其进行测试 以下内容放入锚点 href 中 mailto email protected subject test body type 20y
  • 如何防止 XmlSerialzer 转义“嵌套 XML”?

    我正在使用 XmlSerializer 来序列化 反序列化复杂对象 一个属性包含一个 XML 字符串 应将其写入字符串属性而不进行反序列化 示例 可在 LinqPad 中执行 XmlRoot RootObject Serializable
  • 从日期时间获取日期名称

    如何从 Python 中的日期时间对象获取日期名称 例如星期一 星期二 星期三 星期四 星期五 星期六和星期日 所以 举例来说 datetime 2019 9 6 11 33 0 应该给我 Friday import datetime no
  • 覆盖单个文件的编译标志

    我想使用一组全局标志来编译项目 这意味着我在顶级 CMakeLists txt 文件中指定了 ADD DEFINITIONS Wall Weffc pedantic std c 0x 但是 对于子目录中的特定文件 假设为 foo cpp 我
  • 用于重复数据删除的 Kafka 压缩

    我试图了解 Kafka 压缩的工作原理 并有以下问题 kafka 是否保证启用压缩的主题中存储的消息的键的唯一性 Thanks 简短的回答是否定的 Kafka 不保证启用主题保留时存储的密钥的唯一性 在 Kafka 中有两种类型cleanu
  • 如何在android中的fragment中添加选项卡?

    我尝试在片段内添加选项卡 我可以添加 但特定选项卡的内容与选项卡重叠 MainFragmentActivity java public class MainActivity extends FragmentActivity Override
  • 这是什么网页效果

    当你在堆栈溢出时达到 1000 声望时 你将获得一张消耗性用户卡 当您将鼠标悬停在卡片上时 我怎样才能重现这种效果 怎么称呼 我的猜测是它是一个 Jquery 方法 但如果是的话 有人可以指出我正确的方向 因为我寻找它但无法准确得到我需要的
  • 从 Android 中的 url 加载图像,仅当图像很小时

    我在用着BitmapFactory decodeStream从 Android 中的 url 加载图像 我只想下载低于特定尺寸的图像 我目前正在使用getContentLength检查这个 然而 我被告知getContentLength并不
  • java.lang.IllegalArgumentException:未知实体

    我有一个试驾 package com chinalbs service RunWith SpringJUnit4ClassRunner class ContextConfiguration locations classpath appli
  • 简单页面应用程序路由到相同视图或控制器 SailsJS

    如何将多个 url 路由到同一控制器或视图以使用 Angular 单页应用程序 我可以做到这一点 但我觉得很丑 view homepage login view homepage register view homepage troller
  • PHP - 使用简单 XML 复制 XML 节点

    我需要使用简单 XML 加载 XML 源 复制现有节点及其所有子节点 然后在渲染 XML 之前自定义此新节点的属性 有什么建议吗 SimpleXML 不能做到这一点 所以你必须使用DOM 好消息是 DOM 和 SimpleXML 是同一枚硬
  • 如何在mongodb中删除具有特定条件的重复项?

    例如 我的收藏中有以下文档 id GuqXmAkkARqhBDqhy beatmapset id 342537 version MX diff approach 5 artist Yousei Teikoku title Kokou no
  • 如何在 C# 中使用“for”循环创建动态递增变量

    如何在 C 中使用 for 循环创建动态递增变量 像这样 track 1 track 2 track 3 track 4 so on 您无法创建动态命名的变量 您所能做的就是创建一些集合或数组 并对其进行操作 我认为最适合你的课程是通用课程
  • Magento 2 重定向到支付网关错误

    我已经使用转换器转换了我的 Magento 1 支付模块 我想我需要修改代码以适应 Magento 2 我被困在结账过程中 重定向到支付网关 以下是当 magento 尝试重定向到时我的错误http localhost 8083 mm pd
  • Alfresco 社区版和 Alfresco 企业版有什么区别?

    Alfresco 社区版和 Alfresco 企业版有什么区别 它提供的两种功能有什么区别吗 我们可以下载具有更长试用许可证的企业版吗 企业版是商业支持的版本 除了支持之外 您还可以获得补丁 更新 赔偿以及与认证合作伙伴的联系 从功能的角度
  • 如何在Python中获取__main__模块的文件名?

    假设我有两个模块 a py import b print name file b py print name file 我运行 a py 文件 这打印 b C path to code b py main C path to code a
  • 如何使 WinHttpCrackUrl 在 64 位下工作

    我有 Visual Basic for Applications 代码 使用WinHttp并可与在 32 位 Windows XP 上运行的 32 位 Office 2010 完美配合 即使可以正常编译 相同的代码也无法在 64 位 Win
  • 如何通过 ssh 使用参数执行远程命令?

    In my bashrc我定义了一个稍后可以在命令行上使用的函数 function mycommand ssh email protected cd testdir test sh 1 使用该命令时 只需cd命令在远程主机上执行 这test
  • Python,函数改变值

    所以我在让这个系统正常工作时遇到了麻烦 我不确定我是否提出了正确的问题 但这就是正在发生的事情以及我想要发生的事情 money 1 def Stats print print money str money def gainM money