首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

快速提高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 

输出结果

单位转换程序 

实现三对数值转换:

输入半径,输出圆面积;

输入美元,输出人民币,汇率为:1¥=6.9367 RMB;

输入公里,输出英里,转换值: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这个基本没问题,那就先实现这个,然后在处理其他。

实现一行打印,例如1x2,2x3,3x3,从1到9调用lines函数,这样就出来了。

但是每次输出就会换行,print方法如果输出不换行,这个题目基本就快完成了,

读者朋友可以自己看下print函数说明。

代码实现:

实现函数,代码实现如下:

# coding:utf-8__author__ = 'Mr.数据杨'__explain__ = ''for i in range(1, 10):for j in range(1, i+1):print(j, "*",  i, "=",(i*j), end="  ")print()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很强大呀,后期陆续介绍更懂内容

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200826A0LL0600?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券