【问题标题】:Python How to check if user input is a string?Python如何检查用户输入是否为字符串?
【发布时间】:2015-12-04 13:32:13
【问题描述】:

我在这里的第一个问题...

我想知道如何检查用户输入是否为字符串。如果不是应该出现消息。否则答案应该被接受。这是我所拥有的(我正在寻找最简单的解决方法):

try:
    name=str(raw_input("What is your name? "))
except:
    print("Your name must consist of letters only")
else:
    print("Thank you for entering your name.")

【问题讨论】:

标签: string python-2.7 types typechecking


【解决方案1】:

str.isalpha() 检查字符串中的所有字符是否都是字母并且至少有一个字符。所以

name=str(raw_input("What is your name? "))
if not name.isalpha():
    print("Your name must consist of letters only")
else:
    print("Thank you for entering your name.")

但是,如果 name 是“Homer Simpson”(带空格),这将不起作用这是 name 的有效输入。

别忘了this!!!

【讨论】:

    【解决方案2】:

    检查字符串中的非ascii字母的断言怎么样,类似于here

    import string
    try:
        name = raw_input("What is your name? ")
        assert  any([char not in string.ascii_letters for char in name]) is False
    except AssertionError:
        print("Your name must consist of letters only")
    else:
        print("Thank you for entering your name.")
    

    【讨论】:

    • 好的,现在如何检查不是字母或数字的字符,例如“~”?
    • 如果name 包含,& 怎么办?
    • 好点,我假设字符串除了数字之外什么都想要。我已更改为检查所有 ascii 字母。如果名称有重音等,则可能需要扩展(例如,使用string.printable 而不是string.ascii_letters)。
    猜你喜欢
    • 2022-06-17
    • 1970-01-01
    • 1970-01-01
    • 2011-07-22
    • 1970-01-01
    • 1970-01-01
    • 2020-07-12
    相关资源
    最近更新 更多