Python 不能返回函数值?

标签 python

<分区>

我有这个代码:

x = 0
def function(x):
    while True:
        x += 1
        if x == 100001:
            print("x = %d" % x)
            return x
            break
function(x)
print("x = %d" % x)

我得到这个结果:

x = 100001
x = 0

为什么它不打印 x = 100001 两次? x 不应该在函数外部的代码中具有与 100001 相同的值吗?

最佳答案

因为整数是 immutable在 Python 中,不要指望函数会改变它的值。

因为你已经从函数返回 x,你只需要像这样捕获它:

if x == 0:
    x = function(x)

顺便说一句,你可以在 return 之后去掉 break 语句,它没有意义,因为你 return x 在它上面一行。

关于Python 不能返回函数值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44826853/

相关文章:

python - 如何在 vscode 中运行几行选定的代码?

python - 根据特定元素拆分具有多个列表的列表

python - 当我们将 [1] 放在函数末尾和元组末尾时,它是什么意思?

python - OPENGL 用户界面编程

执行将进程作为守护进程运行的 shell 脚本时,Python 挂起

python - 当基于补丁的工作流程失败导致您的存储库中出现 .rej block 时,是否有任何补丁工具可以与 Mercurial 配合良好

python - 在 PiCloud 环境服务器上使用共享库

python - Django-Filter:ModelChoiceFilter 使用与当前用户相关的查询集

Python 泛型和子类

python - 使用 selenium Web 驱动器 python 单击 href=javascript 时出现问题