Python 这是否正确使用';在';在条件语句中?
这是我正在处理的问题的一个过于简化的版本。这是粗糙的和基本的,但我刚开始使用python,我想确保我已经理顺了我的基本知识。 我似乎不能用这个得到想要的输出。例如:当a()生成的列表包含“2”时,当我调用b()时,它不会给我所需的y值,在本例中,y值应该是2Python 这是否正确使用';在';在条件语句中?,python,Python,这是我正在处理的问题的一个过于简化的版本。这是粗糙的和基本的,但我刚开始使用python,我想确保我已经理顺了我的基本知识。 我似乎不能用这个得到想要的输出。例如:当a()生成的列表包含“2”时,当我调用b()时,它不会给我所需的y值,在本例中,y值应该是2 from random import choice, sample def a(): a = sample(range(0,5),2) a.append(1) return a def b(): if
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()
您的程序有一些问题,最明显的是,您正在
b
中调用a
,我认为您不想这样做。在b
中,您将重新生成一个新随机值列表,然后检查该列表的内容
另外,您不应该在else
语句中使用pass
,因为您可以想象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)
然而,这是一种检查列表内容的奇怪方式。在不知道程序用途的情况下,很难推荐编写更具Python功能的替代方法。能否请您对问题进行编辑,并描述所需的输出是什么?您可以在
b()
中测试3和2是否属于两个不同的示例,这真的是您的意思吗?我想要b()函数,如果a()中的列表包含3,则为“1”;如果列表包含2,则为“2”。我希望它在同一个列表中运行。然后不要调用a()
两次。执行my_sample=a()
,然后如果my_sample中有3个:。。。我的样本中的elif 2:代码>@Thierrylahuille,啊,非常感谢你。