Home > Software engineering >  how to add an error message when an integer is input instead of a string
how to add an error message when an integer is input instead of a string

Time:03-17

beginner here. I am trying to add an error when a string is entered instead of an integer. I've looked at other similar posts but when i try and implement it into my code it keeps spitting errors out. I have a number guessing game between 1 and 50 here. Can't for the life of me figure out whats wrong. Thanks in advance!



number = random.randrange(1, 50)

while True:
    try:
    guess = int ( input("Guess a number between 1 and 50: ") )
    break
except ValueError:
    print("Please input a number.")**
  

while guess != number:
    if guess < number:
        print ("You need to guess higher. Try again.")
        guess = int ( input("\nGuess a number between 1 and 50: ") )
    else:
        print ("You need to guess lower. Try again.")
        guess = int ( input("\nGuess a number between 1 and 50: "))

print ("You guessed the number correctly!")



                      
    
 

  

CodePudding user response:

You could try running a while loop for the input statements. Checking if the input(in string format) is numeric and then casting it to int. Sample code:

a = input()
while not a.isnumeric():
    a = input('Enter a valid integer')
    a = int(a)

The code executes until the value of a is an int

CodePudding user response:

I think your code did not work was because the indentation was not right

import random

number = random.randrange(1, 50)
while True:
    try:
        guess = int ( input("Guess a number between 1 and 50: ") ) # here
        break # here
    except ValueError: # here
        print("Please input a number.")
  

while guess != number:
    if guess < number:
        print ("You need to guess higher. Try again.")
        guess = int ( input("\nGuess a number between 1 and 50: ") )
    else:
        print ("You need to guess lower. Try again.")
        guess = int ( input("\nGuess a number between 1 and 50: "))

print ("You guessed the number correctly!")

Output

Guess a number between 1 and 50: aa
Please input a number.
Guess a number between 1 and 50: 4
You need to guess higher. Try again.

CodePudding user response:

You could try dividing the inputted "number" by one. If that fails, then print something such as "Please input a valid number!" Code below.


let new = guess % 1

if new != 0:
   print("Please input a valid number!")


  • Related