这是正确使用''在条件声明?

时间:2018-04-16 17:21:35

标签: python

这是我正在研究的问题的过度简化版本。它是原始的和基本的,但我刚开始使用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()

1 个答案:

答案 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函数。