Vural Erdogan
Vural Erdogan

Reputation: 111

How to check two values in a range together?

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

Answers (2)

jpp
jpp

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

Blender
Blender

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

Related Questions