第十四届蓝桥杯pythonB组真题——2023
问题描述:
请求出在 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
完整代码如下:
def find_i(i):
find_1 = i.find('2')
if find_1 == -1:
return 0
find_2 = i.find('0',find_1+1)
if find_2 == -1:
return 0
find_3 = i.find('2',find_2+1)
if find_3 == -1:
return 0
find_4 = i.find('3',find_3+1)
if find_4 == -1:
return 0
return 1
ans = 0
for i in range(12345678,98765432+1):
if find_i(str(i)) == 0:
ans += 1
print(ans)
参考:1.Python中的find()函数_python find-CSDN博客 2.蓝桥杯真题题解——来一瓶养乐多
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐



所有评论(0)