我想要完成的是,我希望有一个函数,它使用while循环来检查是否有任何不允许的字符。我很抱歉,这是一个初学者的问题,我可能做错了。
“数字不能用在盘子的中间,它们必须在最后。例如,AAA222将是一个可接受的…虚荣牌;AAA22A是不可接受的。使用的第一个数字不能是‘0’。“
“不允许句点、空格或标点符号。”
但是你不需要完全解决我想继续自己尝试的问题,我只想知道为什么只有当我输入无效的东西时才会附加?
我的想法是把它附加到列表中,然后再循环一次,看看是否包含任何不允许的字符。
def main():
plate = input("Plate: ")
exclusions(plate)
if is_valid(plate):
print("Valid")
else:
print("Invalid")
def exclusions(s):
plate_list = []
while len(plate_list) < is_valid(s):
plate_list.append(s)
print(plate_list)
def is_valid(s):
return 2 <= len(s) <= 6
main()任何2-6个字符内的任何内容都是有效的。因此,问题是使用while循环并附加。因此,如果某物无效(过去的6个字符),它会附加到列表中,这就是我想要解决的问题。我只想要它附加用户输入,然后我将循环回来看看它是否包含任何不允许的字符。
对不起,如果我重复我自己,但只是试图澄清,因为有时我想我很难理解我想要完成的事情,所以试图更好地表达我的问题。:)
编辑:我解决了它只添加无效输入的问题,现在它只添加了有效的输入,现在我只需要弄清楚如何循环遍历无效字符列表:)更改条件的简单事情。
发布于 2022-06-04 02:29:23
第一个问题是,您使用list作为list = []行中的变量名。这是python中的一个保留关键字,因此您不应该将它用作变量名。换个地方换点别的。
第二个问题是,len(list)返回0,在python中0被解释为False。因此,当您输入无效板块时,is_valid(s)返回False。在while语句中的条件变为,False == False,即True。所以,while语句只适用于无效板块。但是,当您输入有效的板块时,is_valid(s)返回True,因此,False == True语句的条件变为False == True,即False。所以,while循环对有效的板块不起作用。
https://stackoverflow.com/questions/72496638
复制相似问题