Python how to check if input is a letter or character

ε祈祈猫儿з 提交于 2020-01-30 12:02:39

问题


How can I check if input is a letter or character in Python?

Input should be amount of numbers user wants to check. Then program should check if input given by user belongs to tribonacci sequence (0,1,2 are given in task) and in case user enter something different than integer, program should continue to run.

n = int(input("How many numbers do you want to check:"))
x = 0

def tribonnaci(n):
    sequence = (0, 1, 2, 3)
    a, b, c, d = sequence
    while n > d:
        d = a + b + c
        a = b
        b = c
        c = d
    return d

while x < n:
    num = input("Number to check:")
    if num == "":
        print("FAIL. Give number:")
    elif int(num) <= -1:
        print(num+"\tFAIL. Number is minus")
    elif int(num) == 0:
        print(num+"\tYES")
    elif int(num) == 1:
        print(num+"\tYES")
    elif int(num) == 2:
        print(num+"\tYES")
    else:
        if tribonnaci(int(num)) == int(num):
            print(num+"\tYES")
        else:
            print(num+"\tNO")
    x = x + 1

回答1:


You can use num.isnumeric() function that will return You "True" if input is number and "False" if input is not number.

>>> x = raw_input()
12345
>>> x.isdigit()
True

You can also use try/catch:

try:
   val = int(num)
except ValueError:
   print("Not an int!")



回答2:


For your use, using the .isdigit() method is what you want.

For a given string, such as an input, you can call string.isdigit() which will return True if the string is only made up of numbers and False if the string is made up of anything else or is empty.

To validate, you can use an if statement to check if the input is a number or not.

n = input("Enter a number")
if n.isdigit():
    # rest of program
else:
    # ask for input again

I suggest doing this validation when the user is inputting the numbers to be checked as well. As an empty string "" causes .isdigit() to return False, you won't need a separate validation case for it.

If you would like to know more about string methods, you can check out https://www.quackit.com/python/reference/python_3_string_methods.cfm which provides information on each method and gives examples of each.




回答3:


You can check the type of the input in a manner like this:

num = eval(input("Number to check:"))
if isinstance(num, int):
    if num < 0:
        print(num+"\tFAIL. Number is minus")
    elif tribonnaci(num) == num: # it would be clean if this function also checks for the initial correct answers. 
        print(num + '\tYES')
    else:
        print(num + '\NO')
else:
    print('FAIL, give number')

and if not an int was given it is wrong so you can state that the input is wrong. You could do the same for your initial n = int(input("How many numbers do you want to check:")) call, this will fail if it cannot evaluate to an int successfully and crash your program.



来源:https://stackoverflow.com/questions/59036109/python-how-to-check-if-input-is-a-letter-or-character

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!