如何只获取Python函数的返回值?

2024-04-19

我正在尝试通过 Python 学习编程,我想知道是否可以只获取函数的返回值而不获取其其他部分。这是代码:

比方说,这是主要功能:

variable_a = 5

while variable_a > 0 :            
    input_user = raw_input(": ") 
    if input_user == "A":    
            deduct(variable_a)
            variable_a = deduct(variable_a)    
    else:
        exit(0)

那么这是扣除函数:

def deduct(x):     
    print "Hello world!"  
    x = x - 1  
    return x

发生的情况是,它会进行计算并扣除,直到variable_a达到0。但是,“Hello world!”被打印两次,我想是因为变量_a = 扣除(变量_a)(如我错了请纠正我)。所以我在想,我可以只捕获deduct()的返回值而不捕获其余的吗?因此,在本例中,在执行 deduct() 之后,variable_a 将只有一个普通值 2(没有“Hello world!”)。

我错过了什么吗? :?

编者注:我删除了空行,因此可以将其粘贴到 REPL 中。


“Hello world”的打印就是所谓的副作用——函数产生的东西不会反映在返回值中。您要求的是如何调用该函数两次,一次产生副作用,一次捕获函数返回值。

事实上,您根本不必调用它两次 - 一次就足以产生两个结果。只需捕获唯一一次调用的返回值:

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

如何只获取Python函数的返回值? 的相关文章

  • Pytorch 损失为 nan

    我正在尝试用 pytorch 编写我的第一个神经网络 不幸的是 当我想要得到损失时遇到了问题 出现以下错误信息 RuntimeError Function LogSoftmaxBackward0 returned nan values in
  • 隐藏控制台并执行 python 脚本

    我正在尝试使用 pyinstaller 在 Windows 10 上使用 pyqt5 模块编译在 python 3 中构建的 python 脚本 该脚本在运行时隐藏窗口 为了编译我的脚本 我执行了以下命令 pyinstaller onefi
  • MySQL 的 read_sql() 非常慢

    我将 MySQL 与 pandas 和 sqlalchemy 一起使用 然而 它的速度非常慢 对于一个包含 1100 万行的表 一个简单的查询需要 11 分钟以上才能完成 哪些行动可以改善这种表现 提到的表没有主键 并且仅由一列索引 fro
  • 将新形状传递给“np.reshape”

    Within numpy ndarray reshape https docs scipy org doc numpy reference generated numpy ndarray reshape html the shape参数是一
  • 日期/时间值的 Django URL 转换器

    我正在尝试使用 Django 内置的 URL 转换器将 URL 中的日期时间字符串转换为视图中的日期对象 如果我手动输入 URL 它们会按预期工作 但尝试为其生成 URL 时找不到匹配项 我的转换器很简单 from django utils
  • 通过 pyodbc 连接到 Azure SQL 数据库

    我使用 pyodbc 连接到本地 SQL 数据库 该数据库工作正常 SQLSERVERLOCAL Driver SQL Server Native Client 11 0 Server localdb v11 0 integrated se
  • 这是我尝试安装 pip3 时得到的结果

    这是我尝试安装 pip3 时得到的结果 sudo apt get install python3 pip Reading package lists Done Building dependency tree Reading state i
  • 映射器无法组装任何主键列

    我从 sqlite 表创建了一个临时表 该表是基于各种选择标准的原始表的子集 屏幕截图中有一个示例 我试图一次循环一个表记录 以便更新每个记录中的字段 我有 source table self source engine create en
  • 无法将 python 数据框中的列类型从 object 转换为 str

    我已经下载了一个csv文件 然后将其读取到python dataframe 现在所有4列都有对象类型 我想将它们转换为str类型 现在dtypes的结果如下 Name object Position Title object Departm
  • 如何将 Jinja 与 Twisted 一起使用?

    我正在计划使用 Python 与 Twisted Storm 和 Jinja 一起开发一个讨论软件 问题是 Jinja 不是为 Twisted 或异步套接字库而设计的 并且使用 Twisted 提供的性能是我不打算使用 Flask 的原因
  • 为 Keras 编写自定义数据生成器

    我将每个数据点存储在 npy 文件中 其中shape 1024 7 8 我想通过类似的方式将它们加载到 Keras 模型中ImageDataGenerator 所以我编写并尝试了不同的自定义生成器 但它们都不起作用 这是我改编的一个this
  • 可变和不可变类变量如何初始化?

    运行下面的示例代码 class S i 0 a def init self self i 1 self a append 1 s1 S print s1 i s1 a s2 S print s2 i s2 a 输出将是 1 1 1 1 1
  • 调试 python Web 服务

    我正在使用找到的说明here http www diveintopython net http web services user agent html 尝试检查发送到我的网络服务器的 HTTP 命令 但是 我没有看到按照教程中的建议在控制
  • 按多索引的一级对 pandas DataFrame 进行排序

    我有一个多索引 pandas DataFrame 需要按索引器之一进行排序 这是数据片段 gene VIM treatment dose time TGFb 0 1 2 0 158406 1 2 0 039158 10 2 0 052608
  • 没有名为 urllib.parse 的模块(我应该如何安装它?)

    我正在尝试在 CentOS 7 上运行 REST API 我读到 urllib parse is in Python 3 但我使用的是 Python 2 7 5 所以我不知道如何安装此模块 我安装了所有要求 但仍然无法运行该项目 当我寻找
  • 对 Python 的 id() 感到困惑[重复]

    这个问题在这里已经有答案了 我可以理解以下定义 每个对象都有一个身份 类型和值 对象的身份 一旦创建就永远不会改变 你可能会认为它是 对象在内存中的地址 这is操作员比较身份 两个物体 这id 函数返回一个代表其值的整数 身份 我假设上面的
  • 如何克服 numpy.unique 的 MemoryError

    我正在使用 Numpy 版本 1 11 1 并且必须处理一个二维数组 my arr shape 25000 25000 所有值都是整数 我需要一个唯一的数组值列表 使用时lst np unique my arr 我正进入 状态 Traceb
  • Windows 10 上的 Tensorflow 安装问题

    我正在尝试在 Win 10 计算机上安装 Tensorflow 我成功安装了Python 3 7 然后尝试按照tensorflow org上的安装说明进行操作 执行时 pip install tensorflow 我收到以下错误消息 错误
  • 使用 boto3 将 csv 文件保存到 s3

    我正在尝试写入 CSV 文件并将其保存到 s3 中的特定文件夹 存在 这是我的代码 from io import BytesIO import pandas as pd import boto3 s3 boto3 resource s3 d
  • mypy 错误:赋值中的类型不兼容(表达式的类型为“Dict[, ]”,目标的类型为“List[str]”)

    我尝试过了实例化一个空字典在现有字典的第二层上 然后为其分配一个键值对 但 MyPy 会抛出错误 这是一个最小的示例 当激活 MyPy 检查时它将重现它 result Test something result key result key

