函数fun()接收两个任意长度的字符串s1和s2,要求返回两个字符串对应位置上字符相同的数量。

也就是说,如果字符串s1中第i个字符与字符串s2中第i个字符完全相同则计1个,返回满足这样条件的字符数量。

例如:输入'abcdefg'和'ABC',输出为0

输入'abcdefg'和'abcdefghij',输出为7

删除下面代码中的pass语句,替换为自己的代码,完成要求的功能。

def fun(s1,s2):

pass

str1=input('请输入第一个任意字符串:')

str2=input('请输入第二个任意字符串:')

print(fun(str1,str2))
用python回答,谢谢!!!

题主你好,

先说下解题重点: 首先要知道被比较的两个字符串长度不一定是相等的, 所以要先计算出str1和str2的长度, 然后取较短的那个作为循环的次数, 如果取较长的那个作为循环产数的话,在超出较短的那个字符串的索引后会出现Out of range异常,从而使程序不能正确执行. 其它的就没有太多需要注意的了.

代码如下:

-----

测试结果如下:

-----

写在最后: 上面代码没有进行异常处理,仅写出了常规的实现逻辑.

=====

希望可以帮到题主, 欢迎追问.

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-11-10

代码如下:

运行结果:

第2个回答  2021-11-10
cnt=0
for i,j in zip(s1,s2):
缩进if i==j:cnt+=1
return cnt
上面写的是pass的内容,因为是函数内的语句块,所有行要增加一个缩进。
第3个回答  2021-11-10
return sum([e[0]==e[1] for e in zip(s1,s2)])
相似回答