如何在Python程序中调用/执行其他函数

2024-09-23 06:26:30 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,我的Python脚本有些问题。首先,如何调用同一程序中的另一个函数。例如,我有以下功能:

def Funktion1 ():
    a=(1-provision)*m
    b=(1-provision)*satmenge

以及功能

def Abfunktion ():
    c=a*2

如何从Funktion1()开始: 直接到Abfunktion():自动。你知道吗

整个代码如下:

Gewinn ():
    fixkosten=int(raw_input("Was sind die Fixkosten:"))
    einkaufspreis=int(raw_input("Die Variable Kosten"))
    propreis=eval(raw_input("Der Max preis:"))
    satmenge=int(raw_input("Wie viele verkaufst du"))
    provision=eval(raw_input("Wie viel bekommt der Haendler"))
    y=50002
#if fixkosten>0 and variablekosten>0:


def Steigung ():
        Propreis=eval(raw_input("Dein hoechster Preis:"))
        Satmenge=eval(raw_input("Wie viele leute werden es kaufen:"))
        if propreis >0 and satmenge >0:
                        m=(-1*Satmenge/Propreis)


def Funktion1 ():
    a=(1-provision)*m
    b=(1-provision)*satmenge

def Abfunktion ():
   c=a*2

def Nullstelle ():
    p=c/(-1*b)

def GewinnErgebniss ():
    gewinn=p*y-(fixkosten+p*y+provision*p*y)
    if gewinn<0:
        print("Dein verlust ist" ,gewinn , "I will not be investing,     I'M OUT!")
    else:
        print("Dein Gewinn ist" ,gewinn , "I think i'll make you an     offer")

Tags: 功能inputrawifdefevalintprovision
3条回答
def Funktion1 ():
   a=(1-provision)*m
   b=(1-provision)*satmenge
   Abfunktion ()

你的问题不太清楚,但我会尽量回答你的问题。您需要向函数中添加return语句并向其传递值。例如

def Funktion1 (provision, m, satmenge):
    a=(1-provision)*m
    b=(1-provision)*satmenge
    c = Abfunktion(a)
    return a, b, c

def Abfunktion (a):
    c=a*2
    return c

Funktion1(provision=1, m=2, satmenge=3)

将执行Funktion1并调用Abfunktion。你知道吗

我建议您阅读更多关于python如何工作的内容for example here

您可以按以下方式修改代码以使其正常工作。但正如上面提到的,这是一个非常难看的解决方案,因为您声明了许多在全局范围内使用过一次的变量。更优雅的解决方案是从函数中返回变量,并将其用作链中下一个函数的参数。你知道吗

基本解决方案:

#functions declaration
def Gewinn ():
    global fixkosten
    fixkosten=int(raw_input("Was sind die Fixkosten:"))
    global einkaufspreis
    einkaufspreis=int(raw_input("Die Variable Kosten"))
    global propreis 
    propreis=eval(raw_input("Der Max preis:"))
    global satmenge 
    satmenge=int(raw_input("Wie viele verkaufst du"))
    global provision 
    provision=eval(raw_input("Wie viel bekommt der Haendler"))
    global y
    y=50002
#if fixkosten>0 and variablekosten>0:


def Steigung ():
    Propreis=eval(raw_input("Dein hoechster Preis:"))
    Satmenge=eval(raw_input("Wie viele leute werden es kaufen:"))
    global m
    if propreis >0 and satmenge >0:
                    m=(-1*Satmenge/Propreis)

def Funktion1 ():
    global a
    a=(1-provision)*m
    global b
    b=(1-provision)*satmenge


def Abfunktion ():
    global c
    c=a*2


def Nullstelle ():
    global p
    p=c/(-1*b)


def GewinnErgebniss ():
    gewinn=p*y-(fixkosten+p*y+provision*p*y)
    if gewinn<0:
        print("Dein verlust ist" ,gewinn , "I will not be investing,     I'M OUT!")
    else:
        print("Dein Gewinn ist" ,gewinn , "I think i'll make you an     offer")


#actual place where functions are called
if __name__ == '__main__':
    Gewinn()
    Steigung()
    Funktion1()
    Abfunktion()
    Nullstelle()
    GewinnErgebniss()

更优雅的解决方案:

#functions declaration
def Gewinn ():
    fixkosten=int(raw_input("Was sind die Fixkosten:"))
    einkaufspreis=int(raw_input("Die Variable Kosten"))
    propreis=eval(raw_input("Der Max preis:"))
    satmenge=int(raw_input("Wie viele verkaufst du"))
    provision=eval(raw_input("Wie viel bekommt der Haendler"))
    y=50002
    #return multiple values as a tuple
    return (fixkosten, einkaufspreis, propreis, satmenge, provision, y)

def Steigung (propreis, satmenge):
    Propreis=eval(raw_input("Dein hoechster Preis:"))
    Satmenge=eval(raw_input("Wie viele leute werden es kaufen:"))
    if propreis >0 and satmenge >0:
        m=(-1*Satmenge/Propreis)
    return m


def Funktion1 (m, satmenge):
    a=(1-provision)*m
    b=(1-provision)*satmenge
    return (a, b)


def Abfunktion (a):
    c=a*2
    return c


def Nullstelle (b, c):
    p=c/(-1*b)
    return p


def GewinnErgebniss (fixkosten, provision, p, y):
    gewinn=p*y-(fixkosten+p*y+provision*p*y)
    if gewinn<0:
        print("Dein verlust ist" ,gewinn , "I will not be investing,     I'M OUT!")
    else:
        print("Dein Gewinn ist" ,gewinn , "I think i'll make you an     offer")


#actual place where functions are called
if __name__ == '__main__':
    (fixkosten, einkaufspreis, propreis, satmenge, provision, y) = Gewinn()
    m = Steigung(propreis, satmenge)        
    (a, b) = Funktion1(m, satmenge)
    c = Abfunktion(a)        
    p = Nullstelle(b, c)
    GewinnErgebniss(fixkosten, provision, p, y)

所以再一次。在脚本中,您刚刚定义了一系列函数。你得找个地方打电话。在我的脚本中,我在所有定义的末尾调用它。你必须确保你在一个函数的局部作用域中定义的所有变量对其他想要使用它的函数都是可见的。使其可见的常见方法是从函数中返回它。你知道吗

相关问题 更多 >