# Checking input is a number in python

I need help, my program is simulating the actions of a dice. I want to an error check to occur checking if the input string is a number and if it isn't I want to ask the question again again until he enters an integer

```# This progam will simulate a dice with 4, 6 or 12 sides.

import random

def RollTheDice():

print("Roll The Dice")
print()

NumberOfSides = int(input("Please select a dice with 4, 6 or 12 sides: "))

Repeat = True

while Repeat == True:

if not NumberOfSides.isdigit() or NumberOfSides not in ValidNumbers:
print("You have entered an incorrect value")
NumberOfSides = int(input("Please select a dice with 4, 6 or 12 sides")

print()
UserScore = random.randint(1,NumberOfSides)
print("{0} sided dice thrown, score {1}".format (NumberOfSides,UserScore))

RollAgain = input("Do you want to roll the dice again? ")

if RollAgain == "No" or RollAgain == "no":
print("Have a nice day")
Repeat = False

else:
NumberOfSides = int(input("Please select a dice with 4, 6 or 12 sides: "))
```

As a commenter disliked my first answer with try: except ValueError and the OP asked about how to use isdigit, that's how you can do it:

```valid_numbers = [4, 6, 12]
while repeat:
number_of_sides = 0
while number_of_sides not in valid_numbers:
number_of_sides_string = input("Please select a dice with 4, 6 or 12 sides: ")
if (not number_of_sides_string.strip().isdigit()
or int(number_of_sides_string) not in valid_numbers):
print ("please enter one of", valid_numbers)
else:
number_of_sides = int(number_of_sides_string)
# do things with number_of_sides
```

the interesting line is not number_of_sides_string.strip().isdigit(). Whitespace at both ends of the input string is removed by strip, as a convenience. Then, isdigit() checks if the full string consists of numbers.

In your case, you could simply check

``` if not number_of_sides_string not in ['4', '6', '12']:
print('wrong')
```

but the other solution is more general if you want to accept any number.

As an aside, the Python coding style guidelines recommend lowercase underscore-separated variable names.