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 :-)
解决方案
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 {}