python 学习基础篇
python 学习基础篇
小树啊!!
这个作者很懒,什么都没留下…
展开
-
28 协程
1 生成器协程# Process Thread 生成器完成import timedef task1(): for i in range(3): print('A' + str(i)) yield # yield类型生成器 time.sleep(1)def task2(): for i in range(3): print('B' + str(i)) yield time.slee原创 2021-07-10 10:51:20 · 66 阅读 · 0 评论 -
27 线程
1 线程import threadingfrom time import sleepdef download(n): images = ['girl.jpg', 'boy.jpg', 'man.jpg'] for image in images: print('正在下载:', image) sleep(n) print('下载{}成功!'.format(image))def listenMusic(): musics = [原创 2021-07-10 00:03:35 · 81 阅读 · 0 评论 -
26 进程
1 进程说明- 并发和并行 - **并发**:当有多个线程在操作时,如果系统只有一个CPU,则它根本不可能真正同时进行一个以上的线程,它只能把CPU运行时间划分成若干个时间段,再将时间 段分配给各个线程执行,在一个时间段的线程代码运行时,其它线程处于挂起状。.这种方式我们称之为并发(Concurrent)。 - **并行**:当系统有一个以上CPU时,则线程的操作有可能非并发。当一个CPU执行一个线程时,另一个CPU可以执行另一个线程,两个线程互不抢占CPU资源,可以同时进行,这种方式我们称之为并原创 2021-07-09 01:33:12 · 61 阅读 · 0 评论 -
25 正则表达式
1 正则表达式说明A 正则表达式的作用和特点给定一个正则表达式和另一个字符串,我们可以达到如下的目的:1. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);2. 可以通过正则表达式,从字符串中获取我们想要的特定部分。B 正则表达式的特点是:1. 灵活性、逻辑性和功能性非常强;2. 可以迅速地用极简单的方式达到字符串的复杂控制。3. 对于刚接触的人来说,比较晦涩难懂。C 使用场景:1 如何判断一个字符串是手机号呢?2 判断邮箱为163或者126的所有邮件地址3原创 2021-07-07 20:56:47 · 235 阅读 · 0 评论 -
24 random hashlib模块
1 random 模块import randomran = random.random() # 0~1之间的随机小数ran = random.randrange(1, 10, 2) # randrange(start,stop,step) 1~10 step=2 ---> 1,3,5,7,9ran = random.randint(1, 10)list1 = ['学强', '飞飞', '家伟', '鹏', '阿文']ran = random.choice(list1) # 随机选原创 2021-07-07 00:38:57 · 81 阅读 · 0 评论 -
23 包 模块
1 包的导入导入模块:1. import 模块名 模块名.变量 模块名.函数 模块名.类2. from 模块名 import 变量 | 函数 | 类 在代码中可以直接使用变量,函数,类3. from 模块名 import * 该模块中所有的内容 但是如果想限制获取的内容,可以在模块中使用__all__=[使用*可以访问到内容] __all__ = ['add', 'number', 'Calculate'] 4. 无论是import还是from的形式,原创 2021-07-06 00:55:32 · 54 阅读 · 0 评论 -
22 类的继承与多态
1 类的继承'''继承: Student,Employee,Doctor ---》 都属于人类 相同代码 ---》 代码冗余,可读性不高 将相同代码提取----》Person类 Student,Employee,Doctor ---》 继承Person 特点: 1. 如果类中不定义__init__,调用父类 super class的__init__ 2. 如果类继承父类也需要定义自己的__init__,就需要在当前类的__init__调用一下父类__init__原创 2021-07-04 00:13:27 · 79 阅读 · 0 评论 -
21 面向对象
1 类的基本模型面向对象类名:用驼峰式命名,首字母必须大写class 类名: 特征: 属性 动作: 方法实例,对象huawei = Phone()huawei.price = 59992 类的魔法方法class Phone: # 魔术方法之一: 称作魔术方法 __名字__() def __init__(self): # init 初始的,初始化 self.brand = 'xiaomi' self.price = 49原创 2021-06-28 22:22:03 · 79 阅读 · 0 评论 -
20 生成器与迭代器
1 生成器生成器的用途:通过列表生成式(列表推导式),我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python中,这种一边循环一边计算的机制,称为生成器:generator。普通列表原创 2021-06-27 23:29:39 · 45 阅读 · 0 评论 -
19 推导式
1 列表推导式1. 列表推导式: 格式: [表达式 for 变量 in 旧列表] 或者 [表达式 for 变量 in 旧列表 if 条件]# 过滤掉长度小于或者等于3的人名names = ['tom', 'lily', 'abc', 'jack', 'steven', 'bob', 'ha']result = [name for name in names if len(name) > 3]print(result)result = [name.capitalize() for n原创 2021-06-27 20:36:05 · 53 阅读 · 0 评论 -
18 异常处理
1 异常操作格式:try: 可能出现异常的代码except: 如果有异常执行的代码[finally: 无论是否存在异常都会被执行的代码]情况1: try: 有可能会产生多种异常 except 异常类型1: print(。。。。) except 异常类型2: pass情况2:获取Exception的错误原因try: 有可能会产生多种异常 except 异常类型1: print(。。。原创 2021-06-27 00:23:47 · 105 阅读 · 0 评论 -
17 os模块
1 os模块import os判断是否是绝对路径r = os.path.isabs(r'c:\p1\girl.jpg')print(r) # True当前文件所在文件夹路径path = os.path.dirname(__file__) print(path)path = os.getcwd() # 类似 os.path.dirname(__file__)print(path)获取文件的绝对路径path = os.path.abspath('aa.txt')print(pa原创 2021-06-26 22:40:27 · 101 阅读 · 0 评论 -
16 文件操作
1 文件操作1.1 操作模式mode:r:读纯文本文件 只读txt文件,doc jpg等不等读w:写纯文本文件 只写txt文件binary 二进制 字节rb: read binary 读二进制 支持文本 视频 影月 图片wb: write binary 写二进制 支持文本 视频 影月 图片1.2 系统函数...原创 2021-06-26 00:15:56 · 109 阅读 · 0 评论 -
15 函数总结
1 函数总结1.1 函数作用域函数:作用域:LEGB L: local 本地 局部变量 E: encloseing 嵌套 G: Global 全局 B: built-in 内置的1.2 普通函数普通函数: def 函数名([参数,...]): 函数体 1. 如何定义函数 2. 调用函数 可变参数: def func(*args,**kwargs): args单个元素 kwargs 关键字参数原创 2021-06-24 23:54:03 · 82 阅读 · 0 评论 -
14 匿名函数 和 递归函数
1 匿名函数1.1 匿名函数定义# 匿名函数: 简化函数定义# 格式: lambda 参数1, 参数2.. : 运算s = lambda a, b: a + bresult = s(2, 5)print(result)1.2 匿名函数作为参数# 匿名函数作为参数def func1(x, y, func): print(x, y) print(func) s = func(x, y) print(s)# 调用funcfunc1(1, 2, lam原创 2021-06-24 23:09:23 · 178 阅读 · 0 评论 -
13 装饰器
1 装饰器'''特点:1. 函数A是作为参数出现的(函数B就接收函数A作为参数)2. 要有闭包的特点''' 定义一个装饰器def decorate(func): a = 100 print('wrapper外层打印测试') def wrapper(): func() print('--------->刷漆') print('--------->铺地板', a) print('---------原创 2021-06-24 00:26:48 · 49 阅读 · 0 评论 -
12 闭包
1 内部函数'''特点:1. 可以访问外部函数的变量2. 内部函数可以修改外部函数的可变类型的变量比如:list set dict3. 内部函数修改全局的不可变变量时,需要在内部函数声明global 变量名 内部函数修改外部函数的不可变的变量时,需要在内部函数中声明: nonlocal 变量名4. locals() 查看本地变量有哪些,以字典的形式输出 globals() 查看全局变量有哪些,以字典的形式输出(注意里面会有一些系统的键值对)'''a = 100 # 全局不可变变原创 2021-06-22 21:03:32 · 79 阅读 · 0 评论 -
11 函数
1 函数1.1 定义函数:格式:def 函数名([参数,参数...]): 函数体 (重复的代码)注意:1. 必须使用关键字def 2. 函数体注意缩进 3.函数名() 绑定- 函数名命名规则同变量名,要满足标识符命名规则- 不能和系统函数重名,否则系统函数无法使用- 函数定义分两部分函数头和函数体- 函数体,就是实现功能的代码段,以:开头,必须缩进- 函数名的命名风格:一般建议用下划线分隔的小写单词组成:say_hello...原创 2021-06-20 19:47:57 · 147 阅读 · 0 评论 -
10 字符串 列表 元组 字典 集合总结
1 可变和不可变1.1 定义不可变: 对象所指向的内存中的值是不可以改变可变的: 对象所指向的内存中的值是可以改变1.2 类型不可变的类型: int str float tuple frozenset()可变类型: 字典dict 列表list 集合setset1 = {3, 5, 6, 8}print(set1, id(set1)) # {8, 3, 5, 6} 1960413694216set1.discard(5)print(set1, id(set1)) #原创 2021-06-18 19:20:11 · 96 阅读 · 0 评论 -
9 集合
1 集合的特点不重复特点:# 应用: 如果将一个列表快速去重 set()list1 = [3, 5, 8, 9, 1, 8, 4, 2, 5, 8, 9]s1 = set(list1)print(s1)无序特点: 集合无序, 没有下标, 没有切片操作2 集合的增删集合的增加"""1. 增加add() 添加一个元素update() 可以添加多个元素,"""s1 = set()s1.add('hello')print(s1) # {'hello'}t1 = ('林原创 2021-06-16 20:32:07 · 50 阅读 · 0 评论 -
8 字典
1 字典(dict)1.1 字典的定义dict1 = {} # 空字典dict2 = dict() # 空字典 list1 = list() 空列表 tuple1= tuple() 空元组dict3 = {"key1": "value1", "key2": "value2", ... ...}1.2 列表 元组向字典转换"""list可以转成字典 但是前提:列表中元素都要成对出现tuple可以转成字典 但是前提:元组中元素都要成对出现"""list1 = [原创 2021-06-15 23:29:22 · 84 阅读 · 0 评论 -
7 元组
1 元组(tuple)元组:类似列表(当成容器)特点:定义的符号:()元组中的内容不可修改关键字: tuple# type 类型t1 = ()print(type(t1)) # <class 'tuple'>t1 = ("hello")print(type(t1)) # <class 'str'>t2 =('hello',) print(type(t2)) # <class 'tuple'># 查询: 下标index 切片 [:]原创 2021-06-15 21:07:59 · 123 阅读 · 0 评论 -
6 列表知识
1.列表切片操作list1 = [1,2,4,3,8]num = list1[2]print(num) print(list1[5]) #下标越界,引发IndexError, 需要自己确定不要越界list1 = ['杨超越', '热巴', '佟丽娅', '杨幂', '赵丽颖', '刘亦菲', '黑嘉嘉', 100, 99.9]print(list1[3:6]) # 将截取的结果再次保存在一个列表中 ['杨幂','赵丽颖','刘亦菲']print(list1[-3:-1]) # ['黑原创 2021-06-13 22:14:26 · 132 阅读 · 0 评论 -
5 字符串
1 Python 的字符串内建函数1.1 大小写相关的转换1.1.1 capitalize():将字符串的第一个字符转换为大写message = 'zhaorui is a beautiful girl!'msg = message.capitalize() # 将字符串的第一个字符串转成大写的标识形式print(msg) # Zhaorui is a beautiful girl!1.1.2 title() :每个单词的首字母转换成大写message = 'zhaorui is原创 2021-06-12 19:14:48 · 496 阅读 · 0 评论 -
4 循环(while & for)
1、循环1.1 while 循环1.1.1 while语法while 表达式: 循环体1.1.2 while-elsewhile 表达式: 循环体else: 【else语句块】说明:当while语句执行完成之后,执行【else语句块】,如果用break跳出循环则不执行else1.1.3 while 死循环在循环语句中,表达式永远为真的循环while True: #循环体while 1: #循环体1.1.4 while语句的嵌套while 条件原创 2021-06-12 00:07:38 · 214 阅读 · 0 评论 -
3 位运算&三目运算&if判断
1 位运算Python 支持的位运算符有如下 6 个:&:按位 与,相当于and|:按位 或,相当于or。^:按位 异 或。~:按位 取反。<<:左位移运算符。>>:右位移运算符。 &:按位 与,类似and print(3 & 2) 1 表示 True :0 表示 False 0000 0011 & 0000 0010 -------------- 结果 0000 0010 |:按位 或,类似o原创 2021-06-11 20:29:09 · 671 阅读 · 2 评论 -
2 运算符&进制转换
1 类型判断1.1 isinstance用法:isinstance(obj ,typename)功能:判断obj是否是指定类型,是返回True,否返回False参数: obj 是你要判断的变量或数值; typename 是指定数据类型,可以是int,float,str等。也可是一个类型的元组,例如:(int,float)示例: age = 10 name = 'hello' print(isinstance(age,int)) print(isinstance(name,(str原创 2021-06-10 18:29:49 · 147 阅读 · 0 评论 -
1 python编程基础
python编程基础1. python简介(了解)python的特点:a.是一种解释性语言【开发过程中没有了编译的环节】b.是交互式的语言【可以直接互动执行Python程序】c.是面向对象的语言d.是跨平台语言【可以运行在不同的操作系统上】e.适合初学者优点简单、易学;可移植性;可扩展性,可嵌入式;丰富的标准库;支持各种主流数据库;支持GUI编程【图形化编程】缺点a.运行速度慢b.代码不能加密python应用:web后端开发网络爬虫人工智能自动化运维原创 2021-06-10 13:04:40 · 466 阅读 · 0 评论