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)
输出结果
单位转换程序实现三对数值转换:
输入半径 , 输出圆面积;
输入美元 , 输出人民币 , 汇率为:1¥=6.9367 RMB;
【Python|快速提高Python编程能力的一招鲜吃遍天】输入公里 , 输出英里 , 转换值:1 Km = 0.6213712 mile;
实现思路:
逻辑代码如下:
- 题目分析 , 循环读入命令 , 根据输入执行不同操作;
- 编写伪代码 , 实现基本逻辑;3>单位转换实现;
- 使用所学知识点实现代码编写;
# coding:utf-8__author__ = 'Mr.数据杨'__explain__ = ''#半径转面积r = 10pi = 3.14area = pow(r 2)*piprint("半径={的面积={".format(r area))#¥转RMBrate = 6.9367dollar = 2rmb = dollar * rateprint("{$ = {RMB".format(dollar rmb))#Km转mileratio = 0.6213712km = 3mile = km * ratioprint("{km = {mile".format(km mile))
输出结果:
我们可以将每个功能封装成函数 , 方便调用 , 整理后代码如下:
# coding:utf-8__author__ = 'Mr.数据杨'__explain__ = ''# 参数:半径# 返回值:面积def rtoarea(r): pi = 3.14 # r*r*3.14 return pow(r 2) * pi# 参数dollar:美元数量# 返回对应人民币数量def dollartormb(dollar): rate = 6.9367 return dollar * rate# 参数:千米# 返回:对应英里def kmtomile(km): ratio = 0.6213712 return km * ratio
打印输出1~9乘法口诀
这个题目主要知识点:while/if/elif/break使用 , 通过这个练习希望大家能够熟练掌握这些逻辑语句 。
1~9的乘法口诀朋友们都知道 , 看到这个感觉思路有点乱 , 我们先分析问题:
分析思路:
1x11x2 2x21x3 2x3 3x3....
乘数(num1)与被乘数(num2)关系:num1范围为1~num2 , 结果为num1*num2;
我们实现1x3 2x3 3x3这个基本没问题 , 那就先实现这个 , 然后在处理其他 。
实现一行打印 , 例如1x22x33x3 , 从1到9调用lines函数 , 这样就出来了 。
但是每次输出就会换行 , print方法如果输出不换行 , 这个题目基本就快完成了 ,
读者朋友可以自己看下print函数说明 。
代码实现:
实现函数 , 代码实现如下:
# coding:utf-8__author__ = 'Mr.数据杨'__explain__ = ''for i in range(1 10):\tfor j in range(1 i+1):\t\tprint(j "*" i "="(i*j) end=" ")\tprint()for i in range(9 0 -1): for j in range(1 i + 1): print(j "*" i "=" (i * j) end=" ") print()
这个练习我们主要目的是多层循环使用 , 字符串输出格式细化 。
输出结果:
计算消费额度某用户购买一些商品 , 数据是这样的
上衣:300 , 鞋子: 230 , 手机:1499 , 裤子: 199
计算该用户消费额度 。
分析思路:
实现思路:
- 获取字符串中金额(注意数字前后的空格) , 然后相加;
- 使用当前所学知识点如果获取每个数字?
代码实现:
- 查看字符串 , 使用 , 切分字符串 , 获取字符串列表;
- 遍历列表 , 获取字符串列表中的数字;
- 计算总和 。
定义函数 , 返回消费金额
代码实现如下:
# coding:utf-8__author__ = 'Mr.数据杨'__explain__ = ''strs = "上衣:300 , 鞋子:230 , 手机:1499 , 裤子:199"sum_ = 0for i in strs.split(" , "): num = int(i.split(":")[1
) sum_ = sum_ + numprint("服装总计:" + str(sum_) + "元")
输出结果:
这个题目主要练习字符串的切分 , strip及基本逻辑 。
是不是感觉到Python很强大呀 , 后期陆续介绍更懂内容
推荐阅读
- 水产养殖|生态水产养殖如何提高鱼病的预防工作?大疆渔业这样建议
- 多给孩子吃的家常菜,营养又补钙,提高免疫力,身体强壮少生病
- 红蜘蛛|防治红蜘蛛与蚜虫,阿维菌素与哪种农药复配,可以提高防治的效果
- covid-19|无创皮肤拭子样本足以快速检测出COVID-19
- fda|FDA警告!罗氏诊断快速冠状病毒、流感检测可能会导致假阳性结果!
- 若是每天吃一个“鸡蛋”,提高免疫力,3种错误吃法反而伤身!
- 超好吃的几道家常菜,色香味俱全,营养解馋下饭,提高免疫力
- 泡发粉条时,只需多做这一步,快速泡发,粉条软滑有嚼劲
- 黄颡鱼|鱼价又涨5毛!黄颡鱼标苗如何提高成活率?学会这七点!
- 牛肉不要只会加水炖,多放3种调味料,不用高压锅也能快速软烂
