python·复习|Python 语言程序设计期末复习知识点总结
简介
Hello!
非常感谢您阅读小昕的文章ଘ(੭ˊᵕˋ)੭,这次分享的是Python课程初学过程中,老师在期末总结的一些知识点——
希望可以帮助到初学的小伙伴们!
倘若文中有错误的地方,欢迎您指出~
昵称:小昕
标签:学生本文仅记录自己感兴趣的内容
一 、数据类型、运算符、表达式及语句
·链式赋值 x=y=z=100
·解包赋值 a,b=100,200
·数据交换 a,b=b,a
·a = input ( "提示字符串" ) #a为字符型
eval(a)
·print(3,4,end=’’)
print()函数输出
多个print()函数输出,设置end=''则print()输出后不换行;
print(a,b,c,sep='**') 10**20**30
·运算符: // % **(pow)
·复合运算符:+= -+ *= /= //= %= **==
·内置函数:
abs(x)、 divmod(x,y)、pow(x,y) 、round(x,y)、max()、min()
·Math库 import math/ from math import *
引用math库有三种方式
1.import math :使用pi常数前需要写上库名
2.from math import <函数名>:用import直接引用了math中的常数pi,因此在使用pi时,前面不需要再加上库名
3.from math import *:如果采用这样的方式引入math库,则库中的所有常数和函数都可以直接使用,前面不需要加上“math.”
二、字符串 类型转换
·定义:“abc” ‘abc’ ‘’’abc’’’ “””abc”””
·运算符:
‘中’+’国’
‘tom’ * 3
‘h’ in ‘hello’
·字符串的索引和切片
索引:S[0] s[-1]
切片: s[头下标:尾下标:步长]
S[::-1]
·内置的字符串处理函数
len(x):返回字符串x的长度
str(x):将任意类型x所转换为字符串类型
chr(x):返回Unicode编码为x的字符
ord(x):返回字符x的Unicode编码值
hex(x):将整数x转换为十六进制数,并返回其小写字符串形式
oct(x):将整数x转换为八进制数,并返回其小写字符串形式
·字符串做任何修改,字符串对象是不可变的,所以字符串对象提供的涉及字符串“修改”的方法都是返回修改之后的新字符串,并不对原字符串产生影响
字符的内置函数:
1.查找函数
·find() rfind()
查找一个字符串在另一个字符串指定范围中首次和最后一次出现的位置
·Index() rindex()
查找一个字符串在另一个字符串指定范围中首次和最后一次出现的位置,如果不存在则报错
·count()
一个字符在另一个字符串中出现次数,不存在返回0
2.分隔函数
·split() rsplit()
指定字符为分隔符,从原字符串的左端和右端开始将其分隔成多个字符串,并返回包含结果的列表
*可指定最大分隔次数,maxsplit=
·partition() rpartition()
指定字符串为分隔符将原字符分隔成3部分
3.连接函数
·join() 字符连接方法
4.大小写转换
lower()、upper()、 capitalize()【首字母大写】 、title()【每个单词首字母大写】、 swapcase()
5.删除函数strip() rstrip() lstrip()
删除字符串两端、右端、左端连续空白字符和指定字符
6.替换函数replace()
用来替换字符串中指定字符或子字符,每次只能替换一个字符或子字符串,且该方法不能修改原字符串只是返回一个新字符串
7.判断函数 isupper() islower() isdigit() isalha()
8.排版函数 center() ljust() rjust()
9.格式化函数 str.format()
三、程序流程控制
顺序结构、分支结构、循环结构
tips:
判断偶数 x%2==0
判断整除 x%3==0 and x%7==0
选择结构
1.单分支 if 条件表达式:
语句块
#三位正整数中的最大一位数字
2.双分支 if 条件表达式: 语句块1
Else:
语句块2
3.多分支 if 条件表达式1: #体脂率判断
语句块1
Elif 条件表达式2:
语句块2
Else:
语句块n
循环结构:
#”abc”/range(10)/list/tuple/dic.items()
#统计英文句子中大小写和数字各有多少个
for a in 迭代器: “abc” range(10)
语句块
While 条件表达式:
语句块
break和continue语句 #素数问题
else子句
·random库 #import random as ran
·Random()
Python内置random库,提供了与随机数有关的功能,主要是提供了一些生成各种随机数的函数。
*小数
random():返回左闭右开区间[0.0,1.0)中的一个随机浮点数。
uniform(m,n):生成一个[m, n]之间的随机小数。
*整数
randrange(n),randrange(m,n),randrange(m,n,d):返回给定区间里的一个随机整数。
randint(m,n):相当于randrange(m, n+1)。
*其他
choice(s):从序列s里随机选择一个元素。
sample(pop,k):从pop类型中随机选取k个元素,以列表类型返回。
shuffle(s):将序列类型中的元素随机排列,返回打乱后的序列。
seed(n):用整数n重置随机数生成器。seed()利用系统当时的时间重置随机数生成器,调用seed函数,相当于要求重新开始一个随机序列。
#赌场有一种游戏,称为“幸运7”,游戏规则是你丢两个骰子,如果其点数之和为7你就赢4元,不是7你就输1元,请你分析一下,这样的规则是否公平呢?
四、列表与元组
列表和元组属于序列类型,可以通过索引访问
【列表】
·创建 lst=[1,2,’a’,’b’,’d’,’b’,’e’] lst1=list()
·访问 索引访问和切片访问
lst[0] lst[-1] lst[1:4:-1] lst[-3:1:-1]
·修改 lst[0]=100
·添加 lst.append() lst.insert(1,’h’)
·删除 del lst[0] lst.pop(1) lst.remove(‘e’)
·列表扩充运算
Lst1+lst2 lst1.extend(lst2)
Lst1 * 3
·其他常用操作:
Len(lst) 元素 in(not in)列表
Lst.index(‘b’)
Lst.count(‘b’)
·列表的排序
·sort()
1.缺省参数的sort方法默认对列表元素按升序排序
2.嵌套结构的列表默认元素的第一个子元素为关键字按升序排序
3.reverse参数为”True”时对列表元素按降序排序
4.sort方法原地排序,改变原来的列表
·sorted()
sorted命令的使用和参数含义和sort方法一致。但sorted命令生成新的有序列表,不改变原来的列表。
·列表的遍历
·按元素遍历 for item in lst:
Print(item)
·按索引遍历 for I in range(len(lst)):
Print(lst[i])
·列表生成式
Lst2=[ x for x in lst1]
等价于:
Lst2=[]
For x in lst1:
Lst2.append(x)
【例】已知有学生信息列表如下:
【元组】
·创建 tup1=(1,2,3,4,5,6) tup1=tuple()
·元组不能修改,也称为不能修改的列表
·元组定义
*元组和列表的不同之处:
1.元组使用圆括号(),列表使用方括号[];
2.元组的元素不能修改。
3.不使用“()”直接的多个数据用“,”隔开也可以定义元组。
4.元组只有1个元素时,系统将其视作单个的字符串;
在1个元素后跟上‘,’才能定义单元素的元组。
·元组的操作
列表中不涉及元素修改的操作都适用于元组:
1.读元素
2.del命令(只支持删除整个)
3.len函数
4.index方法
5.In、not in运算
6.count方法
·序列转换函数
1).列表、元组和字符串都属于Python的一种基本数据类型——序列(sequence)
2).序列的最大特点是元素的有序性,所以序列都是通过序号索引来访问元素的。
3).序列之间可以通过转换函数进行互相转换:
*元组和列表
list2=list(tuple1) tuple2=tuple(list1)
*字符串转列表
1.list函数:转换后字符串中的单个字符依次成为列表元素
2.split方法:列表 = 字符串.split(分隔符)
五、字典与集合
【字典】
属于映射类型,只能通过键访问对应的值
·创建 dic1={‘a’:1,’b’:2,’c’:1,’d’:3}
dic2=dict()
特性:
1、键具有唯一性,字典中不允许出现相同的键,但是不同的键允许对应相同的值。
2、字典中的键必须是不可变的类型,一般字符串、数字或者元组;而值却可以是任何数据类型。
3、如果在字典的定义中确实需要使用多个子元素联合充当键,需要使用元组。
修改 dic1[‘c’]=2
添加 dic1[‘e’]=4
删除 del dic1[‘e’] dic1.clear()
成员运算符 ‘a’ in dic1
获取条目的值
dic1.get(‘d’,0)
dic1.get(‘g’,0)
【例5-1】统计英文句子“Life is short,we need Python.”中各字符出现的次数。
字典遍历
Dic1.items() 提取字典所有条目,以双元素列表形式返回
Dic1.keys() 提取字典所有键,以列表形式返回
Dic1.values() : 提取字典所有值,以列表形式返回
字典.items():
提取字典所有条目,以双元素列表形式返回
· for item in dicAreas.items():
print(item)
·for k,v in dicAreas.items():
print("{}的面积是{}万平方公里。".format(k,v))
字典.keys() :
提取字典所有键,以列表形式返回
·for key in dicAreas.keys():
print(key)
·for key in dicAreas.keys():
print(key, dicAreas [key])
*也可以通过键与值的映射访问对应的值,从而遍历所有的条目信息
字典.values():
提取字典所有值,以列表形式返回
for value in dicAreas.values():
print(value)
字典的合并update():
dicArea.update(dicOthers)
update方法更新的是调用方法的字典,而作为参数的字典内容不会发生变化
字典的排序:
使用内置sorted()函数
*列表生成式:列表 = [循环变量相关表达式 for 循环变量 in range函数]
用来存放一组无序且互不相同的元素。同时,组成集合的元素必须是不可变类型。
【集合】
·简介
- 特点:集合中的元素是无序且互不相同的。同时,组成集合的元素必须是不可变类型
- 用途:集合除了支持数学中的集合运算外,主要用来进行关系测试和消除重复元素。
·创建
- 直接创建集合,直接将元素放在一对大括号“{}”中
- 使用set函数创建集合,将序列转换为集合
- 创建空集合,不能用一对空括号“{}”,而是要用不带参数的set函数。
*s1={} #字典 *s2=set() #集合
·输出
·通过集合名作整体输出
s2
·要么通过for循环实现元素遍历。
for item in s2:
·集合的基本操作
1.添加:
s2.add()
s2.update()
2.删除:
remove():将指定元素item从集合S中删除。如果item在集合中不存在,系统报错。
discard():将指定元素item从集合S中删除。如果item在集合中不存在,系统正常执行,无任何输出。
pop():从集合S中随机删除并返回一个元素。
clear():清空集合中所有的元素。
成员判断:
Item in s2
数学运算:
·并A.union(B)
·交A.intersection(B)
·差A.difference(B)
·对称差集.symmetric_difference(B)
创建 set1={(1,2),(3,4)} set1=set()
使用set函数创建集合,将序列转换为集合
Lst=[1,2,3,1,2]
S1=set(lst)
Lst1=list(s)
【例5-5】生成20个0~20的随机数并输出其中互不相同的数。
import random def generate_unique_random_numbers(): numbers = [] while len(numbers) < 20: new_number = random.randint(0, 20) if new_number not in numbers: numbers.append(new_number) return numbers random_numbers = generate_unique_random_numbers() print(random_numbers)
六、函数
·定义
def f(a,b,c):
…………
return a+b+c
注: 1.a,b,c是形式参数,可有可无
2.函数体中return可有可无。Return语句可以有多条,但只执行某一条return语句
·调用
f(1,2,3)
def p():
Print(‘******’)
以下是错误调用
>>>print(p())
******
None
以下是正确调用
>>>p()
*****
python中函数传递参数有四种形式
fun1(a,b,c) #位置参数
fun2(a=1,b=2,c=3) #默认值参数
fun3(*args) #可变长参数(元组)
fun4(**kargs) #可变长参数(字典)
注意:
四种参数的混合顺序如下
def fun(位置参数,默认值参数,*args,**kargs)
【例】编写函数,求任意个连续整数的和。并在主程序中调用该函数。
·lambda函数
1.定义:
lambda 参数1,参数2,…… :<函数语句>
lambda函数是一种简便的,在同一行定义函数的方法。
lambda实际上是生成一个函数对象,即匿名函数
它广泛用于需要函数对象作为参数或函数比较简单并且只使用一次的场合。
利用lambda按键排序:
【Sorted(dic,key=…))】
dict_data={"化1704":33,"化1702":28,"化1701":34,"化1703":30}
#按键排序,输出键值对
print(sorted(dict_data.items()))
[('化1701', 34), ('化1702', 28), ('化1703', 30), ('化1704', 33)]
#按值的个位数排序,输出键值对
print(sorted(dict_data.items(),key=lambda x:x[1]%10))
[('化1703', 30), ('化1704', 33), ('化1701', 34), ('化1702', 28)]
#按值排序,输出键值对
print(sorted(dict_data.items(),key=lambda x:x[1]))
[('化1702', 28), ('化1703', 30), ('化1704', 33), ('化1701', 34)]
七、文件与异常
File对象名 = open(文件路径字符串,模式字符 )
读文件
f1=open(‘data.txt’,’r’)
text=f1.read() #text为字符串
lines=f1.readlines() #lines为字符串
f1.close()
写文件
with open(‘data.txt’,’w’) as f1:
f1.write(‘ab’) #参数是字符串
f1.writelines([‘123’]) #lines为字符串
csv文件读写
一、文本文件
读文件
file.read() #字符串
file.readline() #读取当前行,返回字符串
file.readlines() #读取所有行,返回列表,每一行是列表的一个字符串元素
写文件
file.write(字符串)
file.writelines(列表)
二、CSV文件
import csv
读文件
with open(filename,读模式) as filecsv:
reader=csv.reader(filecsv)
for row in reader:
print(row)
写文件
with open(filename,写模式,newline=””) as filecsv:
writer=csv.writer(filecsv)
writer.writerow(序列) #将序列写入一行
writer.writerows(序列) #将序列中每一个元素写入一行
十、数据分析pandas
各种格式文件的读写
Import pandas as pd
df=pd.read_csv(文件名,encoding=””)
df.to_csv(文件名,encoding=””,index=False)
作者:BlueEstrella