【问题标题】:How do I bring a value out of a function? [duplicate]如何从函数中获得价值? [复制]
【发布时间】:2020-09-05 01:58:45
【问题描述】:
def xdgt(x):
    if x is "m":
        a = True
        print(a)
    else:
        a = False
        print(a)

x = input("Are you Male or Female? please only input m or f:")    
xdgt(x)
print(a)

结果:

Traceback(最近一次调用最后一次):文件 “/tmp/sessions/dd8fb527f68c80d1/main.py”,第 10 行,在 print(a) NameError: name 'a' is not defined

【问题讨论】:

  • 如果不知道你是如何格式化你的 python 代码,很难评论。
  • 不要使用is比较字符串,使用==。总之,你的函数应该写成return x == 'm'

标签: python-3.x


【解决方案1】:

您似乎希望函数返回值。在这种情况下,您可以按如下方式更改代码:

def xdgt(x):
    if x is "m":
        a = True
    else:
        a = False
    return a

x = input("Are you Male or Female? please only input m or f:")

return_val= xdgt(x)
print(return_val)

外卖:

您应该将其返回并将其存储在一个变量中,以便您可以使用它来执行您想要的功能,例如在这种情况下打印值,而不是在函数中打印值。

【讨论】:

  • 是的,这正是我所需要的。谢谢
【解决方案2】:

如果要在函数外部使用局部变量 a,请使用 global

def xdgt(x):
    global a
    if x == 'm':
        a = True
    else:
        a = False

x = input("Are you Male or Female? please only input m or f:")

xdgt(x)

print(a)    

【讨论】:

    【解决方案3】:

    在您的函数中添加return a

    def xdgt(x):
    
      if x is "m":
    
        a = True
    
      else:
    
        a = False
      return a
    
    a = xdgt(x)
    print(a) 
    
    

    【讨论】:

    • 切中要害,谢谢
    猜你喜欢
    • 1970-01-01
    • 2021-07-31
    • 2019-03-05
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 2020-06-02
    • 2019-12-23
    • 1970-01-01
    相关资源
    最近更新 更多