随机推荐

  • 为什么不能在 CONTAINS 语句中调用 ISNULL?

    假设我有这样的 SQL 查询 declare input varchar 20 select from myTable where CONTAINS myColumn ISNULL input replacement text 如果我尝试执
  • 如何在此上下文中使用 WebClient.DownloadDataAsync() 方法?

    我的计划是让用户在我的程序中写下电影标题 我的程序将异步提取适当的信息 这样 UI 就不会冻结 这是代码 public class IMDB WebClient WebClientX new WebClient byte Buffer nu
  • Drop() 被 Sortable/Droppable 调用两次

    我这里有这段代码 但我有两个问题 在接收函数中 我们如何获取刚刚放入可排序的元素 不是用来放置新的那个 而是实际放入列表中的那个 由于我找不到它 我决定使用 drop 函数 但现在 为什么该函数被调用两次 我不想那样 sortable dr
  • x86 分页如何工作?

    这个问题旨在填补有关该主题的优质免费信息的真空 我相信一个好的答案将适合一个大的 SO 答案 或者至少适合几个答案 主要目标是为初学者提供足够的信息 以便他们可以自己阅读本手册 并能够理解与分页相关的基本操作系统概念 建议指南 answer
  • 如何将库项目中的 ASP.NET Core 3.0 类型用于共享控制器、中间件等?

    虽然可以通过 NuGet 使用 ASP NET Core 2 2 版本来为共享控制器 中间件等创建库项目 但如何创建能够使用 ASP NET Core 3 0 类型的库 对于包含视图的项目 有一个 Razor 类库 razorclassli
  • Java RMI:连接被拒绝

    我为RMI的客户端编写了以下代码 但得到 java rmi ConnectException Connection refused to host localhost nested exception is java net Connect
  • Vue.js 在组件中使用本地 javascript 文件函数:Uncaught TypeError: __WEBPACK_IMPORTED_MODULE_0__.writeSomething is not a function

    我正在尝试将本地 JS 文件导入到 Vue 应用程序中的单个文件组件中 我的应用程序是由 vue CLI 版本 3 8 2 生成的脚手架 这是我的相关代码片段 应用程序中的所有其他代码与生成的代码相同 path to app vue src
  • Lumenworks Fast Csv Reader - 由于引号字符,读取制表符分隔文件时出现异常错误

    我正在使用 Lumenworks Fast CsvReader 在读取 Kelley Blue Book 的文件时发生异常错误 CSV 似乎在位置 1169 处的记录 1281 字段 5 附近已损坏 该文件以制表符分隔 在那里我发现使用了双
  • Java Char 到其 unicode 十六进制字符串表示形式,反之亦然

    我需要将Java字符的十六进制代码生成为字符串 并稍后再次解析这些字符串 我发现here https stackoverflow com questions 2126378 java convert string uffff into ch
  • 如何在 Vue.js 插槽范围内传递方法

    我在 vuejs 中使用插槽范围 效果很好 我可以将任何我想要的东西传递到插槽中 如下所示
  • pandas中groupby后按条件计数

    df pd DataFrame id 1 1 1 2 2 2 item 200 200 201 333 333 334 page 1 1 2 3 2 2 我想像这样将 df 转换为 df1 df pd DataFrame id 1 1 2
  • Solaris 9 上的 grep 命令

    我在 Solaris 9 上遇到 grep 命令的奇怪行为 例如 我有一个包含两行的主机文件 1 1 1 1 主机 1 2 3 4 主机 MY 我想 grep 仅包含主机字符串的行 而不是包含主机 MY 的其他行 我用 grep Fxq 主
  • iOS 4 通常向后兼容吗?

    我有以下问题 在不久的将来我需要为iPhone编写一些不是很复杂的应用程序 我目前没有 iPhone 因此我计划购买一部用于测试目的 简而言之 iPhone 4 是否允许我测试为旧版 iOS 版本编写的应用程序 有什么陷阱吗 或者我是否必须
  • 按日期过滤 Pandas 数据框

    我有一个带有 日期 列的 Pandas DataFrame 现在我需要过滤掉 DataFrame 中日期在未来两个月之外的所有行 本质上 我只需要保留接下来两个月内的行 实现这一目标的最佳方法是什么 If 日期列是索引 然后使用 loc 进
  • 与您的操作系统或架构不兼容:[电子邮件受保护]

    我使用的是 Ubuntu 15 04 运行以下命令时 npm install fsevents 我收到以下错误 npm WARN optional Skipping failed optional dependency chokidar f
  • NT 事件日志单条消息大小

    谁能告诉我 Windows NT 日志消息的最大大小是多少 我知道可以将事件日志的最大日志大小从 32 MB 重置 我对 NT 事件日志中单个消息可以保存的内存感兴趣 提前致谢 在 Windows Server 2008 中 单个事件日志条
  • JavaFX 过渡动画等待

    这么快 我正在做一个演示计算机图形绘制方法的程序 我需要创建时间线或操作历史记录 例如 placeVertex x y moveVertex newX newY 等 并迭代 向前和向后 自动或手动 我已经通过使用命令设计模式实现了这一点 但
  • WordPress 动态自定义菜单未显示正确的结果

    我正在创建一个动态自定义菜单 显示特定类别的所有帖子链接 例如侧边栏中的菜单小部件 它应该是动态的 这意味着每当我在该类别中发布帖子时 菜单都应该包含我发布的帖子 而无需我在菜单中物理拖放新帖子 这是我的代码 我想要的帖子的类别 ID 4
  • 在Virtualenv环境中安装python-numpy

    我想在 Virtualenv 环境中安装 python numpy 我的系统是Ubuntu 12 04 我的python是2 7 5 首先我安装了 Virtualenv sudo apt get install python virtual
  • 如何只获取Python函数的返回值?

    我正在尝试通过 Python 学习编程 我想知道是否可以只获取函数的返回值而不获取其其他部分 这是代码 比方说 这是主要功能 variable a 5 while variable a gt 0 input user raw input i