Python|快速提高Python编程能力的一招鲜吃遍天
文章图片
文章图片
文章图片
本文我们以4个练习为主 , 掌握python基本的解决问题方式 , 编程思路以及代码编写 。
实现字符串find功能定义函数myfind(data substr) , 输入参数data与substr , 返回substr在data中位置 , 不存在返回-1;
实现思路
先来看一张图 , 这样更清晰表达整个过程:
具体查找过程如下:
但是还有几个问题需要考虑:
- 从data起始位置开始比较 , 索引记为index=0
- 从data[index
开始取substr长度子串记为tmp
- tmp与substr比较 , 如果相等返回index , 否则inde加1 , 重复1~3过程
- 如果len(data) - index < len(substr) , 停止查找 , 返回-1
整个逻辑代码如下:
- 如何循环查找?使用wile循环查找 , 每次index值加1
- 截止条件判断?截止条件:找到位置或者len(data)-index < len(substr);
- 返回值?返回值:找到子串 , 返回索引 , 否则返回-1;
# coding:utf-8__author__ = 'Mr.数据杨'__explain__ = ''# data:查找字符串# substr:查找子串# 找到子串返回index 否则返回-1def myfind(data substr): # 定义索引 index = 0 # 获取data长度 datalens = len(data) # 获取substr长度 lens = len(substr) while True: # 如果剩余字符串长度小于子串长度 , 直接返回-1 if datalens - index < lens: return -1 # 切片操作获取data中比较内容 tmp = data[index:index + lens
# 添加打印信息 , 确认比较内容 print('tmp = "{"substr = "{" index={'.format(tmp substr index)) if tmp == substr: # 输出位置 print('find { in { index={'.format(substr data index)) return index else: print('not find') # 索引加1 index += 1# 测试source = 'c++pythonjava'substr = 'python'index = myfind(source substr)print(index)
- 挖贝网|销量大幅提高,色如丹2020年上半年净利1202.76万增长47.77%
- 陈羊说职场|兼职也能快速致富,比较火爆的3大网络赚钱行业
- 天文在线|一个对于快速无线电脉冲的大胆解释
- Python|python到底是强类型语言,还是弱类型语言?
- ifory安福瑞|整体信号提高2倍以上,手机信号不好?教你4个方法
- 手艺人兴哥|运行速度虽然会更快,但用户不太容易感知,手机性能提高10倍
- 科技说生活|Plus 40W超级快充告诉你,何以快速满电?华为畅享20
- 产业气象站|Python数据可视化之Excel气泡图
- 知足常乐|旧手机上的重要数据,怎样快速转移到新手机上?,换新手机了
- 安谱实验|快速检测试纸条来袭,开学报到|CNW