Chr*_*fer 3 python return function list
我是Python的新手,我正在尝试创建一个函数,该函数使用来自用户输入的不同材料参数创建列表,如下面的代码所示.
def material():
layers = int(raw_input("State the number of material layers in the wall (0 for default material): "))
rho = [] # Density [kg/m3]
c = [] # Heat capacity [J/(kg K)]
k = [] # Heat conductivity [W/(m K)]
#a = [] # Thermal diffusivity [m2/s]
d = [] # Thickness of material [m]
# Saveing material properties
if layers == 0:
rho.append(2300)
c.append(900)
k.append(1.6)
d.append(3.2)
layers = 1
else:
for i in range(layers):
print "\n" "Define thermal properties for material", i+1,"(starting from left)"
rho.append(float(raw_input("Density [kg/m3]: ")))
c.append(float(raw_input("Heat capacity [J/(kg K)]: ")))
k.append(float(raw_input("Heat conductivity [W/(m K)]: ")))
d.append(float(raw_input("Thickness [m]: ")))
return ???
Run Code Online (Sandbox Code Playgroud)
我应该如何返回rho,c,k,d和层,以便我能够打印 - 或者使用 - 例如d列表中的第二项?
print d[1]
Run Code Online (Sandbox Code Playgroud)
DSM*_*DSM 11
我应该如何返回rho,c,k,d和层[...]?
只需这样做:
return rho, c, k, d, layers
Run Code Online (Sandbox Code Playgroud)
然后你会称之为
rho, c, k, d, layers = material()
print d[1]
Run Code Online (Sandbox Code Playgroud)
请注意,您返回的内容越多,您就越有可能将它们全部包装成某个结构(如dict(或namedtuple,或类等))
return 如果用逗号分隔它们,则可以返回多个值:
return rho, c, k, d, layers
Run Code Online (Sandbox Code Playgroud)
这将使material返回包含一个元组rho,c,k,d,和layers.
完成此操作后,您可以material通过解压缩访问返回的值:
rho, c, k, d, layers = material()
Run Code Online (Sandbox Code Playgroud)
这是一个演示:
>>> def func():
... return [1, 2], [3, 4], [5, 6]
...
>>> a, b, c = func()
>>> a
[1, 2]
>>> b
[3, 4]
>>> c
[5, 6]
>>> a[1]
2
>>>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25004 次 |
| 最近记录: |