PYTHON:如何将我的变量调用到其他函数? [关闭]

Posted

技术标签:

【中文标题】PYTHON:如何将我的变量调用到其他函数? [关闭]【英文标题】:PYTHON: How can I call my variable to other function? [closed] 【发布时间】:2021-12-16 16:30:39 【问题描述】:
try:                    
    def variables():
        OPERATORS = set(['+', '-', '*', '/', '(', ')', '^']) 
        PRIORITY = '+':1, '-':1, '*':2, '/':2, '^':3

    def formula1(expression):
    variables()
    stack = []
    output = ''
    for ch in expression:
        if ch not in OPERATORS:
            output+= ch
        elif ch=='(': 
            stack.append('(')
        elif ch==')':   
            while stack and stack[-1]!= '(':    
                output+=stack.pop() 
            stack.pop() 
        else:   
            while stack and stack[-1]!='(' and PRIORITY[ch]<=PRIORITY[stack[-1]]:
                output+=stack.pop()
                stack.append(ch)
        while stack:
            output+=stack.pop()
            return output
    
    expression = input('Enter infix expression: ')
    print('infix expression: ',expression)
    print('postfix expression: ',formula1(expression))
except Exception as e:
    print (e)

示例输出:

输入中缀表达式:(a+b)

中缀表达式:(a+b)

名称“操作员”未定义

[程序结束]

我想调用函数变量的全部内容。我的任务是用 2 个函数对后缀做一个中缀。但我之前所做的只是 1 个功能,它工作正常。我想让它成为 2 个功能,但出现错误,我不知道如何修复它。

【问题讨论】:

您可以将这些变量保留为全局变量对吗? 将它们设为全局变量。 摆脱这个def variables(): JacksonB 先生,我的任务是使用该程序创建 2 个函数 :( 这就是为什么我创建了 2 个函数,但是如何创建?是否可以在这 2 个函数中执行附加或弹出操作? @MarkPauloCruz,我已经编辑了我的答案,你问我是否可以使用两个功能。如果您想使用两个功能,那么您可以尝试。 【参考方案1】:
def variables(): # remove this variables function
OPERATORS = set(['+', '-', '*', '/', '(', ')', '^']) 
PRIORITY = '+':1, '-':1, '*':2, '/':2, '^':3

删除该函数并进行必要的缩进。

如果你想使用两个函数?

try:
    OPERATORS, PRIORITY=None, None                 
    def variables():
        global OPERATORS
        global PRIORITY
        OPERATORS = set(['+', '-', '*', '/', '(', ')', '^']) 
        PRIORITY = '+':1, '-':1, '*':2, '/':2, '^':3

    def formula1(expression):
    variables()
    stack = []
    output = ''
    for ch in expression:
        if ch not in OPERATORS:
            output+= ch
        elif ch=='(': 
            stack.append('(')
        elif ch==')':   
            while stack and stack[-1]!= '(':    
                output+=stack.pop() 
            stack.pop() 
        else:   
            while stack and stack[-1]!='(' and PRIORITY[ch]<=PRIORITY[stack[-1]]:
                output+=stack.pop()
                stack.append(ch)
        while stack:
            output+=stack.pop()
            return output
    
    expression = input('Enter infix expression: ')
    print('infix expression: ',expression)
    print('postfix expression: ',formula1(expression))
except Exception as e:
    print (e)

【讨论】:

以上是关于PYTHON:如何将我的变量调用到其他函数? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

python如何引用其他模块中类的方法中的变量?

Python入门之经典函数实例——第1关:递归函数 - 汉诺塔的魅力

Python入门之经典函数实例——第1关:递归函数 - 汉诺塔的魅力

如何将数组变量从 VBA 传递到 vb.net 函数

在MFC中,一个类如何调用其他类的变量和函数??

Python入门之函数调用——第2关:函数正确调用 - 得到想要的结果