Python学习代码
文章平均质量分 72
用实际案例解析代码写法,每一步代码都有详细解释,可以实现快速入门,在后续章节中安排了部分进阶案例,便于学习者后续选择进一步的学习,代码采用详细注释,实际的案例让您学的轻松快捷。
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
nutron-ma
欢迎
展开
-
(一)汇率转换1.0-----基本语法、eval提取str中的数字
mayuhuaw""""美元到人民币的转换1.0马玉华 2019.7.211.0功能:eval提取字符串中的数字"""rmb_str_value = input('请输入人民币rmb金额') #输入得到的是字符串,就相当于一句话rmb_value = eval(rmb_str_value) #eval,将字符串中包含的数字转化为 数字us_t...原创 2019-09-02 21:53:56 · 235 阅读 · 0 评论 -
(一)汇率转换2.0大体框架、if __name__ == ‘__main__‘的意思
mayuhuaw写程序要养成良好的习惯,如注释、框架""""美元到人民币的转换2.0大体结构马玉华2019.7.21"""currency_str_value = input('请输入货币金额***+cny或usd') #输入得到的是字符串,就相当于一句话unit = currency_str_value[-3:] #将输入字符串中的单位符号取出来if un...原创 2019-09-03 10:27:39 · 196 阅读 · 0 评论 -
(一)汇率转换2.0-----字符串、if(elif、else)
""""美元到人民币的转换2.0马玉华 2019.7.212.0功能:判断输入货币是$还是¥,计算出兑换金额"""usd_to_rmb = 6.77 #汇率currency_str_value = input('请输入货币金额***+cny或usd:') #输入得到的是字符串,就相当于一句话unit = currency_str_value[-3:] #将输入字...原创 2019-09-03 10:33:01 · 265 阅读 · 0 评论 -
(一)汇率转换3.0-----循环语句while
""""美元到人民币的转换3.0马玉华2019.7.213.0功能:用户可以一直使用,直到选择退出"""usd_to_rmb = 6.77currency_str_value = input('请输入货币金额***+cny或usd,退出请输入Q:') #输入得到的是字符串,就相当于一句话i = 0while currency_str_value != 'Q': ...原创 2019-09-03 10:36:28 · 640 阅读 · 0 评论 -
(一)汇率转换4.0-----函数
""""美元到人民币的转换4.0马玉华 2019.7.214.0功能:定义函数。将2.0做成一个函数,便于模块化"""def convert_currency (x,y): #定义函数 函数名 (参数,参数,参数) z = x*y return z #需要返回值"""用于计算汇率的函数。函数是需要调用的,不调用是...原创 2019-09-03 10:40:50 · 838 阅读 · 0 评论 -
(一)汇率转换5.0-----lambda函数
养成良好的写代码习惯,记住这个的框架结构的写法"""注释标题、作者、时间、功能"""def function(): passdef main(): passif __name__ == '__main__': main()项目程序如下:""""美元到人民币的转换5.0马玉华 2019.7.215.0功能:将函数结构化。记住框架结构的写法"""def conv...原创 2019-09-03 10:48:46 · 310 阅读 · 0 评论 -
(二)绘图:五角星1.0-----turtle库基本绘图
turtle库使用turtle库在Python中绘制简单图形:• import turtle• 引入绘制图形的turtle库• 利用turtle库中的函数进行编程—模块编程turtle库:• 没有显示的input()与output()• 没有赋值语句• 大部分语句为 a.b()的形式• 表示使用a中的方法b()• 调用函数库a中的函数b()turtle库基本形状绘制函数:•...原创 2019-09-03 16:45:49 · 249 阅读 · 0 评论 -
(二)绘图:五角星2.0------------循环画图、turtle库补充
使用turtle库,加入循环操作绘制重复不同大小的图形。也可观察代码中的基本循环技巧turtle库补充画笔控制函数:• turtle.penup() 抬起画笔,之后移动画笔不绘制形状• turtle.pendown() 落下画笔,之后移动画笔绘制形状• turtle.pensize() 设置画笔宽度• turtle.pencolor() 设置画笔颜色,常用的颜色:whilte, b...原创 2019-09-04 17:21:51 · 504 阅读 · 0 评论 -
(二)绘图:五角星2.1
"""五角星的绘制2.1 马玉华;2019.7.23用大循环和小循环画很多个五角星。和2.0一样,只是封装了起来,调用封装的函数。"""import turtle #先引入库函数!def draw(): i = 0 distance_j = 0 while distance_j <= 10: while i < 5:...原创 2019-09-04 17:31:23 · 200 阅读 · 0 评论 -
(二)绘图:五角星2.2-----turtle库画笔抬起、放下、粗细、颜色
"""五角星的绘制2.2 马玉华;2019.7.23用大循环和小循环画很多个五角星。增加了画笔抬起、放下、粗细、颜色"""import turtle #先引入库函数!def draw(): """ 绘制五角星的函数 """ #将起点向屏幕左边移动一点 turtle.penup() turtle.backward(200)...原创 2019-09-04 17:33:35 · 3024 阅读 · 0 评论 -
(二)绘图:五角星3.0----------递归函数
• 使用turtle库在Python中绘制简单图形(1.0)• 加入循环操作绘制重复不同大小的图形(2.0)• 将函数与循环结合(递归函数)绘制2.0的图形(3.0)递归• 函数定义中调用函数自身的方式称为递归• 能够非常简洁地解决重要问题• 每次函数调用时,函数参数会临时存储,相互没有影响• 达到终止条件时,各函数逐层结束运算,返回计算结果• 要注意终止条件的构建,否则递归无法...原创 2019-09-04 17:40:03 · 1548 阅读 · 0 评论 -
(三)基础代谢率bmr的计算2.0---str、float、int类型转换
案例描述:• 基础代谢率( Basal Metabolic Rate, 简称BMR)是指:我们在安静状态下( 通常为静卧状态)消耗的最低热量,人的其他活动都建立在这个基础上。• 计算公式:BMR(男) = (13.7×体重(kg)) + (5.0×身高(cm)) - (6.8×年龄) + 66BMR(女) = (9.6×体重(kg)) + (1.8×身高(公分)) - (4.7×年龄)...原创 2019-09-04 20:45:52 · 1292 阅读 · 0 评论 -
(三)str、list 的操作 1.0
mayuhuaw字符串和列表的基本操作:input_str = '男/72/178/22' #先写出一个字符串input_str.split('/') #用/分割字符串[‘男’, ‘72’, ‘178’, ‘22’]l = input_str.split('/')type(l)<class ‘list’>l[0] #取出列表list中第一个小字符串‘男...原创 2019-09-04 21:04:52 · 157 阅读 · 0 评论 -
(三)基础代谢率bmr的计算3.0---字符串分割、格式化输出
字符串操作补充:• 字符串分割str.split(), https://docs.python.org/3/library/stdtypes.html#str.split• 字符串格式化输出,使用{}占位str.format()如:‘{}公斤, {}厘米’.format(70, 175)重复输出时可以使用数字标记顺序‘{0}公斤, {1}厘米, {0}公斤’.format(70, ...原创 2019-09-04 21:11:22 · 392 阅读 · 0 评论 -
(三)基础代谢率bmr的计算4.0-----异常处理机制
异常处理机制• 引入异常处理机制可以用来解决程序运行时的错误• 语法try: <body>except <ErrorType1>: <handler1>except <ErrorType2>: <handler2>except: <handler0>当 Python遇到try语句,先尝试执行try包...原创 2019-09-04 21:22:09 · 461 阅读 · 0 评论 -
(四)52周存钱挑战 1.0
案例描述• 52周存钱法,即52周阶梯式存钱法,是国际上非常流行的存钱方法。• 按照52周存钱法,存钱的人必须在一年52周内,每周递存10元• 例子:第一周存10元,第二周存20元,第3周存30元,一直到第52周存520元。这样一年下来会有多少钱呢?10+20+30+40+50+……+520=13780"""52周存钱挑战1.0马玉华 2019.7.25""""""5...原创 2019-09-05 10:37:06 · 409 阅读 · 0 评论 -
(四)52周存钱挑战 2.0----列表操作,math库
"""52周存钱挑战2.0马玉华 2019.7.252.0新增:对列表进行操作。增添新元素2.0新增:用math库函数,对列表求和"""import math #载入库函数def main(): week_i = 1 #周数 money_per_week = 10 #每周存入的钱 week_total = eval(input('请输入存钱总...原创 2019-09-05 10:50:05 · 239 阅读 · 0 评论 -
(四)52周存钱挑战3.0-----for循环遍历列表、range()
for 循环• 使用for语句可以循环遍历整个序列的内容 for < x > in < list1 >: <body>• 循环变量x在每次循环时,被赋值成对应的元素内容• 与while循环的区别 • for循环的次数固定,即所遍历的序列长度 • while为无限循环• range(n) 返回一个可迭代的对象(0到n-1) • list(ran...原创 2019-09-05 11:08:46 · 503 阅读 · 0 评论 -
(四)52周存钱挑战 4.0-----函数的参数传递:无返回值案例
函数的参数传递• 函数通过参数与调用程序传递信息• 变量的作用范围• 局部,函数内的变量作用范围只在函数内• 全局,函数外的变量,在所有函数中都能使用, global• 函数的形参只接收实参的值,给形参赋值并不影响实参"""52周存钱挑战4.0马玉华 2019.7.252.0新增:对列表进行操作。增添新元素2.0新增:用math库函数,对列表求和3.0新增:使用for循环...原创 2019-09-05 12:38:08 · 125 阅读 · 0 评论 -
(四)52周存钱挑战 4.1-----变量传递问题:全局变量用法!
"""52周存钱挑战4.1马玉华 2019.7.252.0新增:对列表进行操作。增添新元素2.0新增:用math库函数,对列表求和3.0新增:使用for循环、range(),替代while4.0新增:用函数结构化; 重点:函数的参数传递4.1新增:解决变量传递问题:全局变量!"""import math #载入库函数money_saving = 0...原创 2019-09-05 12:47:52 · 163 阅读 · 0 评论 -
(四)52周存钱挑战 4.2-----变量传递:return !
"""52周存钱挑战4.2马玉华 2019.7.252.0新增:对列表进行操作。增添新元素2.0新增:用math库函数,对列表求和3.0新增:使用for循环、range(),替代while4.0新增:用函数结构化; 重点:函数的参数传递4.2新增:解决变量传递问题:return !"""import math #载入库函数def calcula...原创 2019-09-05 13:16:48 · 125 阅读 · 0 评论 -
(四)52周存钱挑战 5.0-----处理时间:datetime库
datetime库• 处理时间的标准函数库datetime• datetime.now() 获取当前日期和时间• 字符串 -> datetimedatetime.strptime(),解析时间字符串• datetime -> 字符串datetime.strftime() 格式化datetime为字符串显示• 日期时间格式参考:https://docs.python.or...原创 2019-09-05 13:25:30 · 262 阅读 · 0 评论 -
(五)判断第几天1.0----元组、datetime库,sum求和元组
案例描述• 输入某年某月某日,判断这一天是这一年的第几天?• 例子:输入的日期为2017/03/05,是2017年的第几天?输入的日期为2012/03/05,是2012年的第几天?• 分析:每个月份的天数不同闰年与平年的2月份天数不同,平年28,闰年29闰年判断:四年一闰,百年不闰,四百年再闰元组• 元组( tuple)是特殊的序列类型• 一旦被创建就不能修改,使得代码...原创 2019-09-05 16:46:57 · 363 阅读 · 0 评论 -
(五)判断第几天2.0----列表与元组,sum求和列表
用列表替换元组列表与元组• 元组是不可变的,列表是可变的• 元组通常由不同的数据组成,列表通常是由相同类型的数据组成。(但是他们都是可以放不同的数据类型的)• 元组表示的是结构,列表表示的是顺序• …案例代码"""判断第几天2.0马玉华 2019.7.271.0功能:输入年月日,判断是一年中的第几天2.0新增:不用元组,用列表!"""import datetime...原创 2019-09-05 17:01:50 · 397 阅读 · 0 评论 -
(五)判断第几天3.0----集合、range(a:b)
集合• Python中的集合( set)类型同数学中的集合概念一致,即包含0或多个数据项的无序组合• 集合中的元素不可重复• 集合是无序组合,没有索引和位置的概念• set()函数用于集合的生成,返回结果是一个无重复且排序任意的集合• 集合通常用于表示成员间的关系、元素去重等案例代码:"""判断第几天3.0马玉华 2019.7.271.0功能:输入年月日,判断是一年中的第...原创 2019-09-05 20:30:55 · 274 阅读 · 0 评论 -
(五)判断第几天4.0----字典、字典的操作和遍历
字典• 字典类型( dict)是“键–值”数据项的组合,每个元素是一个键值对• 如:身份证号(键) --个人信息(值)• 字典类型数据通过映射查找数据项• 映射:通过任意键查找集合中的值的过程• 字典类型以键为索引,一个键对应一个值• 字典类型的数据是无序的字典的操作• 增加一项:字典[‘key’] = value• 访问字典[‘key’],访问得到相应的value• 删...原创 2019-09-05 20:50:48 · 229 阅读 · 2 评论 -
(六)判断密码强弱1.0----检测str包含字母、数字
案例描述• 密码强度:是指一个密码对抗猜测或时暴力破解的有效程度;一般是指一个未授权的访问者得到正确密码的平均尝试次数• 强密码可以降低安全漏洞的整体风险• 简易版(常用)规则:密码长度至少8位密码含有数字密码含有字母案例分析• 设置一个变量strength_level用于记录密码的强度,初始为0。满足一个条件,对其加1• 长度判断:使用len()方法• 包含数字判断:...原创 2019-09-05 22:05:59 · 696 阅读 · 3 评论 -
(六)判断密码强弱2.0----break、continue
2.0增加功能:限制密码设置次数;循环的终止案例分析• 如果用户在规定次数内设置符合要求的密码,则终止循环• 如何终止循环?循环的终止• break语句终止整个循环• continue语句只终止本次循环,而不终止整个循环的执行案例代码"""判断密码强弱2.0马玉华 2019.7.30密码长度至少8位,密码包含字母,密码包含数字2.0新增:循环的终止。限制密码设...原创 2019-09-05 22:25:50 · 234 阅读 · 0 评论 -
(六)判断密码强弱3.0----文件的操作(打开、操作、关闭)
3.0增加功能:保存设置的密码及其对应的强度到文件中文件的基础• 文件:存储在外部介质(如:硬盘)上的数据或信息的集合• 文本文件:一般指只有字符编码存储的文件,能够被最简单的文本编辑器直接读取• 编码:信息从一种形式转换为另一种形式的过程• 常用的编码:ASCII, Unicode, UTF-8…• 多行文本,用 \n 表示换行文件的操作• 步骤:打开文件 -> 操作文件(...原创 2019-09-05 22:48:51 · 131 阅读 · 0 评论 -
(六)判断密码强弱4.0----文件的读取
4.0增加功能:读取保存的密码文件的操作• 读取操作:从文件中读取数据到计算机内存中• read(): 返回值为包含整个文件内容的一个字符串• readline(): 返回值为文件下一行内容的字符串• readlines(): 返回值为整个文件内容的列表,每项是以换行符为结尾的一行字符串• 文件的遍历案例分析"""判断密码强弱4.0马玉华 2019.7.30密码长度至...原创 2019-09-05 22:59:43 · 182 阅读 · 0 评论 -
(六)判断密码强弱4.1----结合3.0和4.0
"""判断密码强弱4.1马玉华 2019.7.30密码长度至少8位,密码包含字母,密码包含数字2.0新增:循环的终止。限制密码设置的尝试次数。3.0新增:保存设置的密码、强度到文件中4.1新增:结合3.0和4.0,保存文件并读取文件"""def check_number_exist(password): """判断是否含有数字""" #设置一个参量用于返回tr...原创 2019-09-05 23:06:18 · 211 阅读 · 0 评论 -
(六)判断密码强弱5.0-----面向对象
案例描述3.0增加功能:保存设置的密码及其对应的强度到文件中4.0增加功能:读取保存的密码5.0增加功能:将相关方法封装成一个整体:面向对象编程面向过程vs面向对象• 面向过程(POP):以程序执行过程为设计流程的编程思想(之前设计的程序都是面向过程的)• 面向对象(OOP):以事物为中心的编程思想• 什么是对象(Object)?• 现实世界中的对象:属性,行为• 对象例子:1...原创 2019-09-07 15:39:44 · 181 阅读 · 0 评论 -
(六)面向对象5.0-创建对象、使用说明
• 面向过程:根据业务逻辑从上到下写垒代码• 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可• 面向对象:对函数进行分类和封装,让开发“更快更好更强…”面向对象:对函数进行分类和封装创建类和对象面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。类就是一个模板,模板里可以...原创 2019-09-07 16:27:54 · 124 阅读 · 0 评论 -
(六)判断密码强弱6.0-----面向对象、从类中返回不在self属性中的参数
6.0增加功能:将文件操作封装到一个类中本文包含知识点:调用不在self属性中的参数,可用return返回相应的参数面向对象的特点封装• 将数据及相关操作打包在一起• 支持代码复用继承• 子类(subclass)借用父类(superclass)的行为• 避免重复操作,提升代码复用程度• 定义 class ClassName(SuperClassName)多态• 在不同情况下用...原创 2019-09-07 17:01:20 · 96 阅读 · 0 评论 -
(七)模拟掷骰子1.0-----random模块、enumerate()函数
案例描述• 通过计算机程序模拟抛掷骰子,并显示各点数的出现次数及频率• 比如,抛掷2个骰子50次,出现点数为7的次数是8,频率是0.161.0功能:模拟抛掷1个骰子,并输出其结果案例分析• 如何通过Python模拟随机事件?或者生成随机数?答案:random模块• 遍历列表时,如何同时获取每个元素的索引号及其元素值?答案:enumerate()函数random模块• rand...原创 2019-09-08 14:00:35 · 543 阅读 · 0 评论 -
(七)模拟掷骰子2.0
案例描述• 通过计算机程序模拟抛掷骰子,并显示各点数的出现次数及频率• 1.0功能:模拟抛掷1个骰子,并输出其结果• 2.0功能:模拟抛掷2个骰子,并输出其结果案例代码"""模拟掷骰子2.0马玉华 2019.8.21.0功能:模拟掷 1 个骰子,并输出结果2.0功能:模拟掷 2 个骰子,并输出结果和1.0差不多,只是多用了个列表"""import random...原创 2019-09-08 14:42:27 · 513 阅读 · 0 评论 -
(七)模拟掷骰子2.1-----zip()函数、list(zip(list1, list2))、dict(zip(list1,list2))
案例描述• 通过计算机程序模拟抛掷骰子,并显示各点数的出现次数及频率• 1.0功能:模拟抛掷1个骰子,并输出其结果• 2.0功能:模拟抛掷2个骰子,并输出其结果案例分析• 如何将对应的点数和次数关联起来?答案: zip()函数zip()函数zip()函数将两个列表对应的元素打包成一个元组,返回一个对象,将这个对象转化成list或者字典形式均可:list(zip(list1, l...原创 2019-09-08 14:48:57 · 969 阅读 · 0 评论 -
(七)模拟掷骰子3.0-----可视化:matplotlib画散点图
案例描述• 1.0功能:模拟抛掷1个骰子,并输出其结果• 2.0功能:模拟抛掷2个骰子,并输出其结果• 3.0功能:可视化抛掷2个骰子的结果案例分析• Python数据可视化:matplotlib模块matplotlib模块• matplotlib是一个数据可视化函数库• matplotlib的子模块pyplot提供了2D图表制作的基本函数• 例子:https://matplot...原创 2019-09-08 16:08:33 · 444 阅读 · 0 评论 -
(七)模拟掷骰子4.0-----matplotlib画直方图
案例描述• 1.0功能:模拟抛掷1个骰子,并输出其结果• 2.0功能:模拟抛掷2个骰子,并输出其结果• 3.0功能:可视化抛掷2个骰子的结果• 4.0功能:对结果进行简单的数据统计和分析案例分析• 简单的数据统计分析 :matplotlib直方图直方图• 直方图是一种对数据分布情况的图形表示• 首先要对数据进行分组,然后统计每个分组内数据的数量。• 作用:1.显示各分组频率或...原创 2019-09-08 16:23:46 · 848 阅读 · 0 评论 -
(七)模拟掷骰子5.0-----Numpy、matplotlib设置标题、坐标轴、轴上点的标签
案例描述• 3.0功能:可视化抛掷2个骰子的结果• 4.0功能:对结果进行简单的数据统计和分析• 5.0功能:使用科学计算库简化程序,完善数据可视化结果案例分析• 如何通过Python模拟随机事件?或者生成随机数? random模块• 遍历列表时,如何同时获取每个元素的索引号及其元素值? enumerate()函数• 如何将对应的点数和次数关联起来? zip()函数• Pyth...原创 2019-09-08 16:56:25 · 424 阅读 · 0 评论