我是编程新手,所以这个问题可能很愚蠢。
我需要将Tr1
的值引入Bzero1
函数。当我运行模块时,我得到以下结果:
。
该程序未运行Bzero1
功能,我不知道为什么。是因为我没有正确地引入Tr1
值或其他什么?我希望Bzero1
执行操作0.083-(0.422/Tr1**1.6)
,并从Tr1
的结果中获取T/Tc1
。
我非常感谢你的帮助。
T = float(input("Introduce system temperature in Kelvin: "))
print("System temperature is: ", T)
Tc1 = float(input("Introduce critical temperature of component 1: "))
print("Critical temperature of component 1 is: ", Tc1)
def Tr1(T, Tc1):
print("Relative temperature 1: ", T/Tc1)
Tr1 = Tr1(T, Tc1)
def Bzero1(Tr1):
print("Bzero 1: ", 0.083-(0.422/Tr1**1.6))
答案 0 :(得分:0)
请勿替换Tr1
函数值,以避免此类替换:
Tr1_value = Tr1(T, Tc1)
使用代码
调用Bzero1
函数
Bzero1(Tr1_value)
修改Tr1
以返回值:
def Tr1(T, Tc1):
result = T/Tc1
print("Relative temperature 1: ", result)
return result
另外,我建议你看一下python official tutorial - 在那里你可以学到很多关于python ...
祝你好运!
答案 1 :(得分:0)
def
只定义一个函数,而不是调用它。 E.g。
def foo(a):
print a * 2
表示现在有一个函数foo
接受参数a
。 a
中的foo(a)
是内部函数的名称。
所以在你的情况下
def Bzero1(Tr1):
print("Bzero 1: ", 0.083-(0.422/Tr1**1.6))
将函数Bzero1定义为参数Tr1
,但不调用它。您需要调用该函数,就像您调用Tr1
:
Bzero1(Tr1)
你可以看到这种方式很快就会混淆,因为它是函数之外的变量,它是函数内部的变量。因此,最好在外部程序v.s.中为变量使用不同的名称。内部功能。
以下是一些您可能会觉得有用的最佳做法:
通常最好首先定义所有函数,然后执行程序的主代码,而不是混合函数定义和主程序。
另一个最佳实践是使函数仅计算输入的输出,并在其他地方处理输出。这样,您可以在程序的其他部分重用功能,同时始终控制输出到用户的时间和内容。
最后,您通常不应重新分配名称,例如Tr1 = Tr1(...)
表示Tr1
现在不再是函数的名称,而是Tr1返回的结果的名称。简而言之,为不同的事物使用不同的名称。
应用这些提示,您的代码可能如下所示:
# function definitions first
def Tr1(vt, vtc1):
return vt/vtc1
def Bzero1(vtr1):
return 0.083-(0.422 / vtr1 ** 1.6)
# get user input
T = float(input("Introduce system temperature in Kelvin: "))
print("System temperature is: ", T)
vTc1 = float(input("Introduce critical temperature of component 1: "))
print("Critical temperature of component 1 is: ", vTc1)
# run calculations
vTr1 = Tr1(T, vTc1)
vBz1 = Bzero1(vTr1)
# print output
print("Relative temperature 1: ", vTr1)
print("Bzero 1: ", vBz1)
注意强>
由于我不知道变量的语义含义,我刚才使用小写字母v
作为前缀 - 通常最好使用有意义的名称,如temperature
或{{1} }和temp1
等。程序不是数学论文。