我是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 ???
我应该如何返回 rho,c,k,d 和图层,以便我能够例如打印 - 或使用 - 的值 d 列表中的第二项?
print d[1]
答案 0 :(得分:9)
我应该如何返回rho,c,k,d和层[...]?
只需这样做:
return rho, c, k, d, layers
然后你会把它称为
rho, c, k, d, layers = material()
print d[1]
请注意,您返回的内容越多,您就越有可能将它们整合到一个结构中,如dict
(或namedtuple
或类,等)
答案 1 :(得分:6)
return
可以返回多个值:
return rho, c, k, d, layers
这将使material
返回包含rho
,c
,k
,d
和layers
的元组。
完成此操作后,您可以通过解压缩访问material
返回的值:
rho, c, k, d, layers = material()
这是一个演示:
>>> 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
>>>
答案 2 :(得分:0)
def return_values():
# your code
return list1, list2
并获取如下所示的值
value1, value2 = return_values()
答案 3 :(得分:0)
def function_returning_multiple_list():
l1=[]
l2=[]
l3=[]
return (l1,l2,l3)
def another_fucntion():
list1,list2,list3=function_returning_multiple_list()
print list2