Python Programming Decision Structures
Often when I do programming and use decisions structures (along with raw input), the answer I pick is ignored and goes to the first 'if' statement and displays the output for that.
Solution 1:
You have to do
ifoptionOne== "one"oroptionOne== "One"oroptionOne== "ONE":
or shorter - converting text to lower case
optionOne = optionOne.lower()
if optionOne == "one":
# ...elif optionOne == "two":
# ...
If you have different words then you can use in
optionOne = optionOne.lower()
if optionOne in ("one", "1"):
# ...elif optionOne in ("two", "2"):
# ...
BTW: Code
if optionOne=="one" or "One" or "ONE":
is treated as
if (optionOne == "one") or ("One") or ("ONE")
and "One"
(and "ONE"
) is treated as True
so you have
if (optionOne == "one") orTrueorTrue:
which always is True
Solution 2:
The error is here:
if (optionOne=="one" or "One" or "ONE"):
In Python an empty string(or sequence) is considered False
while a string(or sequence with values) is considered True
.
>>> bool('')
False>>> bool('One')
True
>>>'two'=='one'or'One'or"ONE"'One'
In above comparison 'two'=='one'
is False
but False or 'One'
will return 'One'
which is True
.
Implement it like this:
score=0whileTrue:
optionOne=raw_input("Please pick one of the options!")
if (optionOne in ["one", "One", "ONE"]):
print"You have succesfully sneaked out without alerting your parents!"print"Your current score is " + str(score)
breakelif (optionOne in ["two", "Two", "TWO"]):
print"Due to stress from work, your mom does not notice your lies and allows you to leave."print"Your current score is " + str(score)
breakelif (optionOne in ["three", "Three", "THREE"]):
print"Your mom is understanding and allows you go to the party!"
score=score+10print"You get 10 additional points for being honest!"print"Your current score is " + str(score)
break
Post a Comment for "Python Programming Decision Structures"