Python - 如何正确实现 TypeError

Python - how to correctly implement TypeError

try:
   Name = input("enter name")
except TypeError:
   print("Please enter letters")

即使我输入数字,也不会打印消息。

不会出现类型错误,因为您输入了一个字符串并将其保存为一个字符串。 TypeError 是 Python 编程语言中的异常,当操作中对象的数据类型不合适时会发生这种异常。例如,如果您尝试用字符串除以整数,则整数和字符串对象的数据类型将不兼容。 (来自:here

在此处查找解决方案: how to find if there is a number in a string

主要问题是您从不检查数字是否存在。

尝试这样的事情:

while True: #loop while input invalid
   try:
      Name = input("enter name")
      if not Name.isalpha(): # checks whether Name is not letters only
         raise TypeError #Raise error if numbers are there
      else:
         break #Else, exit the loop

   except TypeError:
      print("Please enter letters")