Python 将变量从一个函数调用到另一个函数
基本上,我想把变量‘en’从‘energy’函数调用为‘TNT’函数。我该怎么做呢Python 将变量从一个函数调用到另一个函数,python,Python,基本上,我想把变量‘en’从‘energy’函数调用为‘TNT’函数。我该怎么做呢 class richter_Stuff(): def energy(self): richter = float(input("Enter a Richter scale value from 1 to 10: ")) if richter >= 1.0 and richter <= 10.0 : en = 10**(1.5 *
class richter_Stuff():
def energy(self):
richter = float(input("Enter a Richter scale value from 1 to 10: "))
if richter >= 1.0 and richter <= 10.0 :
en = 10**(1.5 * richter + 4.8)
print "For a Richter scale value of %.2f, the energy equivalent in Joules is: %.2f" %(richter, en)
return
else:
print "You have entered an incorrect number. Please try again"
energy()
def TNT(self, energy):
one_tonne_tnt_to_joules = 4.184*(10**9)
TNT = en/one_tonne_tnt_to_joules
print TNT
TNT()
class richter\u Stuff():
def能量(自):
里氏=浮点(输入(“输入1到10之间的里氏刻度值:”)
如果里氏>=1.0且里氏,您可以在能量函数中返回en
,并将其分配给TNT中的其他变量或使用global
s或,因为您使用的是类,所以您也可以使用self.en
作为变量名,而不仅仅是en
,以指出en
在那一类的范围
在这种情况下,最好的方法可能是使用class
的建议
class richter_Stuff():
def energy(self):
richter = float(input("Enter a Richter scale value from 1 to 10: "))
if richter >= 1.0 and richter <= 10.0 :
self.en = 10**(1.5 * richter + 4.8)
print "For a Richter scale value of %.2f, the energy equivalent in Joules is: %.2f" %(richter, self.en)
else:
print "You have entered an incorrect number. Please try again"
self.energy()
def TNT(self):
en = self.en
one_tonne_tnt_to_joules = 4.184*(10**9)
TNT = en/one_tonne_tnt_to_joules
print TNT
richt = richter_Stuff()
richt.energy()
richt.TNT()
class richter\u Stuff():
def能量(自):
里氏=浮点(输入(“输入1到10之间的里氏刻度值:”)
如果里氏>=1.0且里氏,您可以在能量函数中返回en
,并将其分配给TNT中的其他变量或使用global
s或,因为您使用的是类,所以您也可以使用self.en
作为变量名,而不仅仅是en
,以指出en
在那一类的范围
在这种情况下,最好的方法可能是使用class
的建议
class richter_Stuff():
def energy(self):
richter = float(input("Enter a Richter scale value from 1 to 10: "))
if richter >= 1.0 and richter <= 10.0 :
self.en = 10**(1.5 * richter + 4.8)
print "For a Richter scale value of %.2f, the energy equivalent in Joules is: %.2f" %(richter, self.en)
else:
print "You have entered an incorrect number. Please try again"
self.energy()
def TNT(self):
en = self.en
one_tonne_tnt_to_joules = 4.184*(10**9)
TNT = en/one_tonne_tnt_to_joules
print TNT
richt = richter_Stuff()
richt.energy()
richt.TNT()
class richter\u Stuff():
def能量(自):
里氏=浮点(输入(“输入1到10之间的里氏刻度值:”)
如果里氏>=1.0且里氏以最字面的方式回答您的问题:energy()
应该是self.energy(en)
。但如果你理解课堂,你就会知道。您的代码在其他方面也有问题
你真的需要考虑你想要实现的目标:
读里氏震级。如果错误,请重读
根据刻度计算焦耳
根据焦耳计算TNT量
打印信息
重复一遍
您的代码应该反映这一点。如果你看一看更严格的里希特。读一读循环,那就是发生的事情
代码中词语的选择表明对函数和数据点之间的区别存在混淆。这就是为什么energy
被重命名为calc\u energy
和TNT
为calc\u TNT
的原因,因为它们产生与其输入相关的输出;它们本身并不是输出。相关变量(如richter
、energy
和TNT
)应存在于相同的范围内,因此它们在相同的循环中计算
以下内容建立在以下基础上
等级更严格的里希特(对象):
tnt焦耳比=4.184*(10**9)
定义初始化(自):
self.continue\u reading=True
def read_循环(自):
当self.continue\u阅读时:
里氏震级=输入(“输入1到10之间的里氏震级值:”)
里希特=浮动(里希特街)
如果里氏震级<1.0或里氏震级>10.0:
打印“您输入的号码不正确。请重试”
持续
能量=自身计算能量(里氏)
TNT=自计算TNT(能量)
“打印”对于%.2f的里氏标度值,以焦耳为单位的能量当量为:%.2f“%(里氏,能量)
打印“那是%.2f吨TNT!!!%TNT
def calc_能量(自身,里氏):
能量=10**(1.5*里氏+4.8)
返回能量
def calc_TNT(自身、能量):
TNT=能量/自身TNT焦耳比
返回TNT
里希特=更严格的里希特()
richt.read_loop()
从字面上回答你的问题:energy()
应该是self.energy(en)
。但如果你理解课堂,你就会知道。您的代码在其他方面也有问题
你真的需要考虑你想要实现的目标:
读里氏震级。如果错误,请重读
根据刻度计算焦耳
根据焦耳计算TNT量
打印信息
重复一遍
您的代码应该反映这一点。如果你看一看更严格的里希特。读一读循环,那就是发生的事情
代码中词语的选择表明对函数和数据点之间的区别存在混淆。这就是为什么energy
被重命名为calc\u energy
和TNT
为calc\u TNT
的原因,因为它们产生与其输入相关的输出;它们本身并不是输出。相关变量(如richter
、energy
和TNT
)应存在于相同的范围内,因此它们在相同的循环中计算
以下内容建立在以下基础上
等级更严格的里希特(对象):
tnt焦耳比=4.184*(10**9)
定义初始化(自):
self.continue\u reading=True
def read_循环(自):
当self.continue\u阅读时:
里氏震级=输入(“输入1到10之间的里氏震级值:”)
里希特=浮动(里希特街)
如果里氏震级<1.0或里氏震级>10.0:
打印“您输入的号码不正确。请重试”
持续
能量=自身计算能量(里氏)
TNT=自计算TNT(能量)
“打印”对于%.2f的里氏标度值,以焦耳为单位的能量当量为:%.2f“%(里氏,能量)
打印“那是%.2f吨TNT!!!%TNT
def calc_能量(自身,里氏):
能量=10**(1.5*里氏+4.8)
返回能量
def calc_TNT(自身、能量):
TNT=能量/自身TNT焦耳比
返回TNT
里希特=更严格的里希特()
richt.read_loop()
@dilbert啊,当然。我只是在回答这个问题。添加另一个答案的链接以摆脱递归,因为它比我以前解释得更好。@dilbert啊,当然了。我只是一个孩子