Reputation: 111
I would like to check them in one line code. Is it possible? Otherwise, the code I have currently is:
while True:
player_number = int(input('Determine first player Random(0) or AI(1):'))
player_number2 = int(input('Determine second player Random (0) or AI (1):'))
if player_number, player_number2 in range(0,2): # shows error
break
else:
print ('Out of range. Please choose a player')
Upvotes: 2
Views: 857
Reputation: 164773
You can use an all
statement:
if all(i in range(0, 2) for i in (player_number, player_number2)):
The benefit of this method is it is easily extendable to multiple players.
An even better option would be to use dictionaries and compare to a set:
while True:
players = {k: int(input('Determine player {0} Random(0) or AI(1):'.format(k)))\
for k in range(0, 2)}
if set(players.values()) <= {0, 1}:
break
else:
print('Out of range. Please choose a player')
Upvotes: 1
Reputation: 298392
I would just use and
:
if player_number in (0, 1) and player_number2 in (0, 1):
You can also use sets but it's a little less clear:
if {player_number, player_number2} <= {0, 1}:
Upvotes: 3