【发布时间】:2016-02-25 09:45:13
【问题描述】:
if s1 == s2:
return 0
elif len(s1) == len(s2):
mismatch = 0
for i,j in zip(s1,s2):
if i != j:
mismatch +=1
if mismatch == 1:
return 1
elif len(s1) != len(s2):
mismatch = 0
for i,j in zip(s1,s2):
if i != j:
mismatch +=1
if mismatch > 1:
return 2
我被要求编写一个比较两个字符串的代码,这两个字符串将作为我的函数的参数接收。在对它们进行迭代时,如果它们都相同,我必须返回 0,如果一个字符不匹配,则返回 1,如果两个字符的长度不同或超过 1 个字符不匹配,则返回 2。
当我尝试将“sin”和“sink”作为输入字符串时,我的代码没有返回任何内容?我试图以许多不同的方式改变我的代码,但它没有帮助。如果一个字符(如字符串中的空格)与另一个字符不同,它也不会返回任何内容。
这似乎是一段足够简单的代码,但我似乎无法正确编写它。如果我尝试通过使用 .lower() 来解决空格和另一个字符的问题,它不会在字符串末尾包含“k”。如果我用 .upper() 修复它,它不会返回任何东西。我看不出我做错了什么。
【问题讨论】:
-
可能重复.. 有很多。不知道该选哪一个。 stackoverflow.com/…
-
对于 'sin' / 'sink' 问题,请查看此问题的答案:Python: zip-like function that pads to longest length?
-
我只能说......哈哈