if statement with two conditions in Python

a 夏天 提交于 2019-12-02 11:09:17

问题


I am writing a simple console program to help myself and some fellow geology students with rock sample analysis. Our lecturer provided us with a flow chart that helps to specify the characteristics of the sample. I am attempting to make this into a console program.

My question is whether it is possible for the if statement on line 9 to take two conditions and if so have I written it correctly?

   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'

Thanks in advance :-)


回答1:


You can construct the list of elements for which the if condition should evaluate to Truthy, and then use in operator like this, to check if choice1's value is in that list of elements, like this

if choice1 in ['1', 'Coherent']:
...
elif choice1 in ['2', 'Clastic']:
...

Instead of lists, you can use tuples as well

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

If the list of items to be checked is huge, then you can construct a set like this

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

sets offer faster lookup than lists or tuples. You can create sets with set literal syntax {}




回答2:


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


来源:https://stackoverflow.com/questions/22496001/if-statement-with-two-conditions-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!