1.注释、变量命名、缩进
2.数据输入字符串函数input(),注意结果为字符串
3.字符串解析函数eval的使用,特别注意输入字符串可直接解析为组合数据类型
理解:将字符串类型转化为现有组合类型(list、dict、set)或现有定义的变量等,如果不满足以上条件,程序会报错
4.换行输出输出函数print(),不换行输出
print(str,end=’,’)
5.Python中的变量、数据类型、赋值语句
(1)变量不必事先声明、无须指定类型、直接赋值使用
(2)变量及关键字区分大小写,字母下划线开头
(3)变量名可以使用中文
(4)赋值:多变量赋值、连等赋值、列表赋值传地址
6.各算数运算符:+、-、*、/、%及应用
7.和数值运算相关的主要内置函数:
sum(可迭代对象求和)
max、min(多个对象)
round(指定位的四舍五入)
pow(第三个参数为取余)
8.类型转换函数:int(字符串,进制)、float()、list()、set()、dict()
9.字符串的索引、切片、修改
理解:
索引——正向从0开始,逆向从-1开始;
切片——复制的内容
[起始索引:结束索引:[步长]]
没有数字一个冒号,有数字2个冒号
10.内置字符串处理函数str、len
11.字符串处理常用方法:
split()
join()
format()
replace():字符串.方法名,第三个参数为替换次数
center():str.center(width , “fillchar”),大于长度才填充,小于等于直接照搬字符串
strip():无参,则删除首部和尾部的空格;有参数则从左边和右边(无空格的那边)向中间开始一个个删除参数字符串中含有的那些字符,直至左右两边检测到参数中不含这个字符串
12.格式化输出方法
格式化输出下保留2位小数方法:
"{0 : .2f}".format(浮点数)
13.循环
(1)For循环进行各种迭代
(2)遍历结构可以是字符串、文件、组合数据类型或range()函数
(3)While循环
(4)循环中else子句、break的使用
(5)分支语句:单分支、双分支、多分支;
分支表达式,如 =x if x < y else y
14.random库的使用:
随机数生成方法:
random:生成[0.0, 1.0)之间的随机小数
randint(a, b):生成[a, b]之间的随机整数
randrange(a, b, step):生成[a, b)之间的以step为步长的随机整数
15.函数的定义、调用、参数传递(传值、传地址)、可变参数应用(打包传递)
可变参数的实现:
def func(a, *b):
pass
在调用时,这些参数被当作元组类型传递到函数中
16.Lambda函数
(1)Lambda函数的定义与使用
lambda函数用于定义简单的,能够在一行内表示的函数,返回一个函数类型,返回结果则是得具体看函数的定义
使用方法:(等价于常规函数,区别函数匿名)
f = lambda <参数列表> : <表达式>
eg:
f = lambda x, y : x + y
f(10, 12)#结果为22
(2)Lambda函数在排序函数中的使用
#对列表内元组的第一个元素排序(默认升序,加了负号为降序)
列表名.sort(key=lambda x:(-)x[0])
#2钟排序
列表名.sort(key=lambda x:(-x[2],len(x[0])))
#对字典排序(0是对键排序,1是对值排序)
dict_sorted = sorted(字典名.items(),key=lambda x:x[0/1])
补充:
列表的其他排序——
列表名.sort(reverse=true)
列表名.sort(key=len)
17.序列类型的12个通用操作符和函数
(1)序列类型包含字符串、元组、列表
(2)基本操作有:
①in 和 not in
②+:连接 注:但是如果是定义了一个“+”函数并在map()中使用的话,则返回的是对应位置元素相加的和!
③sn 和 ns:将序列s复制n次
④s[i]、s[i:j](不包含第j个)、s[i:j:k](k为步长)
⑤len(s)、min(s)、max(s)、s.index(x,i,j)(左闭右开区间找字符x的位置)
⑥s.count(x):x出现的次数
18.组合数据类型的内置函数sorted(),与sort()的区别:
sort():只针对列表,对原列表排序,返回为空
sorted():各种组合类型都可以排,返回为排好序的列表,原来数据无变化
19.列表的创建、列表的访问与切片
20.列表中的常用方法
sort()
append()
pop(i):无参默认删除最后一个元素,有参删除第i个元素
insert(i,x):第i个位置插入x
remove(x):删除第一个出现的x
21.元组的创建及访问, 特别注意元组的元素不能修改、追加等(元素为可变数据类型时除外)
创建:逗号隔开,或套上括号
22.内置函数zip的用法
23.解包
左边变量个数等于右边可迭代类型数据元素个数,则一个个对应
注:
(1)字典的解包会丢失value,只保留key
(2)左边变量可以带*,则不需要满足个数相等(类似于可变参数)
24.集合的概念及创建方法
特点:无顺序、不重复
利用set()去重复
25.集合元素操作方法:
集合交(&)并(|)差(-)补(^)、元素添加add(x)、删除remove(x)
26.字典的创建(大括号)、字典中对键的要求(一键一值,键为索引)
利用zip生成字典(将两个列表)
27.字典中的成员判断in
字典元素的添加(中括号等于)
字典中的get()方法:字典名.get(key,default)
字典元素的迭代方法:items()(键值对)、keys()(键)、values()(值)
注意不使用这三个方法,直接针对字典元素的操作是对键的操作
28.列表、集合、字典生成式(包括其中的选择)
列表生成式形式:[表达式 for i in … if … else …](满足if中的条件执行表达式,不满足执行else)(循环嵌套则两个for … in …)
注:假如含三元运算符,如range(a,b,step),应把条件判断放循环前面
集合生成式形式:{表达式 for i in … if … else …}
字典生成式形式:{键表达式 : 值表达式 for x,y in … if … else …}
29.文件的类型、打开方式(读、写、追加)及相应指针位置
(1)打开模式:
‘r’:只读
‘w’:只写
‘a’:追加
with open(‘文件名’,‘r’) as fp: 对fp的操作
(2)读:
fp.readall():返回字符串
fp.read():同上
fp.readline():读一行
fp.readlines():读所有行并返回列表
(3)写:
fp.write(s):写入s
fp.writelines(列表名):写入整个列表
(4)改变当前文件操作指针位置:
fp.seek(offset):
offset=0——文件开头;1——当前位置;2——文件结尾
30.CSV文件格式的特点及用途
CSV库中文件的读写
读:
import csv
with open('文件名.csv','r') as fp:
for line in fp:
line = line.replace("\n"," ")
ls = line.split(",")
lns = ""
for s in ls:
lns+="{}\t".format(s)
print(lns)
fp.close()
写:
import csv
with open('文件名.csv','w',newline='') as fp:
for row in ls:
fp.write(",".join(row)+"\n")
fp.close()
31.JSON文件格式的特点及用途
JSON库中的文件读写——
load(列表名,fp); dump(列表名,fp)
及序列化反序列化dump()(编码,返回json字符串)、load()(解码,返回python数据类型)
CSV文件格式与JSON文件格式的相互之间转换算法
csv转json:
import csv
import json
with open('文件名.csv','r') as fp:
ls = []
for line in fp:
line = line.replace("\n","")
ls.append(line.split(","))
fp.close()
with open('文件名.json','w') as fp:
for i in range(1,len(ls)):
ls[i] = dict(zip(ls[0],ls[i]))
json.dump(ls[1:],fp)
fp.close()
json转csv:
import csv
import json
with open('文件名.json','r') as fp:
ls = json.load(fp)
data = [list(ls[0].keys())]
for i in ls:
data.append(list(i.values()))
fp.close()
with open('文件名.csv','w') as fp:
for i in data:
fp.write(",".join(i)+"\n")
fp.close()
32.内置函数map的使用
(1)批量格式化输入:
a = list(map(int,input().split()))
(2)在不改变原来list的情况下得到新的list(一般是对list中的元素操作)
扩展库安装的操作命令:pip install、pip list
33.面向对象概念:
类、对象
类方法:方法前加@classmethod修饰
静态方法:方法前加@staticmethod修饰
实例方法及使用
私有成员及访问:类内方法——self.私有成员,类内调用——类名.私有成员,类外调用——类对象.类名.私有成员(间接调用)
补充:私有方法只能在类内的对象方法定义后由对象调用,不能被对象直接调用
类中的特殊方法及含义
类的继承(包括多继承),
同名方法的引用次序(先找子类,再找父类,从左向右查找)
父类构造函数的调用(包括多个父类):super关键字
34.numpy库:
import numpy as np
用途
numpy数组的创建:np.array((逗号隔开的数字))
矩阵的创建:np.matrix((中括号格式的矩阵))
reshape()方法:新形状与旧形状的元素个数相等
广播机制(复制扩充过程)
数组的运算:+、-、*
35.可视化扩展库matplotlib:
用途:数据绘图
几个主要的统计图,如散点图(scatter)、条形图(bar)、饼图(pie)、折现图(plot)等使用的函数或方法
36.Pandas用途:数据分析