(Jun-04-2020, 10:01 PM)mstichler Wrote: in otherwords i have 10 option so how many if's? elif's? elses? Would you mind laying out an example of ten?
It's up to you,if want specific option for all ten number,then need a larger it,elif,elif...else case.
Here a example that narrow it down bye eg do one if statement for number under 5.
import random
while True:
rnumber = random.randint(1, 10)
if 1 < rnumber < 6:
print('Got a number under 5')
elif rnumber == 6:
print('Got 6,which is close')
elif rnumber == 7:
print('Got 7,you win a price')
break
else:
print('Got a nummer over 7')
Output:
Got 6,which is close
Got a number under 5
Got a number under 5
Got a number under 5
Got a nummer over 7
Got a nummer over 7
Got a nummer over 7
Got a number under 5
Got a nummer over 7
Got 6,which is close
Got a number under 5
Got a nummer over 7
Got a number under 5
Got a number under 5
Got 7,you win a price
As mention @
deanhystad so is dictionaries often used for this.
I like using
.get()
as second parameter can catch values not found in dictionary.
import random
import sys
def win():
return 'You hit 3 and win a price'
def switch_case(rnumber):
return {
7: 'Got 7,get 10 dollar',
2: 'Got 2,which is close',
3: win(),
4: "Got 4,a little over",
}.get(rnumber, f'No option for <{rnumber}>')
if __name__ == '__main__':
while True:
hit = input('Get a number bye press <Enter>\n')
rnumber = random.randint(1, 10)
print(switch_case(rnumber))
if rnumber == 3:
sys.exit()
Output:
Get a number bye press <Enter>
No option for <8>
Get a number bye press <Enter>
No option for <8>
Get a number bye press <Enter>
Got 4,a little over
Get a number bye press <Enter>
Got 4,a little over
Get a number bye press <Enter>
No option for <6>
Get a number bye press <Enter>
Got 7,get 10 dollar
Get a number bye press <Enter>
No option for <1>
Get a number bye press <Enter>
You hit 3 and win a price