【问题标题】:Assigned value to variable in function, variable undefined after function call [duplicate]为函数中的变量赋值,函数调用后变量未定义[重复]
【发布时间】:2020-09-16 03:54:47
【问题描述】:

我想要做的是有一个函数来检查一些条件并根据哪个条件为真分配一个值。但是函数中的变量赋值不影响外面的值。 (范围)

虽然下面的代码不起作用,但有什么方法可以不必一次又一次地编写 if-elif 块?

def calc():
    if o==1:
        z=x+y
    elif o==2:
        z=x-y

calc()
print(z)

【问题讨论】:

  • 应该在scopes 等上阅读更多内容。我强烈建议你回到你学习 Python 的地方,问问老师或阅读材料以更好地了解如何创建变量、范围和函数。
  • @Torxed 这说明了为什么它不起作用,谢谢!我自己正在学习它,刚刚开始,猜想我尝试了一些超出我深度的东西。知道如何实现我的目标吗?
  • 我是自学成才的,我只是对我需要做什么有一个非常明确的目标,然后我将项目分解成碎片。例如,簿记。我知道我需要存储,用谷歌搜索“python 存储数据”,然后出现了 sqlite,然后我需要一个 UI,所以我用谷歌搜索了“python builtin ui”,发现了一些与我所需要的相差不远的示例(基本输入和显示结果)。然后我才开始寻找和分析东西。这些天来,您拥有可以调试和单步执行代码 (pycharm) 的 IDE,而我当时没有,所以 print() 是我的朋友。看看别人做了什么,从小事做起!

标签: python function user-defined-functions variable-assignment


【解决方案1】:

这在计算机科学界被称为scope ...您的作业超出了主程序空间的scope

你应该只返回值

def calc():
    if o==1:
        z=x+y
    elif o==2:
        z=x-y
    return z

y = calc()
print(y)

【讨论】:

    猜你喜欢
    • 2018-06-09
    • 1970-01-01
    • 2013-11-27
    • 2015-03-21
    • 2015-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多