当前位置:   article > 正文

第十四届蓝桥杯pythonB组真题——2023_2023蓝桥杯pythonb组真题

2023蓝桥杯pythonb组真题

问题描述:

     请求出在 12345678(含)至98765432(含)中,有多少个数中完全不包含2023。完全不包含2023是指无论将这个数的哪些数位移除都不能得到2023。例如20322175、33220022都完全不包含2023,而20230415,20193213则含有2023(后者取第1,2,6,8个数位)

关键是认识 find函数。

       find函数用于判断字符串是否含有子串str:

               若包含子串,则返回所在字符串第一个位置的下标

               若不包含子串,返回-1

       语法:str.find(str, beg=0, end=len(string))

               str : 指定检索的字符串(子串)

               beg :开始索引,默认为0。

               end :结束索引,默认为字符串的长度。

       举例:

              >>>info = 'abca'
              >>> print(info.find('a'))      # 从下标0开始,查找在字符串里第一个出现的子串,返回结果:0
              >>> print(info.find('a', 1))   # 从下标1开始,查找在字符串里第一个出现的子串:返回结果3

              >>> print(info.find('3'))      # 查找不到返回-1
              >>>print(info.find('abcac'))   # 子串比原字符串长,返回-1
 

完整代码如下:

  1. def find_i(i):
  2. find_1 = i.find('2')
  3. if find_1 == -1:
  4. return 0
  5. find_2 = i.find('0',find_1+1)
  6. if find_2 == -1:
  7. return 0
  8. find_3 = i.find('2',find_2+1)
  9. if find_3 == -1:
  10. return 0
  11. find_4 = i.find('3',find_3+1)
  12. if find_4 == -1:
  13. return 0
  14. return 1
  15. ans = 0
  16. for i in range(12345678,98765432+1):
  17. if find_i(str(i)) == 0:
  18. ans += 1
  19. print(ans)

参考:1.Python中的find()函数_python find-CSDN博客 2.蓝桥杯真题题解——来一瓶养乐多

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/451391
推荐阅读
相关标签
  

闽ICP备14008679号