Python,isalpha()在使用字母时返回无效的陈述?

时间:2016-06-19 13:59:46

标签: python

因此,在编写部分作业时,我决定在我的程序中包含验证。但是,在使用.isalpha()命令添加验证时,如果在其中包含带字母的句子,则在输入数字时会收到错误消息。对不起,我不能显示我的所有程序但是我已经编写了一个代码测试床,用于测试.isalpha()命令是否有效,以验证是否只输入了字母。输入的测试数据=几个测试示例之一

word = input("enter a word")
if word.isalpha():
    print("Word accepted")
else:
    print("Invalid letters only")

1 个答案:

答案 0 :(得分:2)

如果输入多个单词,则输入中会出现非字母字符(输入"testing example one of several"时为空格)。这些导致isalpha失败。

此外,您的错误消息具有误导性 - 单个非字母字符足以触发错误,而不是#34;仅限无效字母"。

In [1]: "Hello".isalpha()
Out[1]: True

In [2]: "Hello Hello".isalpha()
Out[2]: False

In [3]: "Lotsoflettersandonedigit1".isalpha()
Out[3]: False

如果您想在输入中同时允许空格(但没有标点或数字或其他非字母字符),您可以

if all(s.isalpha() for s in word.split()):