Home > Back-end >  Function to detect integers instead string in Python [duplicate]
Function to detect integers instead string in Python [duplicate]

Time:09-21

I'm trying to make a function that count the numbers of characters in a string and detect when an integer is typed, the condition is use "if" function. I'd expect that if I type any integer like"4464468" instead a string, the program displayed: "Sorry, you typed an integer". But, instead, counts the total number and displayed "The word you type has 7 characters".

My code is next:

def string_lenght(mystring):
       return len(mystring)`

#Main Program

mystring = (input("Type a word: "))
if type(mystring) == int or type(mystring) == float:
        print("Sorry, you typed an integer")

else:
        print("The word you typed has",string_lenght(mystring), "characters")

I'm Newbie at Python. I really appreciate your help and patience.

Best regards.

CodePudding user response:

input() always returns a string so you can try to convert it into int/float, if the operation is successful then it's a number, else it is a string:

try:
    float(mystring)
    print("Sorry you typed an integer")
except ValueError:
    # Rest of the code ...
  • Related