如何检查用户输入是否为字符串
How to check if user input is a string
我有两个用户输入:第一个用户必须插入字符串类型的文本,第二个用户必须插入一个整数类型的数字。
我使用了 try/except ValueError,因此用户无法在需要 int 的地方插入字符串。尽管当用户在需要字符串的地方插入 int 时,ValueError 不会起作用。
输入的值怎么会是false,插入int的时候,问str的地方?
这是我的代码:
while True:
try:
name_input = input('Insert name')
name = str(name_input)
number = input('Insert number: ')
num = int(number)
except ValueError:
print('Wrong')
如果您希望整个名称按字母顺序排列,您只需添加一个 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 个字符长,然后检查整个名称是否仅由字母字符和数字组成,最后检查第一个字符是否为字母字符。
其中包含数字的字符串仍然是有效字符串 - 它是将数字表示为文本的字符串。
如果要检查名称不是仅由数字组成的字符串,则可以使用以下代码:
while True:
try:
name = input('Insert name: ')
if name.isdigit():
raise ValueError
我有两个用户输入:第一个用户必须插入字符串类型的文本,第二个用户必须插入一个整数类型的数字。 我使用了 try/except ValueError,因此用户无法在需要 int 的地方插入字符串。尽管当用户在需要字符串的地方插入 int 时,ValueError 不会起作用。
输入的值怎么会是false,插入int的时候,问str的地方? 这是我的代码:
while True:
try:
name_input = input('Insert name')
name = str(name_input)
number = input('Insert number: ')
num = int(number)
except ValueError:
print('Wrong')
如果您希望整个名称按字母顺序排列,您只需添加一个 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 个字符长,然后检查整个名称是否仅由字母字符和数字组成,最后检查第一个字符是否为字母字符。
其中包含数字的字符串仍然是有效字符串 - 它是将数字表示为文本的字符串。
如果要检查名称不是仅由数字组成的字符串,则可以使用以下代码:
while True:
try:
name = input('Insert name: ')
if name.isdigit():
raise ValueError