鱼C论坛

 找回密码
 立即注册
查看: 1379|回复: 7

新手求助!第018讲:函数 课后测试题!

[复制链接]
发表于 2022-3-15 14:35:54 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
动动手第二题答案中,标注红色的两句if嵌套语句是否改为“and”更为高效?请各位老师指点!

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)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-15 14:38:43 | 显示全部楼层
高效不高效我不知道,
但这样虽是可行的,但当你写大量代码时,建议用这种写法,看起来更直观,
其实都一样的,你看起来习惯那个就用哪个!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-15 14:39:52 | 显示全部楼层
效率差不多吧,因为 and 的短路运算的关系,所以都是第一个条件不满足就不对第二个条件进行判断了。

如果 and 不短路的话,and 就还要慢上一筹
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-15 14:41:59 | 显示全部楼层
可以改为and
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-15 14:47:49 | 显示全部楼层
python爱好者. 发表于 2022-3-15 14:38
高效不高效我不知道,
但这样虽是可行的,但当你写大量代码时,建议用这种写法,看起来更直观,
其实都一 ...

好的,多谢指教!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-15 14:49:22 | 显示全部楼层
isdkz 发表于 2022-3-15 14:39
效率差不多吧,因为 and 的短路运算的关系,所以都是第一个条件不满足就不对第二个条件进行判断了。

如 ...

多谢老师指点!就是觉得两个循环看起来不如一个and看着舒服。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-15 14:49:56 | 显示全部楼层
67193114 发表于 2022-3-15 14:49
多谢老师指点!就是觉得两个循环看起来不如一个and看着舒服。

好吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-15 14:50:37 | 显示全部楼层

没看答案之前自己就写的and,就是不知道是否存在区别?自己感觉效果是一样的,感谢老师指点!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 01:07

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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