当我在做关于计算机科学界的第14章的问题时,我发现了一些奇怪的事情。你知道吗
问题是: “定义一个函数postalValidate(S),它首先检查S是否表示有效的邮政编码: 首先,删除所有空格; 其余部分必须采用L#L#L#形式,其中L是字母(小写或大写),#是数字。 如果S不是有效的邮政编码,则返回布尔值False。如果S是有效的,则返回相同邮政编码的版本,格式为L#L#L#,其中每个L都是大写字母。”
这是我为这个问题所做的工作:
def postalValidate(S):
if S.count(' ') > 0:
S.replace(' ', '')
if S.isalpha() or S.isdigit() == True:
return False
else:
if S[0].isalpha() and S[2].isalpha() and S[4].isalpha() == False:
return False
else:
if S[1].isdigit() and S[3].isdigit() and S[5].isdigit() == False:
return False
else:
return S.upper()
所有的输入都是正确的,除了这个后验证('d3 L3 T3')。 我使用S.count来标识输入中有多少个“”,但它不起作用。取而代之的是,输入在进入函数之后就变成了“d3L3T3”。你知道吗
有没有正确的方法来计算“”字符串?或者是否有其他方法来删除字符串中的“”,而不是使用字符串方法?
正如评论中提到的,如果您有几个条件,那么您需要检查所有这些条件:
不是你想要的。你需要写下:
作为另一个选项,您可以使用正则表达式匹配:
这种变体更灵活,更容易更改。你知道吗
相关问题 更多 >
编程相关推荐