【问题标题】:Python, isalpha() returning invalid stament when letters are used? [closed]Python,isalpha()在使用字母时返回无效语句? [关闭]
【发布时间】:2016-06-19 13:59:45
【问题描述】:

因此,在编写部分作业时,我决定在我的程序中包含验证。但是,在使用 .isalpha() 命令添加验证时,当有一个带有字母的句子时,我在输入数字时收到错误消息。抱歉,无法显示我的所有程序,但我已经包含了一个我编写的代码测试平台,用于测试 .isalpha() 命令是否有效,用于验证是否只输入了字母。输入的测试数据 = 几个测试示例之一

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

【问题讨论】:

  • 你的意见是什么?
  • 这很难回答,除非您告诉我们您为 word 输入的内容
  • 输入的测试数据 = 几个测试示例之一
  • 您的输入是什么导致了意想不到的结果?
  • 输入的输入 = 几个测试示例之一

标签: python


【解决方案1】:

如果您输入了多个单词,则您的输入中有非字母字符(在输入 "testing example one of several" 的情况下为空格)。这些会导致isalpha 失败。

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

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()):

【讨论】:

    猜你喜欢
    • 2012-11-19
    • 2018-08-12
    • 2013-05-03
    • 1970-01-01
    • 1970-01-01
    • 2016-02-16
    • 1970-01-01
    • 2013-02-18
    • 1970-01-01
    相关资源
    最近更新 更多