if语句在Python中有两个条件

时间:2014-03-19 04:07:29

标签: python if-statement syntax conditional-statements

我正在编写一个简单的控制台程序,以帮助自己和一些地质学家进行岩石样本分析。我们的讲师为我们提供了一个有助于指定样品特征的流程图。我试图把它变成一个控制台程序。

我的问题是第9行的if语句是否有可能采取两个条件,如果有,我是否正确写了?

   def igneous_rock(self):
    print "Welcome to IgneousFlowChart"
    print "Assuming you are looking at an igneous rock, please choose the "
    print "option which best describes the sample:"
    print "1. Coherent 2. Clastic"

    choice1 = raw_input("> ")

    if choice1 = '1', 'Coherent':    # this is the line in question!
        return 'coherent'
    elif choice1 = '2', 'Clastic':
        return 'clastic'
    else:
        print "That is not an option, sorry."
        return 'igneous_rock'

提前致谢: - )

2 个答案:

答案 0 :(得分:5)

您可以构建if条件应评估为Truthy的元素列表,然后使用in运算符来检查choice1的值是否为if choice1 in ['1', 'Coherent']: ... elif choice1 in ['2', 'Clastic']: ... 在这个元素列表中,像这样

if choice1 in ('1', 'Coherent'):
...
elif choice1 in ('2', 'Clastic'):
...

您也可以使用元组代替列表

if choice1 in {'1', 'Coherent'}:
...
elif choice1 in {'2', 'Clastic'}:
...

如果要检查的项目列表很大,那么您可以构建一个这样的集合

set

set提供比列表或元组更快的查找。您可以使用set literal syntax {}

创建{{1}}

答案 1 :(得分:2)

if choice1 in ('1', 'Coherent'):