Python
ly_qiu
一切都有最好的安排
展开
-
Python------面向对象与面向过程的区别
面向过程编程1)概念“面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。2) 特性模块化 、流程化3)优缺点性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能时最重要的因素。(缺点)但是没有面向对象易维护、易复用、易扩展函数式编程概念及思想函数式编程是种编程方原创 2020-08-03 11:48:58 · 1765 阅读 · 0 评论 -
Python的高级特性------异常处理机制
如图所示,使用python时有时会遇到一些错误。一旦有错误就需要我们对其进行一些处理,此时就可以应用异常处理机制异常处理机制 - 在Python当中,如果一个程序在运行的时候出错,Python解释器会自动的在出错的地方生成一个异常对象 - Python解释器会自动的在出错地方的附近寻找有没有对这个异常对象处理的代码 - 所谓异常处理代码就是try......excepct......else......finally语句 - 如果没有,Python解释器会自动的将这个异常对象抛给其调用函数,原创 2020-08-03 10:31:09 · 177 阅读 · 0 评论 -
【详解】Python-----------闭包和装饰器
装饰器的定义器指的是工具,而程序中的函数就是具备某一功能的工具,所以装饰器指的是为被装饰器对象添加额外功能的工具/函数,装饰器就是用来装饰一个函数或是一个类的工具装饰器其实就是在遵循以下两个原则(开放封闭原则)的前提下为被装饰对象添加新功能开放封闭对扩展开放对已经实现的功能代码块封闭,不修改被装饰对象的源代码装饰器的实现 - 装饰器本质上是一个函数,该函数是用来处理其他函数。 - 它可以让其他函数在不需要求改代码的前提下增加额外的功能 - 并且装饰器的返回值也是一原创 2020-08-03 10:08:44 · 380 阅读 · 0 评论 -
python小知识------return和yield的区别
函数中return和yield的区别是什么?函数中遇到return就结束执行;如果在函数中包含yield关键字,调用函数的返回值则是生成器1)return# 理解return关键字的工作原理def welcome(): while True: print('step 1') # 函数中遇到return,函数执行结束,后面的代码不会继续执行 return 'ok' print('step 2')result = welcome()prin原创 2020-07-31 17:00:13 · 359 阅读 · 0 评论 -
Python中的生成器的创建方法 (生成式改写 + yield关键字)
在Python中,一边循环一边计算的机制,称为生成器:Generator1. 生成器的应用性能限制时需要用到,比如在读取一个10G的文件时,如果一次性将10G的文件加载到内存处理的话(read方法),内存肯定会溢出;但使用生成器把读写交叉进行,如使用(readline和readlines)就可以在循环读取的同时不断处理,这样就可以节省大量的内存空间。如:使用列表生成式时,会将打印好的内容一次性全部输出,如果我们写成range(10000000)等待时间就会很长,此处也能验证什么时候需要生成器?这一点原创 2020-07-31 16:57:13 · 602 阅读 · 0 评论 -
Python中文件的多种读取方式------read() readline() readlines()
1. 实验前提lyqiu.txt文件中的内容如下所示,在之后的读取中都会与之进行对比。2. 常见的读取方式命令作用read()读取文件内容,返回文件的所有内容readline()一行一行的读取文件的内容readlines()读取文件内容,返回一个列表,列表里的元素分别为文件每行的内容read(5)指定读取5个字符2.1 read()最基本的读取方式,可以读出文件的所有内容f = open('lyqiu.txt', 'r')print(f.re原创 2020-07-30 18:00:51 · 1868 阅读 · 0 评论 -
Python------对文件的读写操作(r , w , a+)
1. 文件的打开在python中,使用open函数,可以打开一个已经存在的文件,或者创建一个新文件。如果文件不存在就创建出来;如果存在就先清空,然后写入数据格式为: open(文件名 访问模式) 举例: f = open('test.txt', 'w')2. 文件的打开模式:读 / 写 / 读写1)读直接选择(r),如果不写对文件的操作方式,默认情况下是r2)写选择是清空表中内容重新(w)写还是在末尾进行追加(a)3)读写若是要清空原先内容(w+);若是不清空则判断是否从原创 2020-07-30 17:08:41 · 1998 阅读 · 1 评论 -
python练习------使用递归函数实现阶乘
递归函数:一个函数在内部调用自己本身(自己调用自己),考虑什么时候跳出阶乘练习:计算阶乘# 1!=1# 2!=2*1# 3!=3*2!# ....# n!=n*(n-1)!# def factorial(n):# if n <= 1:# return 1 函数遇到return结束执行# else:# return n * factorial(n-1)## result = factorial(8)# print(resu原创 2020-07-29 17:35:58 · 2783 阅读 · 0 评论 -
Python------匿名函数的定义与应用
1.匿名函数的定义匿名函数指一类无须定义标识符的函数或自程序,Python用lambda语法定义匿名函数,只需用表达式而无须申明。(省略了用def声明函数的标准步骤)函数语法lambda *args, **kwargs:(args,kwargs)python中有两类函数,一种是def定义,一种是lamba函数。以求两数之和为例普通函数匿名函数def function(x,y):return x+ylambda x,y:x+y2.匿名函数的应用求最大值原创 2020-07-29 17:15:22 · 1906 阅读 · 0 评论 -
函数的实参与形参(位置 / 默认 / 可变 / 关键字参数)
一. 函数的参数函数分为形参(形式参数)和实参(实际参数)形参又分为:位置参数(必选参数)、默认参数、可变参数、关键字参数实参调用函数时,小括号中的参数,用来传递给函数用的,称为"实参"形参定义函数时,小括号中的参数,是用来接收参数用的,称为"形参"。此外形参是可以任意修改的。必选参数必须要传递的参数默认参数如果没有传递参数,使用默认值;如果传递了参数,则使用传递的参数可变参数用户查undi的参数个数是可以变化的参数,一般写做 *args ,数据以元组(tup原创 2020-07-29 15:44:44 · 3647 阅读 · 3 评论 -
【图解】TypeError: xxx() takes 1 positional argument but 2 were given
问题在学习函数的参数时,出现了如下问题,报错提示为TypeError: enrool() takes 1 positional argument but 2 were given解决根据上图中的报错信息可以知道:enrool()只接收一个位置参数,此处相当于给了两个参数'lyqiu', 21,所以才出现了错误。可以使用以下两种方法进行修改。方法1考虑到关键字参数**kwargs是以字典的方式存储的,就需要两个信息:key值与value值。所以添加成age = 21即可方法2添加一个位置参数原创 2020-07-29 15:36:55 · 49743 阅读 · 1 评论 -
python练习-------itchat获取好友信息
前期准备点击Terminal打开命令行,输入pip3 install itchat -i https://pypi.douban.com/simple等待安装扫码登陆import itchat# 1. Login weixinitchat.auto_login()# 2. get friends informationfriends = itchat.get_friends()print(friends)# First friend information is yoursm原创 2020-07-28 10:06:52 · 227 阅读 · 0 评论 -
列表、元组、集合、字典之间的对比
一. 定义1.列表有关列表的定义: 1.list(列表):一个变量存储了多个信息 2.列表中可存储不同的数据类型 3.列表中可嵌套列表 4.列表中的每个元素都分配了一个位置,一个元素对应一个位置。索引值从0开始2.元组有关元组的定义: - 元组是一种序列,可使用 小括号() 去界定 - 元组中各元素之间用逗号隔开 - 元组本身是一个不可变的数据类型,没有增删改查。如果要修改,可以使用list函数把它转化成列表 - 元组内可存储任意类型3.集合有关集合的定义: -原创 2020-07-20 18:52:39 · 901 阅读 · 2 评论 -
python练习:用户登陆程序需求(三次机会)
要求输入用户名和密码;判断用户名和密码是否正确? (name=‘root’, passwd=‘westos’)为了防止暴力破解, 登陆仅有三次机会, 如果超过三次机会,报错提示;代码#!/usr/bin/python3try_Count = 0while try_Count < 3: print("*****************用户登陆系统***********************") name = input("Name: ") password原创 2020-07-19 10:51:09 · 3361 阅读 · 0 评论 -
认识python中的运算符(算术、赋值、关系、逻辑运算符)
算术运算符运算符作用**次方/除法//除法取整%取余+加法-减法*乘法注意:python3中,/操作符是做浮点除法,而//是做整除python2中,/就是整除,即和python3中的//操作符是一样的练习:赋值运算符运算符作用=等于+=加等-=减等/=除等*=乘等%=取余等练习:关系运算符运算符作用>大于&g原创 2020-07-18 18:28:24 · 609 阅读 · 0 评论 -
Python中实现:十进制转换为二进制、八进制、十六进制
python中的进制转换1)整数的范围取决于机器是32位还是64位,长整数的范围是取决于虚拟内存的大小2)整数一般以十进制表示,但是python也支持八进制(0开始)或十六进制(0x开始)来表示整数进制转换命令转二进制bin(10)转八进制oct(10)转十六进制hex(10)练习:十进制转换成二进制 bin(10)十进制转换成八进制 oct(10)十进制转换成十六进制 hex(10)...原创 2020-07-18 17:44:23 · 3133 阅读 · 0 评论 -
详解python中函数的定义方法与创建
1.函数的定义函数是组织好的,可重复使用的,用来实现单一或相关联功能的代码段函数能提高应用的模块性,和代码的重复利用率 函数的定义规则 1.函数代码块要以 def 关键词开头,后接函数标识符名称与括号(),同时不要忘记冒号':'的使用 2.不主动调用函数时,函数不会被使用 3.圆括号之间可以用于定义参数,任何入参数和自变量必须放在圆括号中间。 4.函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 5.函数内容以冒号起始,并且缩进。 6.return [表达原创 2020-06-03 11:56:33 · 2497 阅读 · 0 评论 -
python--------字典的综合练习2
本节练习重复的单词: 此处认为单词之间以空格为分隔符,并且不包含,和.;随机生成100个卡号:卡号以6102009开头,后3位从001-100题目要求1重复的单词: 此处认为单词之间以空格为分隔符,并且不包含,和.; # 1. 用户输入一句英文句子; # 2. 打印出每个单词及其重复的次数; "hello java hello python" # hello 2 # java 1 # python 1依次循环遍历列表: (1)如果列表元素不在字典的key中,将原创 2020-05-30 11:49:02 · 715 阅读 · 0 评论 -
python练习--------实现栈的工作原理(包含代码实例与结果展示)
题目要求栈的工作原理 入栈 append 出栈 pop 栈顶元素 栈的长度 len 栈是否为空 len == 0 代码注意:可以先搭建好框架,即while循环与if条件语句choice == '1’时,一定要加上引号出栈判断,先判断是否为空。if语句后检测的是bool值,可直接写if stack:。当stack为空时,条件不成立,完成else后的命令内容。栈顶元素应该是列表最后一个元素stack = []info = """ 栈操作 1.入栈 2.出原创 2020-05-30 11:05:01 · 393 阅读 · 0 评论 -
python------字典的综合练习题
题目要求 # 数字重复统计: 1). 随机生成1000个整数; 2). 数字的范围[20, 100], 3). 升序输出所有不同的数字及其每个数字重复的次数;代码import randomall_nums = [] #定义空列表存储数字for item in range(1000): all_nums.append(random.randint(20,100))# print(all_nums)sorted_nums = sorted(all_nums)原创 2020-05-29 22:46:50 · 1117 阅读 · 0 评论 -
详解字典的增加、删除与查看的多种方法
字典的增加1.字典中没有这个键值对如果字典没有这个键值对,则直接追加在字典的后面1)代码:services = { 'http':'80', 'ssh':'22', 'ftp':'21'}print(services)services['mysql'] = 3306print(services)2)结果展示:2.字典中存在这个键值对当字典中存在这个键值对,则会直接修改这个key对应的value值1)代码:services = { 'http':'原创 2020-05-29 22:33:49 · 1325 阅读 · 0 评论 -
字典的特性(成员操作符、循环遍历)
字典的特性1.支持成员操作符1)代码:d = { '1':'a', '2':'b'}print('1' in d)print('2' not in d)2)结果展示:2.支持循环遍历1)代码:d = { '1':'a', '2':'b'}for key in d: print(key,d[key])2)结果展示:默认输出是key值,不包含value使用d[key]表示,通过key值,寻找value值验证集合不支持其他特性原创 2020-05-29 15:32:16 · 246 阅读 · 0 评论 -
python中字典的定义与如何创建字典
字典(dict)的定义有关字典的定义: - 字典是一个无序的数据类型,使用print输出时,通常与定义顺序不一致 - 定义字典时,使用{}或dict()。此时就揭示了为什么集合定义空集时不可直接使用大括号,而要使用set([]),因为字典对应的也是大括号。 - 字典的每个键值key=>value对用冒号':'分割;每个键值对之间用逗号','分割。格式为 d = {key1:value1,key:value2} '键值对'引申理解: 1)键一般时唯一的,如果重复最后的原创 2020-05-29 12:57:37 · 11219 阅读 · 0 评论 -
python中集合的常用方法(元素的增加、弹出与删除)+(集合的交集、并集、差集、对等差集与超积)
集合的常用方法1.增加元素集合是一个无序的数据类型,所以添加顺序和再集合中的存取顺序不一定一样1)代码:s = {6,7,8,9}s.add(1) #增加一个元素print(s)s.update({5,4,3}) #增加多个元素print(s)2)结果展示:2.集合元素的弹出1)代码:s = {5,1,3,7,9}print(s)s.pop()print(s)s.pop()print(s)2)结果展示:3.集合元素的删除1)原创 2020-05-28 21:11:16 · 1395 阅读 · 0 评论 -
集合的特性(成员操作符、for循环遍历)
集合与列表、元组不同。只支持成员操作符和for循环遍历,不支持索引/切片/重复等特性。集合的特性1.支持成员操作符代码:s = {1,2,3}print(1 in s)print('lyqiu' in s)结果展示:2.支持for迭代代码:s = {1,2,3}for i in s: print(i,end='|')结果展示:同时也支持枚举验证集合不支持其他特性1.不支持 index 与 slide报错信息显示:set不支持索引,因为集合时一个无序的数据类型原创 2020-05-28 18:34:38 · 238 阅读 · 0 评论 -
python中集合的定义与如何创建集合
集合(set)的定义有关集合的定义: - 集合的元素不可重复,可使用 大括号{} 去界定; - 集合中各元素之间用逗号隔开; - 创建空集合时,必须使用set([]),而不是{}。因为{}时用来创建一个空字典的。集合的创建1.大括号+逗号隔开集合里的元素是不可重复的,所以展现的结果中1,2,3不会重复出现代码:s = {1,2,3,1,2,3,4,5}print(s)print(type(s))结果展示:2.集合内可只存在一个元素代码:s1 = {'lyqiu'}原创 2020-05-28 18:04:35 · 3731 阅读 · 0 评论 -
元组的应用场景(赋值、转化为列表间接排序)
赋值有多少个元素,就使用多少变量去接收。这样就可以一次将值赋给我们相应的变量1.代码t = ('lyqiu',21,135)name,age,score = tprint(name,age,score)2.结果展示对元组进行排序1.代码scores = (100,98,65,72,91)scoreli = list(scores) #对元组直接进行排序,会报错。所以我们可以先转换为列表scoreli.sort()print(scores)print(scoreli)原创 2020-05-28 16:53:16 · 370 阅读 · 0 评论 -
python中元组的常用方法
元组的常用方法t = ('lyqiu',1,6.5,True,'lyqiu')print(t.count('lyqiu')) #查看该元素出现的次数print(t.index(1)) print(t.index(6.5)) #查看浮点型6.5的下标print(t.index('lyqiu'))原创 2020-05-28 11:59:16 · 268 阅读 · 0 评论 -
元组的特性( index索引、slide切片、repeat重复、link连接、成员操作符、for迭代 )
元组的特性1.索引与切片元组 Users = (‘root’,‘westos’,‘lyqiu’)作用print(Users[0])打印元组中的第一个元素print(Users[-1])打印字符串中的倒数第一个元素print(Users[1:])除了第一个元素,其余全打印print(Users[::-1])倒序打印练习:2.repeat 重复命令作用print(Passwds * 3)重复三次练习:3.link 连接原创 2020-05-28 11:30:14 · 433 阅读 · 0 评论 -
python中元组的定义与如何创建元组
元组(tuple)的定义有关元组的定义: - 元组是一种序列,可使用`小括号()`去界定 - 元组中各元素之间用逗号隔开 - 元组本身是一个不可变的数据类型,没有增删改查。如果要修改,可以使用list函数把它转化成列表 - 元组内可存储任意类型元组的创建1.小括号+逗号隔开t = (1,2,3,True,'lyqiu') #整型,浮点型,bool,字符串print(t)print(type(t))练习结果:2.元组里的数据类型可以是列表t1 = ([1,2,3]原创 2020-05-28 10:57:47 · 18194 阅读 · 0 评论 -
python的常用内置方法
本节学习内容最大、最小值sum求和枚举压缩字符串引言在之前的练习中,我们利用for循环,完成求1-100所有奇/偶数的和,但此时我们可以使用python的内置函数,只需要一条命令,简简单单就能完成。1.最大/最小值min(1,3,5,7)max(2,4,6,8)2.sum求和sum(range(1,101))3.枚举会返回索引值和对应的value值4.zip方法压缩字符串#zips1 = 'lyqiu's2 = '12345'for i in zip(s1原创 2020-05-28 09:28:15 · 203 阅读 · 0 评论 -
列表与嵌套列表的特性 ( index索引、slide切片、repeat重复、link连接、成员操作符、for迭代 )
列表的特性1.index 索引列表service = [‘ftp’,‘http’,‘apache’,‘ssh’]作用print(service[0])打印列表中的第一个元素print(service[2])打印字符串中的第三个元素print(service[-1])打印字符串中的倒数第一个元素练习:2.slide 切片命令作用print(service[::-1])反转print(service[1:])除了第一个元素,其余原创 2020-05-28 09:20:11 · 319 阅读 · 0 评论 -
python中列表的定义与如何创建列表
列表的定义有关列表的定义: 1.list(列表):一个变量存储了多个信息 2.列表中可存储不同的数据类型 3.列表中可嵌套列表 4.列表中的每个元素都分配了一个位置,一个元素对应一个位置。索引值从0开始列表的创建list(列表):一个变量存储了多个信息,使用ipython验证列表中可存储不同的数据类型,使用pycharm验证 ,创建列表并打印信息列表中可嵌套列表...原创 2020-05-28 09:16:38 · 2418 阅读 · 0 评论 -
python-------列表的综合练习
本节练习题:用户登陆系统后台管理系统:管理员管理会员信息练习1:用户登录系统1)题目要求1.系统里面有多个用户,用户的信息目前保存在列表里面 users = ['root','westos'] passwd = ['123','456']2.用户登陆(判断用户登陆是否成功 1).判断用户是否存在 2).如果存在 1).判断用户密码是否正确 如果正确,登陆成功,推出循环 如果密码不正确,重新登陆,总共有三次机会登陆原创 2020-05-27 17:21:40 · 632 阅读 · 0 评论 -
python------输入两个字符串,在第一字符串中删除第二个字符串中所包含的所有字符。
python之字符串练习41)题目描述- 题目描述: 输入两个字符串,从第一字符串中删除第二个字符串中所有的字符。例如,>输入”They are students.”和”aeiou”,则删除之后的第一个字符串变成”Thy r stdnts.”- 输入描述: 每个测试输入包含2个字符串 - 输出描述: 输出删除后的字符串 - 示例1: 输入 They are students. aeiou 输出 Thy r stdnts.2)代码考察点:r原创 2020-05-27 16:05:25 · 2483 阅读 · 0 评论 -
python之列表的 排序 + 打乱
列表的排序1)sort按照ASCII码进行排序大小写排序一致,说明不区分大小写排序2)练习按ASCII码排序lower与upper结果一致,说明排序不区分大小写列表的打乱在某些场合需要将原本排列好的数字等元素进行打乱,来方便我们的使用。...原创 2020-05-27 10:18:04 · 550 阅读 · 0 评论 -
python之列表元素的查看
列表元素的查看1)count 查看一个元素出现的次数命令应用print(列表名.count(‘元素’))查看一个元素出现的次数2)index 查看指定元素的索引值原创 2020-05-27 10:17:37 · 2833 阅读 · 0 评论 -
python之对列表元素进行修改
列表元素的修改1)index可通过索引的方式重新赋值,将http修改为了mysql1)slide通过切片进行赋值,将前两个元素替换出来原创 2020-05-26 17:36:30 · 1372 阅读 · 0 评论 -
python之列表删除的三种方法
列表元素的删除1.使用pop进行弹出1)实验环境ipython2)使用方法pop()表示弹出一个元素元素在弹出后,列表中就不会存在此元素了。如果在弹出时,没有赋值给一个变量,所弹出的元素不仅会占用我们的空间,而且我们也无法使用service.pop(0)表示弹出指定元素3)验证要将弹出的元素赋值给一个变量弹出指定元素当为空列表时无法进行弹出2.使用remove删除指定元素1)实验环境pycharm2)展示注意:a的值为None,说明删除成功2.使用d原创 2020-05-26 17:24:28 · 7449 阅读 · 0 评论 -
python之列表添加的四种方法
列表的添加1)+ 添加2)append 追加一次只能添加一个元素到列表中,适合用于循环里3)extend 拉伸可一次添加多个元素到列表中4)insert 插入append与extend都是添加在最后,insert可以插入在指定位置命令作用service.insert(n,’ ')将’'中的内容,插入到第n个之后service.insert(1,‘samba’)将samba插入到第一个之后练习:插入到第三个之后插入到第二个后插入两个本结果原创 2020-05-26 16:55:48 · 19720 阅读 · 1 评论