我有两个用户输入:在第一个用户必须插入一个文本字符串类型,在第二个用户插入一个数字是什么是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')
答案 0 :(得分: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个字符,然后检查整个名称是否仅包含字母字符和数字,然后进行最后检查以查看第一个字符是否为字母字符。
答案 1 :(得分:0)
带有数字的字符串仍然是有效的字符串 - 它是一个表示该数字为文本的字符串。
如果要检查名称不是仅由数字组成的字符串,则以下代码将起作用:
while True:
try:
name = input('Insert name: ')
if name.isdigit():
raise ValueError