【问题标题】:How to use a variable in an if statement that was declared in a function. Python如何在函数中声明的 if 语句中使用变量。 Python
【发布时间】:2021-08-02 09:34:05
【问题描述】:

我正在尝试用 Python Tkinter 制作一个简单的计算器。您可以在下面看到一段代码和其中的变量“sign”。我希望该变量作为一种告诉程序我的计算器的加法按钮被按下的方式。

def addition():
    sign = "+"
    first_number = e.get()
    global first_converted
    first_converted = int(first_number)
    e.delete(0, END)

在代码中,我想创建一个函数,其中包含所有按下按钮场景的“if”语句,例如加法、除法、乘法等。但是,Python 看不到变量“符号”。

def count():
    if sign == "+":
        pass
    e.delete(0, END)
    pass

我尝试在代码开头将变量声明为全局变量,但没有帮助。

【问题讨论】:

  • 你能分享一个minimal reproducible example
  • 变量特定于某些范围addition 中的 signcount 中的 sign 不同。您应该将变量引用的 作为 参数 传递给需要它们的其他函数。虽然您也可以将值“传递”为 global,但在需要修改值时这是有问题的。
  • 将符号定义为全局变量怎么样?
  • 我强烈建议重新构建程序,这样就不需要使用全局变量,但如果必须,sign 必须在分配给它的任何函数中声明为全局变量。
  • 这能回答你的问题吗? Python function global variables?

标签: python


【解决方案1】:

我只想传递sign 参数,就像@MisterMiyagi 描述的那样:

def addition():
    sign = "+"
    first_number = e.get()
    global first_converted
    first_converted = int(first_number)
    e.delete(0, END)
    return sign #Returns sign

sign = addition()

def count(sign): #Takes sign as input
    if sign == "+":
        pass
    e.delete(0, END)
    pass

count(sign)

或者让它全球化

sign = "+" #Or, by convention SIGN = "+"
def addition():
    first_number = e.get()
    global first_converted
    first_converted = int(first_number)
    e.delete(0, END)



def count(): #Takes sign as input
    if sign == "+":
        pass
    e.delete(0, END)
    pass

【讨论】:

    猜你喜欢
    • 2021-12-27
    • 2014-04-12
    • 1970-01-01
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-21
    相关资源
    最近更新 更多