鱼C论坛

 找回密码
 立即注册
查看: 2927|回复: 4

解释下小甲鱼代码的意思

[复制链接]
发表于 2017-2-8 00:18:03 | 显示全部楼层 |阅读模式
5鱼币
def findStr(desStr, subStr):
    count = 0
    length = len(desStr)
    if subStr not in desStr:
        print('在目标字符串中未找到字符串!')
    else:
        for each1 in range(length-1):      
            if desStr[each1] == subStr[0]:
                if desStr[each1+1] == subStr[1]:
                    count += 1
                    
        print('子字符串在目标字符串中共出现 %d 次' % count)

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

请文字解释下else之后代码的含义以及相关的注意事项。非常感谢,如果有注意事项会加鱼币~
前面的我理解了
def findStr(desStr, subStr):#创建一个函数名称为findStr的函数,包含两个形式参数#
    count = 0                       #出现次数设置初始值为0#
    length = len(desStr)      #将形式参数desStr的字符串长度 赋予length变量#
    if subStr not in desStr:  #如果 参数subStr不在desStr里面#
        print('在目标字符串中未找到字符串!') #打印在目标字符串中未找到字符串
但是后续的问题
  else:
        for each1 in range(length-1):                              # for in 语句怎么用中文表达比较好?
            if desStr[each1] == subStr[0]:                          #  后续代码看不懂了
                if desStr[each1+1] == subStr[1]:
                    count += 1
                    
        print('子字符串在目标字符串中共出现 %d 次' % count)  #打印'子字符串在目标字符串中共出现(COUNT转化为数值类型)此

desStr = input('请输入目标字符串:')                                      #实际参数值输入
subStr = input('请输入子字符串(两个字符):')                         #实际参数值输入
findStr(desStr, subStr)                                                              #调用函数

最佳答案

查看完整内容

下面是具体的解释说明:
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-8 00:18:04 | 显示全部楼层
下面是具体的解释说明:
  1. def findStr(desStr, subStr):
  2.     count = 0
  3.     length = len(desStr)
  4.     if subStr not in desStr:
  5.         print('在目标字符串中未找到字符串!')
  6.     else:                                                                                                        #
  7.         for each1 in range(length-1):                                              # range(length-1)是一个数字范围,范围是0到length -1,但不包括length-1,然后each1依次取这些值,0,1,2,...,length-2,也就是一直循环到desStr字符串中的倒数第2个字符,最后一个字符则不会判断,因为subStr字符串是两个字符,判断最后一个没有意义
  8.             if desStr[each1] == subStr[0]:                                        # 如果desStr中的第each1个字符 等于subStr字符串的的第一个字符
  9.                 if desStr[each1+1] == subStr[1]:                        # 再判断它的下一个字符,也就是第each1+1个字符,是否等于subStr字符串中的第2个字符
  10.                     count += 1                                                                # 如果相等,则表示找到,然后count变量加1
  11.                     
  12.         print('子字符串在目标字符串中共出现 %d 次' % count)        # 把整个desStr字符串都循环完毕后,则可以打印一共出现多少次的提示了。

  13. desStr = input('请输入目标字符串:')                       
  14. subStr = input('请输入子字符串(两个字符):')       
  15. findStr(desStr, subStr)                                                                               
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +1 收起 理由
vincenzo0823 + 3 + 3 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-8 20:10:44 | 显示全部楼层
    for each1 in range(length-1):                  # 变量each1内容是length 变量里面
            if desStr[each1] == subStr[0]:           #  each1 等于子字符串第一位数
                if desStr[each1+1] == subStr[1]:        #  each1 等于子字符串第二位数
                    count += 1                                      # 若是出现了count内容就+1
                    
        print('子字符串在目标字符串中共出现 %d 次' % count)  #打印'子字符串在目标字符串中共出现(COUNT转化为数值类型)此

desStr = input('请输入目标字符串:')                                      #实际参数值输入
subStr = input('请输入子字符串(两个字符):')                         #实际参数值输入
findStr(desStr, subStr)                        
比如:                     ====================== RESTART: D:/木子/python/定义,收集函数.py ======================
请输入目标字符串:开心,小甲鱼,爱你,就是
请输入子字符串(两个字符):爱你
子字符串在目标字符串中共出现 1 次
>>>
====================== RESTART: D:/木子/python/定义,收集函数.py ======================
请输入目标字符串:小甲鱼,小甲鱼,小甲鱼,就是
请输入子字符串(两个字符):小甲鱼
子字符串在目标字符串中共出现 3 次
>>>
====================== RESTART: D:/木子/python/定义,收集函数.py ======================
请输入目标字符串:开心,小甲鱼,爱你,就是
请输入子字符串(两个字符):小三
在目标字符串中未找到字符串!
>>>
   

评分

参与人数 1荣誉 +3 鱼币 +3 贡献 +1 收起 理由
vincenzo0823 + 3 + 3 + 1

查看全部评分

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-2-16 14:08:26 | 显示全部楼层
感谢回答的亲们,学习啦
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-5-8 22:42:52 | 显示全部楼层
我还是不明白 为什么是each1?  不是each0?
each到底是什么类型  
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-25 08:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表