Python 我想在用户输入整数值而不是字符串值时生成一个异常。。我怎么做?

Python 我想在用户输入整数值而不是字符串值时生成一个异常。。我怎么做?,python,exception,Python,Exception,我想在用户输入整数值而不是字符串值时生成一个异常当您在控制台中输入整数时,输入。。。以字符串形式返回用户输入的输入。所以你永远不会得到TypeError异常。您也不需要在输入周围包含str函数。因为您对类型检查感兴趣,您可能希望将逻辑颠倒一点,如下所示: def log_in(): user_name1="xyz" try: user_name =(input("Enter your username:")) if (user_name ==use

我想在用户输入整数值而不是字符串值时生成一个异常当您在控制台中输入整数时,输入。。。以字符串形式返回用户输入的输入。所以你永远不会得到TypeError异常。您也不需要在输入周围包含str函数。

因为您对类型检查感兴趣,您可能希望将逻辑颠倒一点,如下所示:

def log_in():
    user_name1="xyz"
    try:
        user_name =(input("Enter your username:"))
        if (user_name ==user_name1):
            print("welcome")
    except TypeError:
        print("Enter only characters")
log_in()

有什么例外?请给你的代码添加一些解释。这是用Python3.x还是Python2.x编写的?请编辑你对这个问题的评论。同时,展示你的努力。只需检查用户名中是否有数字字符。现在将其转换为Python代码。
def log_in():
    user_name1  = "xyz"
    user_name   = input("Enter your username:\n") # str()
    try:
        # FOR YOUR USE CASE, IT WOULD SUFFICE TO SIMPLY TRY TO CAST THE ENTERED 
        # INPUT TO AN INT (INITIALLY) -  REGARDLESS OF WHETHER IT'S INT OR STRING:
        # PERHAPS STRIP-OFF ALL EXTRA WHITE-SPACES AS WELL
        int( user_name.strip() )

        # IF WE ARE SURE IT'S AN INT, THEN: WE RESPOND ACCORDINGLY -
        print("Solely Numeric characters are not allowed as Username....")
        # THEN IMMEDIATELY BAIL OUT OF THE FUNCTION:
        return False
    except:
        pass

    # COMPARE ENTERED USERNAME WITH EXPECTED VALUE
    # IF ALL GOES WELL THEN, WELCOME THE USER
    if user_name.strip() == user_name1:
        print("welcome")
    else:
        print("Wrong Credentials....")

log_in()