supermanmimi 发表于 2020-2-20 14:20:57

各位大佬求助,关于函数的问题

def findStr(desStr, subStr):
    count = 0
    length = len(desStr)
    if subStr not in desStr:
      print('在目标字符串中未找到字符串!')
    else:
      for each1 in range(length-1):      #这里为什么要用each1? length为什么要减一呢 这行代码如何理解呢?
            if desStr == subStr: #这里不太懂
                if desStr == subStr: #这里也不太懂
                  count += 1
                  
      print('子字符串在目标字符串中共出现 %d 次' % count)

desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)


以上 不太懂标注的那三行

zltzlt 发表于 2020-2-20 14:23:46

1. for each1 in range(length-1):

A. each1 是随便起的变量名,可以换一个。
B. 如果是 for each1 in range(length): ,则 each1 有可能是 length - 1 ,后面在 if desStr == subStr: 这一句会报错(下标越界)。

2.             if desStr == subStr: #这里不太懂
                if desStr == subStr: #这里也不太懂
                  count += 1

如果 desStr 连续两个字符都和 subStr 相等,则 count 加 1 。

supermanmimi 发表于 2020-2-20 14:46:40

zltzlt 发表于 2020-2-20 14:23
1.

A. each1 是随便起的变量名,可以换一个。


我懂了 这个length-1的意思是 把要比较的字符-1 先比对第一个字符 然后再+1比对第二个字符 如果两个都一样
那就count += 1 是这样吗?

zltzlt 发表于 2020-2-20 14:52:51

supermanmimi 发表于 2020-2-20 14:46
我懂了 这个length-1的意思是 把要比较的字符-1 先比对第一个字符 然后再+1比对第二个字符 如果两个都一 ...

是的

supermanmimi 发表于 2020-2-20 14:53:58

zltzlt 发表于 2020-2-20 14:52
是的

好的 感谢大佬!
页: [1]
查看完整版本: 各位大佬求助,关于函数的问题