这是我正在研究的问题的过度简化版本。它是原始的和基本的,但我刚开始使用python,并且想确保我的基础知识得到了理顺。 我似乎无法获得所需的输出。例如:当a()生成的列表包含' 2'时,当我调出b()时,它不会给我所需的y值,在这种情况下应为2。
from random import choice, sample
def a():
a = sample(range(0,5),2)
a.append(1)
return a
def b():
if 3 in a():
y = 1
elif 2 in a():
y = 2
else:
pass
return y
print a()
print b()
答案 0 :(得分:0)
您的计划存在一些问题,最值得注意的是,您在a
内呼叫b
,我认为您不想这样做。在b
内,您将重新生成新的随机值列表,然后检查此列表的内容。
此外,您不应在pass
语句中使用else
,因为您可以想象永远不会定义y
的可能性,因此您将无法返回某些内容。我建议如下:
from random import choice, sample
def a():
a = sample(range(0,5),2)
a.append(1)
return a
def b(a):
if 3 in a:
return 1
elif 2 in a:
return 2
else:
return
a_output = a()
print a_output
print b(a_output)
然而,这是检查列表内容的奇怪方法。在不知道程序的目的的情况下,很难建议另一种方法来编写更多的pythonic函数。