Python学习知识清单基础语法。Pyhton与C语言有一定的联系,但要注意一下两种思维方式的不同。
列表的使用。定义空列表。List = [ ] 1列表的长度len(list)1列表的组合list1 += list21判断元素x是否位于列表 if x in list:1列表的遍历(正序逆序,和附加索引的遍历)for x in list:(正序)
for x in list[::-1]:(逆序)
index(索引) value(值) enumerate(sequence, [start=0])sequence – 一个序列、迭代器或其他支持迭代对象。start –> 下标起始位置。例如1:list = [1,2,3,4]for index, value in enumerate(list): print(index, value)
运行结果:0 11 22 33 4例如2:list = [1,2,3,4]for index, value in enumerate(list,start=2): print(index, value)
运行结果:
2 13 24 35 4
求列表元素的最大最小值max(list) min(list)12求列表元素的平均值(前提列表元素都是数字)sum(list) / len(list)1在列表末尾添加新的对象Xlist.append(X)1统计某个元素X在列表中出现的次数list.count(X) 1#在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)list.extend()1从列表中找出某个值value第一个匹配项的索引位置list.index(value)1将对象value插入列表某位置indexlist.insert(index, value) 1移除列表中的一个元素(默认最后一个元素),并且返回该元素的值 list.pop([index = -1])使用方法:>>> list = [1,2,3,4]>>> list.pop(1)2>>> list[1, 3, 4]
移除列表中某个值value的第一个匹配项list.remove(value)1反转列表中元素list.reverse()1对原列表进行排序(正序逆序,关键字排序,这个自己百度)list.sort( key=None,reverse=False)1清空列表list.clear()1复制列表list.copy()1删除列表元素del list[index]1字典的使用。创建空字典dict = { }1判断元素是否在字典If key in dict:1计算字典元素个数len(dict)1添加元素到字典dict[key] = value1update方法如果存在则更新,不存在则添加dict.update({key:value})1示例:>>> d = {1:2,2:3}
>>> d.update({3:4})
>>> d
{1: 2, 2: 3, 3: 4}
>>> d.update({3:5})
>>> d
{1: 2, 2: 3, 3: 5}
字典的get方法字典 get() 函数返回指定键的值,如果值不在字典中返回默认值。
key – 字典中要查找的键。
default – 如果指定键的值不存在时,返回该默认值值。
遍历字典for key, value in dict.items():1字典键dict.keys()1字典值dict.values()1删除键del dict[key]1删除字典del dict1清空字典dict.clear()1集合的使用创建一个集合s = {x1,x2,x3……}
# (创建空集合)s = set()
在集合中添加一个新的元素e;如果元素已经存在,则不添加s.add(e)1从集合中删除一个元素,如果元素不存在于集合中,则会产生一个KeyError错误s.remove(e)1从集合S中移除一个元素e;s.discard(e)1清空集合内的所有元素s.clear()1从集合S中删除一个随机元素;如果此集合为空,则引发KeyError异常s.pop()1计算元素个数len(s)1判断元素e是否存在于sIf e in s:
If e not in s:
对于集合X,Y差集X – Y1并集X | Y1交集X & Y1对称差集(项在t或s中,但不会同时出现在二者中)X ^ Y1判断集合的包含关系例如:(X 包含 Y,Y ⊆ X )
>>> X = {1,2,3,4,5,6}
>>> Y = {2,3,4,5}
>>> X > Y
True
>>> X >= Y
True
>>> X < Y
False
实战1:(校赛试题)题目描述:
详见
OJ 2522: 咕咕的的复复读读机机
大意:输入n和n个数字,求出现次数最多的数字。
示例代码:
n = int(input())#输入nL =list(map(int, input().split()))#n个数字存入到L列表print(max(set(L), key = L.count))#求出出现次数最多的数字
实战2:(校赛试题)题目描述
详见
OJ 2521: 文本修正
大意:读取一行字符串,如果是单词且是’henan’则变为’Henan’
示例代码:
//s = input().split()
现在的s是存储字符串的列表
s = input().split()# 读取一行字符串,用空格分隔单词for i in s: # 遍历字符串的单词 if i == 'henan': # 满足条件,改变且输出 print('Henan', end=' ') else: print(i, end=' ')
注:今年校赛解出两题且总时长60分钟以内就可以拿奖。
分支语句基本形式If ………:
elif ………:
elif ………:
else ………:
且——或关系
在A和B条件下If A and B:
If A or B:
特殊用法(连续判断)>>> X = 22>>> if 20 print(X)22>>> 20 True
判断存在/不存在;是/不是If x (not) in s:
If x (not) is s:
循环结构循环结构和C语言类似。
for in ……:
else:
while (条件):
else:
循环体加else语句,循环正常结束才执行的。思考。循环了几次?
>>> for i in range(6): i += 3
答案是6次
函数定义函数的规则:1、函数代码块以def关键字开头,后接函数表示符名称和圆括号。
2、任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
3、函数的第一行语句可以选择性地使用文档字符串-用于存放函数说明
4、函数内容以冒号起始,并且缩进
5、return[表达式]结束函数,选择性地返回一个值给调用方,不带表达式的return相当于返回None。
全局变量global 保留字
1.位置参数传递
2.关键字传递
关键字(keyword)传递是根据每个参数的名字传递参数。关键字并不用遵守位置的对应关系。
def fun(a,b,c)return a+b+cprint(f(1,c=3,b=2))
3.参数默认值
在定义函数的时候,使用形如c=10的方式,可以给参数赋予默认值(default)。如果该参数最终没有被传递值,将使用该默认值。
def f(a,b,c=10):return a+b+cprint(f(3,2))print(f(3,2,1))
在第一次调用函数f时, 我们并没有足够的值,c没有被赋值,c将使用默认值10.第二次调用函数的时候,c被赋值为1,不再使用默认值。
4.包裹传递/收集参数
可以传递任意个参数
5.解包裹
类Python类与实例化面向对象最重要的概念就是类(Class)和实例(Instance),必须牢记类是抽象的模板,而实例是根据类创建出来的一个个具体的“对象”,每个对象都拥有相同的方法,但各自的数据可能不同。
类的封装封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。
类的方法在类地内部,使用 def 关键字来定义一个方法,与一般函数定义不同,类方法必须包含参数 self, 且为第一个参数,self 代表的是类的实例。
类的继承定义父类
子类继承父类
(时间仓促,以上没有涉及的知识点请自己查找相关的资料)
将要自学的内容:
(需要的话再总结)
#字典的get方法
lambda函数用法
format 函数
reduce函数
filter 函数
time库
datetime 库
jieba 库 ->词频统计->词云
文件的使用
正则表达式
关于机器学习算法方面:
线性回归 逻辑回归
KNN(K – 最近邻算法)
支持向量机 朴素贝叶斯
决策树 K-均值算法
随机森林 降维算法
Gradient Boosting 和 AdaBoost 算法————————————————