我试图解决以下练习问题:
“想象一下你正在为一个库存系统编写软件 一家商店。部分软件需要检查是否输入 产品代码有效。你知道吗
如果满足以下所有条件,则产品代码有效 正确:
编写一个名为valid\u product\u code的函数。有效的产品代码 应该有一个参数,一个字符串。如果 字符串是有效的产品代码,如果不是,则为False。“
def valid_product_code(code):
if len(code)%4 == 0:
if "A1" in code:
if code.isalnum():
for character in code:
#print(character)
#print statement above when uncommented used to
#check if the loop is actually running as intended
if character.isupper() or character.isdigit():
return True
else:
return False
else:
return False
else:
return False
else:
return False
练习题有几个测试串,其中包括:
print(valid_product_code("A12B44BP"))
print(valid_product_code("BFDSAUSA98932RWEFOEWA9FEAA1DSFSF"))
print(valid_product_code("A1BBD5"))
print(valid_product_code("BDD5664S"))
print(valid_product_code("66aBSaA1fdsv"))
我的代码适用于前四个示例,结果是True, True, False, False
,但是最后一个应该是False
,我得到了True
。在尝试一些调试(因此在for循环中使用print(character)
并将return True
和return False
分别更改为print(True)
和print(False)
语句)之后,我用来检查的print
语句表明小写字母都有False
值,而数字和大写字母都有True
值。你知道吗
我对3个外if
语句没有任何问题,但是一旦我需要分离小写字符,我认为每个循环使用一个for就足够了,但是这是一个函数的事实意味着return
过早地终止了我的函数,并且不允许我实际指示整个循环中甚至存在一个小写字母字符串应该将整个字符串的值呈现为False
。我觉得有些东西不见了,比如我把我的return
陈述放错地方了,或者我只是用错误的方式来回答这个问题?你知道吗
请提前帮助和感谢!你知道吗
最内部的循环没有正确实现。目前,
if character.isupper() or character.isdigit():
一旦检测到前6个,就会返回True
。你知道吗您需要检查每个元素。这可以通过以下方式完成。我用注释
#
突出显示修改过的行或者,您可以将if语句组合起来,使代码更加紧凑
相关问题 更多 >
编程相关推荐