如何检查用户输入是否为字符串

问题描述 投票:0回答:2

我有两个用户输入:在第一个用户必须插入文本什么是字符串类型,在第二个用户插入一个数字什么是int类型。我使用了try / except ValueError,因此用户不必插入需要int的字符串。虽然当用户在需要字符串的地方插入int时,ValueError不起作用。

当插入int时,输入值如何为false?这是我现在的代码:

while True:
    try:
        name_input = input('Insert name')
        name = str(name_input)

        number = input('Insert number: ')
        num = int(number)

    except  ValueError:
        print('Wrong')
python python-3.6 try-except valueerror
2个回答
0
投票

其中带有数字的字符串仍然是有效字符串 - 它是将该数字表示为文本的字符串。

如果要检查名称不是仅由数字组成的字符串,则以下代码将起作用:

while True:
    try:
        name = input('Insert name: ')
        if name.isdigit():
            raise ValueError

1
投票

如果您希望整个名称都是字母,您只需添加一个if语句,如下所示:

if not name.isalpha():
    print("wrong, your name can only include alphabetic characters")

或者更适合你的简短例子:

if not name.isalpha():
    raise ValueError

这只接受根本不包含任何数字的输入字符串。

如果您希望在name中允许数字,只要名称以字母开头,您也可以使用以下内容:

if len(name) < 1 or not name.isalnum() or not name[0].isalpha():
    raise ValueError

首先检查名称是否至少为1个字符,然后检查整个名称是否仅包含字母字符和数字,然后进行最后检查以查看第一个字符是否为字母字符。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.