1. IPO程序编写方法 input process output 2. ord("北") 字符转uncode码 chr(21271) uncode码转字符 3. 文件写入 fp = open('node.txt', 'w') print('北京欢迎你', file=fp) fp.close() 4. 键盘输入 name = input("请输入您的姓名:") print("我的姓名是", name, sep='') 5. int(num) #字符串转数字 str()、float() len("abc") 获取字符串长度 type("string") # 获取变量的数据类型 id(name) #取变量在内存中的地址 6. # coding=utf8 #顶格设置文件编码 7. import keyword print(keyword.kwlist) #打印python关键字 8. _ 受保护的变量 __ 私有变量 __init()__ 初始化函数 9. 数据类型:int float str bool module complex 数据类型显示转换 int()、str()、float() 10. 复数 x = 123 + 456j #复数由实数部分和虚数部分组成 print(x.real, x.imag) print(type(x)) 11. 字符串:单引号、双引号、三单引号、三双引号 单引号双引号意义一样,在字符串中加r或R则不识别转义字符(类似于php的单引号),三引号定义多行字符串 s='HELLOWORLD' s[0] #H s[-10] #H s[2:7] #LLOWO 含2不含7 s[:5] #HELLO 默认从0开始 s[5:] #WORLD 默认到结束 s+s2 #字符串拼接 s*2 #复制字符串2次 或写成 2*s a in s # True a是s的子串 False 不是 字符串格式控制 字符串数据验证 字符串去重 s = 'sdfsdg' new_s = set(s) //转集合 list = list(new_s) //转列表 list.sort(key=s.index) //排序 print(''.join(list)) //拼接 字符串正则匹配 re.match() #查找首字符 re.search() #全局查找,但只查找一次 re.findall() #全局查找,查找所有 re.sub() #字符串替换 re.split() #分隔字符串 12. bool: True==1 False==0 虽然数据类型不同,但是相等。 13. eval: 去掉字符串的引号部分,执行里面的语句 配合input 使用自动转换数据类型 14. 运算符:/ 除完是float // 整除,除完是int 15. 系列解包赋值: a,b=10,20 # a=10 b=20 a,b=b,a #交换变量的值 16. 逻辑运算符:and、or、not 17. 没有switch 但有模式匹配,类似于switch # mathch case: case: 18. for in; for else; #循环正常执行完毕,执行else while; while else; 19. 组合数据类型:列表、元组、字典、集合 20. 序列的相关操作: +连接字符串、*重复输出字符串、s in str、str.count(x)、str.index('x')x第一次出现的位置 21. 列表:list = ['a',1,'b'] 或 list(range(1,10,2))、list.append、insert、clear、pop、remove、reverse、copy、sort for item in list: print(item) for i in range(0,len(list)): print(list[i]) for index,item in enumerate(list): print(index,item); 列表生成式的使用: list = [random.randint(1, 100) for _ in range(1, 11)] list2 = [item for item in range(1,11) if item>5] list3 = [[j for j in range(6)] for i in range(4)] //生成二维列表 22. 元组:t=('a',1,10.2); t=tuple('hello') 如果元组只有一个元素时最后一个逗号不能省 系列解包赋值:a,b,c,d=t 23. 字典:键值对,[]取值 或 d.get(key); 字典合并 "|",会替换相同的key 字典生成式: d = {item: random.randint(10,100) for item in range(1, 11)} 或 list1 = [100, 101, 102] list2 = ['php', 'java', 'python'] z = zip(list1, list2) d = {key: value for key, value in z} 24. 集合:集合是可变数据类型,集合中元素可存储不可变数据类型 操作符:交集& a&b, 并集| a|b, 差集- a-b, 补集^ a^b 25. try (raise) excepte else finally 26. 函数:php不支持位置传参 位置传参、 关键字传参(如果混合传参,位置传参在前,关键字传参在后) 可变位置参数:*param (元组) 传参可以使用*系列解包 可变关键字参数: **param (字典) 传参可以使用**系列解包 返回值为多个值时为元组 fun = lambda x,y:x+y #lambda表达式 对列表中的字典中的某个key进行排序 student_scores = [ {"name": '陈梅梅', 'score': 98}, {"name": '王一一', 'score': 95}, {"name": '张天乐', 'score': 100}, {"name": '白雪儿', 'score': 65}, ] student_scores.sort(key=lambda x: x.get('score'), reverse=True) print(student_scores) 27. 类: 1. def __init__(self,name,age): #构造方法 叫初始化方法 2. @staticmethod 修饰静态方法 3. @classmethod 修饰类方法 4. @property 方法定义为属性 调用时不需要加括号 5. @age.setter 修饰方法,表示这是一个可以修改属性的方法 6. 权限控制: _ : protected, __ : private, __init__ : 特殊方法 stu._Student__age、stu._Student__fun() 强制访问私有属性和方法,但是不推荐 7. 继承:支持多继承 class Student(Person): #继承 8. 浅拷贝:obj1 = copy.copy(obj) 产生新对象,子对象没变 深拷贝:obj1 = copy.deepcopy(obj) 产生新对象,产生子对象 28. 第三方模块安装与卸载 pip install requests / pip uninstall requests 29. 爬虫示例:安装requests 模块:pip install requests # 爬虫 import requests, re # 1. 爬数据 url = 'https://www.weather.com.cn/weather1d/101010100.shtml' res = requests.get(url) res.encoding = 'utf-8' city = re.findall('<span class="name">([\u4e00-\u9fa5]*)</span>', res.text) # 城市 ['景区', '三亚', '九寨沟', '大理', '张家界', '桂林', '青岛'] weather = re.findall('<span class="weather">([\u4e00-\u9fa5]*)</span>', res.text) # 天气 wd = re.findall('<span class="wd">(.*)</span>', res.text) # 温度 zs = re.findall('<span class="zs">(.*)</span>', res.text) # 状况 list = [] for a,b,c,d in zip(city,weather,wd,zs): list.append([a,b,c,c]) print(list) # 2.爬图片 url = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png' res = requests.get(url) # 图片写入文件 with open('logo.png','wb') as file: file.write(res.content) 30. 生成excel示例 安装excel模块:pip install openpyxl # 创建excel工作本 workbook = openpyxl.Workbook() sheet = workbook.create_sheet('景区天气') # 创建工作表 # 向工作表中添加数据 for item in list: # 列表 sheet.append(item) # 插入一行数据 workbook.save('景区天气.xlsx') 读取excel示例: # 读取excel数据 workbook = openpyxl.load_workbook("景区天气.xlsx") # 读取excel sheet = workbook['景区天气'] #选择工作表 # 读取数据 list = [] for row in sheet.rows: oneRow = [] for cell in row: oneRow.append(cell.value) list.append(oneRow) 31. PDF: 读取数据 import pdfplumber with pdfplumber.open("租房合同.pdf") as pdf: for i in pdf.pages: print(i.extract_text()) print(f'------第{i.page_number}页结束') 32. jieba分词 # 中文分词 string = '' with open("中文分词.txt", 'r', encoding='utf-8') as file: string = file.read() list = jieba.lcut(string) # 分词后的list set = set(list) # 词去重 count = {} # 统计中文词出现的次数 for item in list: if len(item) <= 1: continue if item in count: count[item] += 1 else: count[item] = 1 countList = [[key, value] for key, value in count.items()] # 字典转列表 [['按照', 1], ['提示', 4]...] countList.sort(key=lambda x: x[1], reverse=True) # 排序 firstTen = countList[0:11] # 取前10项 print(firstTen) 33. 第三方模块总结: requests: 爬虫模块 pip install requests openpyxl: Excel处理模块 pip install openpyxl pdfplumber: PDF处理模块 pip install pdfplumber jieba: 中文分词模块 pip install jieba prettytable: 控制台表格 pip install prettytable wordcloud: 生成词云 pip install wordcloud 数据分析三剑客:Pandas、Matplotlib和NumPy 34. 文件操作 # 写入文件,文件不存在创建文件 file = open('a.txt', 'w', encoding='utf-8') file.write('伟大的中国梦') file.close() # 读取文件 file = open('a.txt', 'r', encoding='utf-8') s = file.read() file.close() print(s) # with语句:上下文管理器,with oppen(...) as file #防止文件异常,可以不写close方法 35. json 1. python数据类型转json字符串: json.dumps(lst, ensure_ascii=False, indent=4) 2. json字符串转数据类型:list2 = json.loads(s) 36. os模块 getcwd()、listdir()、mkdir()......
1. IPO程序编写方法 input process output2. ord("北") 字符转uncode码 chr(21271) uncode码转字符
3. 文件写入fp = open('node.txt', 'w')print('北京欢迎你', file=fp)fp.close()
4. 键盘输入name = input("请输入您的姓名:")print("我的姓名是", name, sep='')
5. int(num) #字符串转数字 str()、float() len("abc") 获取字符串长度 type("string") # 获取变量的数据类型 id(name) #取变量在内存中的地址
6. # coding=utf8 #顶格设置文件编码
7. import keyword print(keyword.kwlist) #打印python关键字
8. _ 受保护的变量 __ 私有变量 __init()__ 初始化函数
9. 数据类型:int float str bool module complex 数据类型显示转换 int()、str()、float()
10. 复数x = 123 + 456j #复数由实数部分和虚数部分组成print(x.real, x.imag)print(type(x))
11. 字符串:单引号、双引号、三单引号、三双引号单引号双引号意义一样,在字符串中加r或R则不识别转义字符(类似于php的单引号),三引号定义多行字符串
s='HELLOWORLD's[0] #Hs[-10] #Hs[2:7] #LLOWO 含2不含7s[:5] #HELLO 默认从0开始s[5:] #WORLD 默认到结束
s+s2 #字符串拼接s*2 #复制字符串2次 或写成 2*sa in s # True a是s的子串 False 不是
字符串格式控制
字符串数据验证
字符串去重s = 'sdfsdg'new_s = set(s) //转集合list = list(new_s) //转列表list.sort(key=s.index) //排序print(''.join(list)) //拼接
字符串正则匹配re.match() #查找首字符re.search() #全局查找,但只查找一次re.findall() #全局查找,查找所有re.sub() #字符串替换re.split() #分隔字符串
12. bool: True==1 False==0 虽然数据类型不同,但是相等。
13. eval: 去掉字符串的引号部分,执行里面的语句 配合input 使用自动转换数据类型
14. 运算符:/ 除完是float // 整除,除完是int
15. 系列解包赋值:a,b=10,20 # a=10 b=20a,b=b,a #交换变量的值
16. 逻辑运算符:and、or、not
17. 没有switch 但有模式匹配,类似于switch # mathch case: case:
18. for in; for else; #循环正常执行完毕,执行else while; while else;
19. 组合数据类型:列表、元组、字典、集合
20. 序列的相关操作: +连接字符串、*重复输出字符串、s in str、str.count(x)、str.index('x')x第一次出现的位置
21. 列表:list = ['a',1,'b'] 或 list(range(1,10,2))、list.append、insert、clear、pop、remove、reverse、copy、sortfor item in list:print(item)
for i in range(0,len(list)):print(list[i])
for index,item in enumerate(list):print(index,item);列表生成式的使用:list = [random.randint(1, 100) for _ in range(1, 11)]list2 = [item for item in range(1,11) if item>5]list3 = [[j for j in range(6)] for i in range(4)] //生成二维列表
22. 元组:t=('a',1,10.2); t=tuple('hello') 如果元组只有一个元素时最后一个逗号不能省 系列解包赋值:a,b,c,d=t
23. 字典:键值对,[]取值 或 d.get(key); 字典合并 "|",会替换相同的key字典生成式: d = {item: random.randint(10,100) for item in range(1, 11)}或list1 = [100, 101, 102]list2 = ['php', 'java', 'python']z = zip(list1, list2)d = {key: value for key, value in z}
24. 集合:集合是可变数据类型,集合中元素可存储不可变数据类型操作符:交集& a&b, 并集| a|b, 差集- a-b, 补集^ a^b
25. try (raise) excepte else finally
26. 函数:php不支持位置传参位置传参、关键字传参(如果混合传参,位置传参在前,关键字传参在后)可变位置参数:*param (元组) 传参可以使用*系列解包可变关键字参数: **param (字典) 传参可以使用**系列解包返回值为多个值时为元组
fun = lambda x,y:x+y #lambda表达式
对列表中的字典中的某个key进行排序 student_scores = [ {"name": '陈梅梅', 'score': 98}, {"name": '王一一', 'score': 95}, {"name": '张天乐', 'score': 100}, {"name": '白雪儿', 'score': 65},]student_scores.sort(key=lambda x: x.get('score'), reverse=True)print(student_scores)
27. 类:1. def __init__(self,name,age): #构造方法 叫初始化方法2. @staticmethod 修饰静态方法3. @classmethod 修饰类方法4. @property 方法定义为属性 调用时不需要加括号5. @age.setter 修饰方法,表示这是一个可以修改属性的方法6. 权限控制: _ : protected, __ : private, __init__ : 特殊方法stu._Student__age、stu._Student__fun() 强制访问私有属性和方法,但是不推荐
7. 继承:支持多继承class Student(Person): #继承
8. 浅拷贝:obj1 = copy.copy(obj) 产生新对象,子对象没变 深拷贝:obj1 = copy.deepcopy(obj) 产生新对象,产生子对象
28. 第三方模块安装与卸载 pip install requests / pip uninstall requests
29. 爬虫示例:安装requests 模块:pip install requests# 爬虫import requests, re
# 1. 爬数据url = 'https://www.weather.com.cn/weather1d/101010100.shtml'
res = requests.get(url)res.encoding = 'utf-8'city = re.findall('<span class="name">([\u4e00-\u9fa5]*)</span>', res.text) # 城市 ['景区', '三亚', '九寨沟', '大理', '张家界', '桂林', '青岛']weather = re.findall('<span class="weather">([\u4e00-\u9fa5]*)</span>', res.text) # 天气wd = re.findall('<span class="wd">(.*)</span>', res.text) # 温度zs = re.findall('<span class="zs">(.*)</span>', res.text) # 状况list = []for a,b,c,d in zip(city,weather,wd,zs): list.append([a,b,c,c])print(list)
# 2.爬图片url = 'https://www.baidu.com/img/PCfb_5bf082d29588c07f842ccde3f97243ea.png'res = requests.get(url)# 图片写入文件with open('logo.png','wb') as file: file.write(res.content)
30. 生成excel示例 安装excel模块:pip install openpyxl# 创建excel工作本workbook = openpyxl.Workbook()sheet = workbook.create_sheet('景区天气') # 创建工作表# 向工作表中添加数据for item in list: # 列表 sheet.append(item) # 插入一行数据workbook.save('景区天气.xlsx')
读取excel示例:# 读取excel数据workbook = openpyxl.load_workbook("景区天气.xlsx") # 读取excelsheet = workbook['景区天气'] #选择工作表# 读取数据list = []for row in sheet.rows: oneRow = [] for cell in row: oneRow.append(cell.value) list.append(oneRow)
31. PDF: 读取数据import pdfplumberwith pdfplumber.open("租房合同.pdf") as pdf: for i in pdf.pages: print(i.extract_text()) print(f'------第{i.page_number}页结束')
32. jieba分词# 中文分词string = ''with open("中文分词.txt", 'r', encoding='utf-8') as file: string = file.read()
list = jieba.lcut(string) # 分词后的listset = set(list) # 词去重count = {} # 统计中文词出现的次数for item in list: if len(item) <= 1: continue if item in count: count[item] += 1 else: count[item] = 1countList = [[key, value] for key, value in count.items()] # 字典转列表 [['按照', 1], ['提示', 4]...]countList.sort(key=lambda x: x[1], reverse=True) # 排序firstTen = countList[0:11] # 取前10项print(firstTen)
33. 第三方模块总结:requests: 爬虫模块 pip install requestsopenpyxl: Excel处理模块 pip install openpyxlpdfplumber: PDF处理模块 pip install pdfplumberjieba: 中文分词模块 pip install jiebaprettytable: 控制台表格 pip install prettytablewordcloud: 生成词云 pip install wordcloud
数据分析三剑客:Pandas、Matplotlib和NumPy
34. 文件操作# 写入文件,文件不存在创建文件file = open('a.txt', 'w', encoding='utf-8')file.write('伟大的中国梦')file.close()
# 读取文件file = open('a.txt', 'r', encoding='utf-8')s = file.read()file.close()print(s)
# with语句:上下文管理器,with oppen(...) as file #防止文件异常,可以不写close方法
35. json1. python数据类型转json字符串: json.dumps(lst, ensure_ascii=False, indent=4)2. json字符串转数据类型:list2 = json.loads(s)
36. os模块getcwd()、listdir()、mkdir()...... 标签:__,学习,re,python,list,语法,item,字符串,print From: https://www.cnblogs.com/longfeiPHP/p/18375887