Python 防止输入()不是字母字符

Python 防止输入()不是字母字符,python,string,python-3.x,input,error-handling,Python,String,Python 3.x,Input,Error Handling,为了自我认识,我正在尝试制作一个程序。我想问用户他们的名字是什么,我只希望用户能够使用字母表中的字母来回答,或者只使用字符串。我不希望他们能够用数字、符号等来回答 def cc(): name = (input("""Hello, what happens to be your first name? > """)) if type(name) is str: print("You have entered a name correctly.")

为了自我认识,我正在尝试制作一个程序。我想问用户他们的名字是什么,我只希望用户能够使用字母表中的字母来回答,或者只使用字符串。我不希望他们能够用数字、符号等来回答

def cc():
  name = (input("""Hello, what happens to be your first name?  
        > """))
  if type(name) is str:
      print("You have entered a name correctly.")
  elif type(name) is int:
      print("Your name cannot be an integer. Try again.")
      cc()

cc()

我同意这个问题有点误导。然而,根据您所说的,您只需要使用正则表达式就可以实现这一点

import re
...
if not re.findall('[^a-zA-Z]', 'abc1'):
   print("You have entered a name correctly.")
else
   print("Your name cannot be an integer. Try again.")
   cc()

您可以使用。从文件中:

如果字符串中的所有字符都是字母,并且至少有一个字符,则返回true,否则返回false。字母字符是在Unicode字符数据库中定义为“字母”的字符,即具有“Lm”、“Lt”、“Lu”、“Ll”或“Lo”之一的一般类别属性的字符。请注意,这与Unicode标准中定义的“字母”属性不同

以下是一个示例程序:

while True:
    name = input('Enter a name using only alphabetic characters: ')
    if name.isalpha():
        break
演示:

Enter name using only alphabetic characters:  Bo2
Enter name using only alphabetic characters:  Bo^&*(
Enter name using only alphabetic characters:  Bob

请注意,此方法不适用于带有连字符名称的人,例如“Anne Marie”。

是的,
input
的结果在Python 3中始终是
str
,也就是说,它相当于Python 2
raw_input
。所以<代码>“123”是一个字符串,因此我不确定您到底想要什么。听起来您只希望接受满足特定条件的字符串,例如“没有任何数字”,但是,您的其他条件不清楚,例如防止“符号”。。。你应该试着详细说明一下,以获得有用的答案。我已经解决了我提问的问题。字母表中的字母是一个很好的说明,但是,仅仅注意“或字符串”是没有意义的!字符串是一种数据类型<代码>“123”是一个字符串!我道歉。只有字母表上的字母,不需要道歉,当然不需要为开放学习而道歉!我要给你一个提示:记住,
input
总是返回
str
type。现在,python字符串有很多方便的方法,其中包括
.isalpha
。我建议你好好玩玩,这样你就有一半的解决办法了@蔡斯·格兰杰很高兴帮助蔡斯。由于您似乎是Python的新手(无意冒犯),请确保您查看了。他们有大量的示例代码和信息。事实上,一个开始学习更多知识的好地方是。