Python知识点总结
一.Python注释
1.单行注释
在Python中使用 ‘#’ 此符号进行单行注释
2.多行注释
在Python中将包含在一对三引号(’’’……’’’)或者("""……""")之间,并且不属于任何语句的内容认为是多注释。
二.基本数据类型
1.数字类型:整数(int)、浮点数(float)、复数(complex)
2.字符串类型:str()、repr()
3.布尔类型:()
4.数据类型转换:int→整数型、float→浮点型、str→字符串型、hex→转化为十六进制字符串、oct→转化为八进制字符串
三.分支结构
1.单分支结构:if<条件>:
2.双分支结构:if…else
3.多分支结构:if…elif…else
四.循环
1.遍历循环:
2.无限循环:
五.random库的使用
1.random库是生成及使用随机数的Python标准库
2.使用:import random
– 基本随机数函数: seed(), random()
– 扩展随机数函数: randint(), getrandbits(), uniform(), randrange(),
六.Python组合数据类型
1.列表与元组—属于序列类型
(1) 列表类型及操作:使用方括号 [] 或list() 创建,元素间用逗号 , 分隔,创建后可随意修改。
(2) 元组类型及操作:使用小括号 () 或 tuple() 创建,元素间用逗号 , 分隔,创建后不可以修改。(操作同序列)
2.字典:是键值对的集合,键值对之间无序,键必须是唯一的,但值则不必。
采用大括号{}和dict()创建,键值对用冒号: 表示
{<键1>:<值1>, <键2>:<值2>, … , <键n>:<值n>}
3.集合:建立集合类型用 {} 或 set(),元素间用逗号分隔。建立空集合类型,必须使用set()
七.字符串类型
1.表示:使用单引号或者双引号,仅表示单行字符串;使用一对三单引号或三双引号,可表示多行字符串。
2.使用:使用[ ]获取字符串中一个或多个字符
(1)索引:返回字符串中单个字符 <字符串>[M]
(2)切片:返回字符串中一段字符子串 <字符串>[M: N]
(3)<字符串>[M: N: K],根据步长K对字符串切片
3.操作
5.字符串类型的格式化:对字符串进行格式表达的方式
字符串format()方法的基本使用格式是:
<模板字符串>.format(<逗号分隔的参数>)
八.函数
1.函数的定义:一段具有特定功能的、可重用的语句组,用函数名来表示并通过函数名进行完成功能调用,通过用def来定义。
def <函数名>(<参数列表>):
<函数体>
return <返回值列表> (可以传递0个返回值,也可以传递任意多个返回值)
2.函数的调用
(1)调用程序在调用处暂停执行;
(2)在调用时将实参复制给函数的形参;
(3)执行函数体语句;
(4)函数调用结束给出返回值,程序回到调用前的暂停处继续执行。
3.函数的形参和实参
(1) 在def语句中,位于函数名后面的变量通常称为形参。
(2) 调用函数时提供的值称为实参。
4.全局变量与局部变量
(1)全局变量:指在函数之外定义的变量,一般没有缩进,在程序执行全过程有效。
(2)局部变量:指在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不存在。
(3)转化:通过global保留字在函数内部声明全局变量;局部变量为组合数据类型且未创建新变量,等同于全局变量
5.lambda函数
>>> f = lambda x, y : x + y
>>> f(10, 15)
25
>>> f = lambda : "lambda函数"
>>> print(f())
lambda函数
九.Python模块
1.定义:是一个包含所有你定义的函数和变量的文件,其后缀名是.py,可以被别的程序引入,以使用该模块中的函数等功能
2.种类:
(1)内置模块:如sys, os, subprocess, time, json 等等。
(2)自定义模块:自定义模块时要注意命名,不能和Python自带模块名称冲突。
(3)开源模块:公开的第三方模块, 如 https://pypi.org,可以使用pip install 安装,类似于yum 安装软件。
>>> help('modules') 查看python所有的modules
3.使用:
(1)使用 import语句,导入整个模块。
import module1, module2… # 建议一个import语句只导入一个模块。
import module as module_alias # 别名(也就是自定义的模块名称空间)
(2)from-import 语句 , 常用于只导入指定模块的部分属性或模糊导入。
from module import name1,name2…
>>> from pack1.pack2 import
>>> from random import choice,random,seed
4.存放位置:
>>> sys.path.append('D:\\python')
十.标准库
1.os:可访问多个操作系统服务
函数/变量 | 描述 |
---|---|
environ | 包含环境变量的映射 |
System(command) | 在子shell中执行操作系统命令 |
sep | 路径中使用分隔符 |
pathsep | 分割不同路径的分隔符 |
linesep | 行分隔符 |
urandom(n) | 返回n字节强加密随机数据 |
2.sys:访问与python解释器紧密相关的变量和函数
函数/变量 | 描述 |
---|---|
argv | 命令行参数,包括脚本名 |
exit([arg]) | 退出当前程序,可指定返回值或错误消息 |
modules | 一个字典,将模块名映射到加载的模块 |
path | 一个列表,包含要在其中查找模块的目录名称 |
platform | 一个平台标识符,如win32 |
stdin | 标准输入流—一个类似与文件的对象 |
stdout | 标准输出流 |
sdterr | 标准错误流 |
3.其他
fileinput:文件处理
sets、heapq和deque:集合,堆,双端栈
time、datetime:时间处理
random:随机数
shelve:用于创建永久性映射
re:正则表达式
csv:处理csv文件
enum:枚举类型
logging:日志处理
十一.第三方库
1.三种安装方法
(1)使用pip命令(主要方法):
(2)集成安装方法:结合特定Python开发工具的批量安装
(3)文件安装方法:安装包为带有源文件的压缩包,解压之后,运行setup.py进行安装,方法是执行 python setup.py install。
十二.异常处理
1.常见异常
(1)NameError:尝试访问一个未声明的变量
(2)ZeroDivisionError:除数为零
(3)SyntaxError:Python 解释器语法错误
(4)IndexError:请求的索引超出序列范围
(5)KeyError:请求一个不存在的字典关键字
(6)AttributeError:尝试访问未知的对象属性
2.异常处理:异常可以通过 try 语句来检测,任何在 try 语句块里的代码都会被监测,检查有无异常发生。
(1)try-except语句
(2)多个except 语句
(3)try …except…else 语句,当没有异常发生时,else中的语句将会被执行。
(4)try …except…finally 语句,无论异常是否发生,在程序结束前,finally中的语句都会被执行。
(5)try …except…else…finally 语句
3.抛出异常:要引发异常,可以使用raise语句,并将一个类(必须是Exception子类)或者实例作为参数。将类作为参数时,将自动创建一个实例。
4.自定义异常
十三.文件处理
1.打开一个文件:f = open(r"C:\Users\test.txt") ; with open(文件名,模式)
2.关闭文件:f.close()
例题分析
例题1
题目:输入一个超过5位的整数,输出“XXXX万”和“XXXXK”
例如:输入:500000
输出:50万 500K
解析:
先用input函数输出一个超过5位数的整数,再分别计算出结果,最后用print输出带单位的数
a = int(input("输入一个超过5位的整数:")) # 转化成整数型
b = int( a / 10000 ) # 转换成整数型
c = int( a / 1000 ) # 转换成整数型
print("输出:" + str(b) + "万" + " " + str(c) + "K") # 转换成字符串+文字
例题2
题目`:通过调用函数求结果
def l(x):
x = x * 2
return x
a = 4
b = l(a)
print(a,b)
>>> 4 8
解析:
通过def定义一个函数,x=x*2是函数的算法,定义a=4,通过b调用函数求出a,b值为4,8。
例题3
题目:全局变量
def l():
global x
x = 4
return x
x = 5
l()
print(x)
>>> x = 4
####### 解析:
通过def定义一个函数,将其变量x变为全局变量,定义一个新的x的值,输出结果还是原来的值。
例题4
题目: sorted函数
a = {1,2,3}
b = {2,3,4}
print(sorted(a^b))
>>>[1,4]
解析:
a^b是两个集合中不相同的元素放到一起,sorted将结果转化成一个列表。
例题5
题目:写出下列代码的结果
a = {2, 4, 6}
b = {1, 2, 4, 6, 8}
a.update(b)
print( len(a) )
>>> 5
解析:
a和b都是集合,a.update(b)是将b中元素添加到a,而集合会把重复的元素删除,len(a)是数a集合中有多少元素,所以输出结果为5。
例题6
题目:写出下列代码的结果
a = {8, 2, 3, 4}
a.remove(3)
print(sum(a))
>>> 14
解析:
a为集合,remove是间集合a的指定元素删除,sum是计算集合a的所有元素相加的和,所以输出结果为14
例题7
题目:写出下列代码的结果
a = {1: 11, 2: 22, 3: 33}
b = a.get(2)
print(b)
>>> 22
解析:
a是字典,get是返回字典中对应的值,所以输出结果为22。
例题8
题目:写出下列代码的结果
a = [1,2,3,4]
a.reverse()
print(a)
>>> [4,3,2,1]
解析:
a为一个列表,reversë将其里面的元素顺序颠倒。
例题9
题目:假定20170101为星期一,输出20170101-20170331的每个星期一。
print("三个月内的所有星期一为:")
for date in range(20170101,20170131,7):
print(str(date))
for date in range(20170205,20170228,7):
print(str(date))
for date in range(20170305,20170331,7):
print(str(date))
>>>20170101
20170108
20170115
20170122
20170129
20170205
20170212
20170219
20170226
20170305
20170312
20170319
20170326
解析:
通过for循环日期,range(起始点,终止点,步长),以一周七天为一个步长,循环出的结果即为每个星期一。
例题十
题目:
s = 'abcABCabc'
a = s.lower()
print(a)
b = s.split(',')
print(b)
c = s.count('a')
print(c)
d = s.replace('a','d')
>>>abcabcabc
['abcABCabc']
2
dbcABCdbc
解析:
slower即将该字符串所有字母都小写,split将其形成一个列表,count即统计字母a出现的次数,replace(a,d)即用d代替a。
例题十一
题目:打印九九乘法表
i = 1
while i<=9:
j = 1
while j<=i:
print(f"{i}*{j}={i*j}", end=' ')
j += 1
print()
i += 1
>>>1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
4*1=4 4*2=8 4*3=12 4*4=16
5*1=5 5*2=10 5*3=15 5*4=20 5*5=25
6*1=6 6*2=12 6*3=18 6*4=24 6*5=30 6*6=36
7*1=7 7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=49
8*1=8 8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=64
9*1=9 9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81
解析:
通过两个while判断i,j的值,每次循环后 i+1,j+1。
例题十二
题目:建立新文件 并将内容写入文件。
with open('1写入ANSI.txt', mode='w') as fp:
fp.write('181234567890 邢无涯\n')
with open('1写入ANSI.txt', mode='r') as fp:
print(fp.name)
print(fp.read())
解析:
用 w 模式在当前目录中建立新文件 ‘1写入ANSI.txt’,写入字符串,再次 r 模式打开文件,读取内容,打印输出文件名,打印输出文件内容。
例题十三
题目:用单个for配合if条件,循环九次打印下列矩阵:
1 2 3
4 5 6
7 8 9
for i in range(1,10):
print(i, end=' ')
if i%3==0 :
print('\n', end='')
解析:
for循环1到10的数,输出i与空格,当循环指标能够被3整除时,输出一个换行符号\n。
例题十四
题目:format
s = '我是{}学院,{}专业,学号是{}'.format('shuli','dashuju','12345678')
>>>'我是shuli学院,dashuju专业,学号是12345678'
解析:
format前面{}顺序与()顺序一一对应。
例题十五
题目:输出10以内的奇数
for i in range(1,10):
if i%2 == 0:
continue
print(i,end=' ')
>>>1 3 5 7 9
###
解析:
循环遍历10以内的数,若能被2整除则跳出,进行下一次循环。
###第一次写,大家点个赞鼓励鼓励 = =