67193114 发表于 2022-3-15 14:35:54

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

动动手第二题答案中,标注红色的两句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 == subStr:
                if desStr == subStr:
                  count += 1
                  
      print('子字符串在目标字符串中共出现 %d 次' % count)

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

python爱好者. 发表于 2022-3-15 14:38:43

高效不高效我不知道,
但这样虽是可行的,但当你写大量代码时,建议用这种写法,看起来更直观,
其实都一样的,你看起来习惯那个就用哪个!

isdkz 发表于 2022-3-15 14:39:52

效率差不多吧,因为 and 的短路运算的关系,所以都是第一个条件不满足就不对第二个条件进行判断了。

如果 and 不短路的话,and 就还要慢上一筹

LXX梧桐 发表于 2022-3-15 14:41:59

可以改为and

67193114 发表于 2022-3-15 14:47:49

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

好的,多谢指教!

67193114 发表于 2022-3-15 14:49:22

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

如 ...

多谢老师指点!就是觉得两个循环看起来不如一个and看着舒服。

isdkz 发表于 2022-3-15 14:49:56

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

好吧

67193114 发表于 2022-3-15 14:50:37

LXX梧桐 发表于 2022-3-15 14:41
可以改为and

没看答案之前自己就写的and,就是不知道是否存在区别?自己感觉效果是一样的,感谢老师指点!
页: [1]
查看完整版本: 新手求助!第018讲:函数 课后测试题!