所以,我的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")
答案 0 :(得分:0)
def Funktion1 ():
a=(1-provision)*m
b=(1-provision)*satmenge
Abfunktion ()
答案 1 :(得分:0)
你的问题不是很清楚,但我会尽力回答我的想法。您需要将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函数wor for example here
的内容答案 2 :(得分:0)
您可以按如下方式修改代码,以使其正常工作。但正如上面提到的那样,这是一个非常难看的解决方案,因为您声明了许多在全局范围内使用过一次的变量。更优雅的解决方案是从函数返回变量,并将其用作链中下一个函数的参数。
基本解决方案:
#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)
再一次。在您的脚本中,您刚刚定义了一堆函数。你需要从某个地方调用它。在我的脚本中,我在所有定义的最后调用它。并且您必须确保在函数的本地范围中定义的所有变量对于想要使用它的其他函数是可见的。使其可见的常用方法是从函数中返回它。