python - 用户输入只能是字母字符并包含空格
问题描述
我希望用户输入他们的名字和姓氏并对其进行验证,以便它只是字母和空格,然后将其添加到文本文件中。
**这是根据您的建议编辑的代码,即使输入了字母,它也会始终返回第一条打印消息
while True:
new_Book_AuthorFName = input('Enter Author First Name: ')
new_Book_AuthorLName = input('Enter Author Last Name: ')
new_Book_Author_Name = new_Book_AuthorFName + " " + new_Book_AuthorLName
try:
new_Book_Author_Name.replace(' ', '').isalpha()
print("Please Only Use Alphabetical Characters in Name.")
continue
break
except ValueError:
print("Invalid Name.")
解决方案
最简单和最 Pythonic 的方式:
def is_alpha_and_spaces_only(string):
return string.replace(' ', '').isalpha()
比KetZoomer 的方法更快、更高效,因为它不需要您(a)拆分字符串 & (b)将其组合回来以获得结果。
PS 如果您不想定义它,或者只是功能的精神。如果不是,请使用new_Book_Author_Name.replace(' ', '').isalpha()
代替new_Book_Author_Name.isalpha()
推荐阅读
- cassandra - 在 cassandra 中对 1 列运行批量更新查询
- mysql - mysql`听起来`没有返回所有正确/预期的结果
- javascript - 在同一页面上提交带有成功/失败警报的联系表
- c# - ASP.NET Core DI:如何在不指定类型的情况下通过 lambda 注入服务
- mysql - 按月返回默认值 1 的 MySQL 交叉表查询?
- vba - 打开表单后如何在 Word 文档末尾添加子文档?
- vba - 删除 Power Point 幻灯片中的现有图表并使用 VBA 替换为新图表
- django - 为 django 应用程序添加安全标头的最佳做法是什么?
- c# - 无法使用淘汰组件呈现部分 html
- visual-studio - 应用程序链接到 msvcp140d 而不是 msvcp140