Python期中讲义复习

第一章 Python概述
1.1 程序与程序设计语言
1.1.1 程序
IPO模式:数据输入→数据处理(处理的方法叫做算法)→数据输出
1.1.2 程序设计语言
人与计算机进行交流的语言
Python:解释性,高级的,面向对象的通用语言

分类1:
(1)机器语言:01,低级语言
(2)汇编语言:难读难改,低级语言,汇编语言程序不能再计算机上直接运行,要变成机器语言
(3)高级语言:
高级语言翻译程序的两种工作方式:
①解释方式:同声翻译,解释方式不生成目标程序,慢,一段一段翻译(VB,Python)
②编译方式:将整个程序翻译成目标程序,笔译,快,大多数高级语言(C/C++,Java)

分类2:
(1)面向过程程序设计语言
数据结构+算法:BASIC,C
(2)面向对象程序设计语言
以对象作为基本程序结构单位
主流:VB,C++,Java,Python

1.2 Python简介
解释性,高级的,面向对象的通用语言
优点:
(1)自由/开源软件:可以自由发布拷贝、阅读源代码、改动、应用一部分于新的软件中
(2)标准库、第三方库多
缺点:运行慢(C/C++)

应用:支持面向过程编程和面向对象编程(虽然Python本身是面向对象的)
软件开发,脚本编写,网络编程,科学计算,云计算,自动化运维,网络爬虫,数据分析(主流语言),AI

1.3 简单的Python程序实例

一行语句写不下:用‘\’在换行处换行
一行写多个语句:‘;’作为间隔
大小写字母有区别

1.4 Python开发环境IDE
(1)IDLE
Python内置的一个集成开发环境,使用第三方库要安装
两种运行方式:Shell交互方式,文件直接执行方式(直接打开PY文件的界面)
Shell:交互式的命令解释器(>>>命令提示符)
(2)Anaconda
一般不用安装第三方库,集成大量科学包及其依赖项
Spyder是Anaconda的集成开发环境
(3)第三方库
安装:pip命令
>pip install numpy(第三方库的名字)
查看已安装的库:
>pip list

1.5 程序调试和生成可执行程序
1.5.1 程序调试
程序错误分类:
语法错误:解释器可以发现
逻辑错误:设置debug,加print

debug用法:
debug:开始调试
step:开始单步执行
step info:单步运行到函数体内
step return:单步运行跳出函数体
continue:继续
stop:停止调试

1.5.3 生成可执行程序(未学)

第二章 数据表示和处理
程序是用程序设计语言所描述的解决问题的方法和步骤
程序包括:数据(加工处理的对象),对数据的操作(反应对数据的处理方法,体现程序的功能)
程序设计语言定义了不同的数据类型,各种类型数据的存储和所能进行的处理

2.1 数据类型
2.1.2 内置数据类型
数据类型:基本数据类型:整数,浮点数,复数,布尔型
复合数据类型:有序序列:字符串(兼具基本和复合数据类型的特点,即可以用字符串变量存放一串字符串,也可以通过s[i]访问单个字符),列表,元组
无序序列:字典,集合

2.1.3 常量,变量和标识符
(1)变量
变量名标识符命名规则:
开头不能是数字,要分大小写,不能和关键字重名,可以用_不能用其他符号,不能有空格

静态类型的程序设计语言:C
动态类型的程序设计语言:Python

2.2 数值数据的表示和处理
2.1.1 数值数据常量
Python数值数据包含整数,浮点数,常量
八进制:0O(0o)0~7
十六进制:0X(0x)09,A(a)F(f)

十进制换二进制:
图片: https://uploader.shimo.im/f/ub05GraiEC4Oc5f2.png图片: https://uploader.shimo.im/f/0f8fIXFXDV9c9SLg.gif

float的指数形式:
0.1234E-5
1.234e5

复数形式:
12.3+45.6J
23.4+12.3j

说明
(1)整数类型没有取值范围
(2)浮点数的取值范围和小数精度受不同计算机系统的限制
import sys
print(sys.float_info.max) #系统中float的information

1.7976931348623157e+308
图片: https://uploader.shimo.im/f/0MANKI5leb73AUmt.gif
(3)Python提供了复数类型,由实部和虚部构成
a=12.3+45.6J
print(‘实部:’,a.real,’\n虚部:’,a.imag)

实部: 12.3
虚部: 45.6
图片: https://uploader.shimo.im/f/X9OOYYmzV0KqTbqZ.gif

2.2.2 算术表达式
(1)算术运算符(略)
(2)赋值运算符
①简单赋值:变量=表达式
②复合赋值:变量=复合赋值运算符表达式
③链式赋值:x=y=z=10
④序列解包赋值:x,y,z=1,2,3
x,y=y,x
(3)不同数据类型的转换
①隐式转换:自动进行,原则是低精度像高精度
②显式转换:强制转换,转换函数int(),float(),complex()
float →int中,只是保留整数部分 ,小数部分全部去掉,不是四舍五入。如果是指数类型的float,先转化成正常的,然后再重复上述过程

2.2.3 常用系统函数
函数调用形式:函数名(参数列表)
(1)内置的数值类型函数
abs(x) :绝对值(不用import math)
divmod(x,y):(x//y,x%y)
pow(x,y):x**y
round(x,n可省略):对x四舍五入,保留n位小数,没有n时四舍五入保留整数
max()
listnum=[1,2,3,4,5,6,7] #max可以用于列表,元组也可以
print(max(listnum))

listbool=[-1,0,True,False] #bool可以比较大小,但返回True或者False
print(max(listbool))

listmix=[0,1,2,3,‘3’,‘4’] #字符串在列表里面不能比较大小
print(max(listmix))

7
True
Traceback (most recent call last):

File “D:\Python.py”, line 14, in
print(max(listmix))

TypeError: ‘>’ not supported between instances of ‘str’ and ‘int’

string=‘1232145’
#纯数字构成的string也可以比较大小,因为str同时具有基本数据类型和复合数据类型的特点
print(max(string))

5
图片: https://uploader.shimo.im/f/R7bMsrTPhcNR0U1T.gif
(2)内置的数据类型转化函数
complex(x1,x2可省略):x1转复数的实部,x2转虚部,如果没有就是0:(3+0j)
bool(x):如果x为数值:非零数值,True;如果为零,False
如果x为字符串:非空为True,空为False
eval(str):去掉引号,变成默认类型,可以加减,eval(‘3,4,5’)=(3,4,5),会把字符串指数转化成浮点数
log(x,e可省略):默认底数为e,写了就给底数赋值
str()
sin()

(3)math库模块
模块导入:
①import 模块名 【as 别名 可省略】
调用模块里面的函数:模块名.函数()
②from 模块名 import *【指全部】
from 模块名 import 某个函数
调用时直接写需要使用函数即可

math库里面的函数:
pi,e,exp(x)=e**x,sin()

(4)random库模块
伪随机数:其中的随机函数是按照一定的算法模拟产生的,其概率是确定的、可见的

random.seed()用法
from random import *

print(random())
print(random())

seed(120)
print(random())
seed(120)
print(random())

seed=()
print(random())
print(random())

seed=(“A”)
print(random())
seed=(“A”)
print(random())

0.6352690810997838
0.5896618565242374
0.5149379540077491
0.5149379540077491
0.1886481713153758
0.9529195271072769
0.6352690810997838
0.5896618565242374

lit=[]
seed(10)
for i in range(1,10):
lit+=chr(randint(65,90))
print(lit)

[‘S’, ‘B’, ‘N’, ‘P’, ‘S’, ‘A’, ‘G’, ‘O’, ‘P’]
#每次运行都是这个结果
图片: https://uploader.shimo.im/f/xqm68V0FImqnKcY9.gif
seed()空,浮点数,字符串,None,都是当前时间

random():[0,1)浮点数
randint(a,b):[a,b]内随机产生一个整数
randrange(a,b,step):[a,b)区间,步长为step的集合里面随机整数一个
uniform(a,b):[a,b]区间随机一个浮点数
choice(x):从x序列中随机选一个元素
shuffle(x):随机打乱排序
x=[‘a’,3,4,1,2]
shuffle(x)
print(x)

[3, 4, ‘a’, 2, 1]

‘’’
shuffle的对象只能是列表
不能print(shuffle(x)),这样返回值是None
shuffle会改变列表
‘’’
图片: https://uploader.shimo.im/f/uebPvOto0YJ7Td32.gif

2.3 字符串类型及处理
2.3.1 字符串类型
(1)字符串常量
‘abc’,“abc”,’’‘abc’’’,""“abc”""
使用的时候要单双交换使用
(2)转义字符
这些都要用在引号里面才有用
\是用来解决想打出\n但又会被转义时,‘a\nb’:a\nb
2.3.2 字符串的处理
(1)字符串基本操作符
连接用+
复制用*
子串测试:s1 in s2:返回bool

索引切片:s[开始:结束:步长],可以倒着数
s=‘abcdefghi’
print(s[-2:1:-2])

‘hfd’
图片: https://uploader.shimo.im/f/F9X6ZmCD15QdjKj8.gif
结束不包括
如果没有开始结束,默认到字符串末尾
步长默认为+1
(2)内置字符串处理函数和方法
①字符串处理函数
len()
chr(数字)
ord(‘字符串’)额、
②字符串对象处理方法
s.方法(参数)
s.isnumeric():bool
s.index(‘abc’):第一次出现这个子字符串的位置
s.strip(‘ ’):去掉空格
s.startswith(“AB”):bool

2.4 布尔类型bool和处理
2.4.1 关系运算
!=,>=
字符串的比较:ASCII码从左到右逐个比较,直到有一个不一样为止
2.4.2 逻辑运算
优先级:not>and>or
可以用括号

2.5 复合数据类型
2.5.1 列表
索引与字符串相同,切片可以更新,而字符串不能更新
2.5.2 元组
只读的列表,只有一个元素时候,后面要加逗号,可以是空的元组
2.5.3 集合set
空集合不能{}这是字典
空集合可以set()
2.5.4 字典
Python中唯一的映射类型,键值对的数据项组合
键必须唯一
(1)表示一:week={1:‘Mon’,2:‘Tues’}
week[2]=‘Tues’
(2)表示二:dict函数里面,只能键为标识符:week=dict(w1=‘Mon’,w2=‘Tues’)
{‘w1’:‘Mon’,‘w2’:‘Tues’}

2.6 数据的输入和输出
2.6.1 数据的输入
input(‘提示字符串’)
2.6.2 数据的输出
(1)使用表达式的方式
IDLE交互状态,输入表达式得到输出值,用于数据检查
(2)print()函数方式
print(‘abc’,‘def’+‘g’,sep=’&’,end=’@’)

abc&defg@
图片: https://uploader.shimo.im/f/4bgp2KK7Ohcz8Wbo.gif
2.6.3 格式化输出
(1)字符串格式化操作符%
%【m】【.n】
m最小宽度,n为小数位数
%d整数,%c单个字符,%e[E]指数形式,%s字符串
右对齐左补空

(2)format方法
“xyz{空的,或者 序号0123:[m.n]类型符例如f浮点数}abc”.format(输出元组序列)
m最小宽度,n为小数位数
数值默认右对齐左补空,字符串默认左对齐右补空

第三章 结构化程序设计
程序代码的三种基本控制结构:顺序结构、选择结构、循环结构
3.1 顺序结构
IDLE交互状态
3.1.1 引例(略)
3,1.2 简单程序的结构
IPO:输入数据→进行处理→输出结果
输入常用input,测试程序的批量数据用随机数,实际批量应用数据用文件读入
输出结果一般print()
3.2 选择结构
if条件语句的多种形式:单分支、双分支和多分支
3.2.3 选择结构的嵌套(略)

3.3 循环结构
Python的基本循环结构:for,while
3.3.1 for
(1)for语句
for 循环变量 in 序列(range,字符串,列表,元组,集合)
random.sample()函数
产生指定范围内、指定个数的各个不同的随机数,输出为列表形式,作用对象可以使字符串,元组,列表,集合,range(),不适用字典,要list(字典),输出键的列表sample
from random import *
print(sample(‘abcdefg’,2))

[‘g’, ‘e’]

from random import *
print(sample(range(1,10),2))

[4, 8]
图片: https://uploader.shimo.im/f/tRooNpd7gSa9VRvV.gif

(2)range函数
Python的内置函数
range(a,b,step):[a,b)步长为step默认+1,可正可负,如果无a,默认0

3.3.3 while语句
无限循环:while 数字:一定里面嵌套if break,否则不会停
3.3.4 循环结构的嵌套
九九乘法表
3.3.5 循环结构和其他语句
(1)跳转语句
①break:结束循环
②continue:短路本次循环
③pass:空语句,占位语句
(2)else子句
break出来的不会进else
3.4 综合应用(见Python笔记)
(1)数字字符图
(2)字符串的加密和解密
(3)计算部分级数和
(4)枚举法
(5)递推法

第四章 函数
函数是完成某个特定任务的程序语句组合,通过一个指定的函数名来抽象其功能
分类:开发环境提供&库中提供,自定义函数

4.1 函数定义与调用
4.1.1 引例(略)
4.1.2 函数的定义
def 函数名(【形式参数表可省略,里面是形参】):
需要有返回值时,return
也可以不return,但要有print等输出才可以体现出调用过函数
Python不指定形参的类型,可以使实数也可以是列表等

4.1.3 函数的调用函数名(实在参数表)
实参与形参一一对应,且类型兼容

4.2 形参与实参
4.2.1 形参类型
(1)位置参数(必选参数)
最普遍,要求位置形参与实参一一对应
必须全部一一调用
(2)默认值参数(可选参数)
函数定义时直接赋值,a=1,针对默认值形参的实参可有可无,如果有可以改变默认值
位置在位置参数后面
(3)可变长度参数
放在默认值参数后面
①*a:转化为一个元组
②**a:关键字参数,对应的实在参数以“标识符=值”的形式传递,输出为字典形式
https://www.jb51.net/article/169959.htm

4.2.2 实参与形参的对应
1.顺序对应
2.形参关键字对应:关键字参数,类似默认值参数,函数名(形参1=实参2,形参2=实参1)注意形参在前,实参在后,就像赋值一样,一旦一个参数使用形参关键字调用,后续的参数都要这样,因为像默认值参数一样要放在位置参数后面。可变长参数无法实现形参关键字命名
3.形参对实参的影响
①形参被重新赋值后,对应的实参不因为形参值的改变而改变(列表全部都改变),实参地址没有变
②形参对应的实参是列表等复杂类型,会改变(切片索引改变列表的一部分),因为地址变了

4.2.3 实参的序列解包
对象是实参
fun(*实参)
zip()用法:
这里对所有都有效,转化为元组

4.3 函数递归
4.3.1 递归函数的定义
递归函数:函数中调用自身的形式,又叫直接递归调用
4.3.2 递归分析
三角形等

4.4 lambda函数
函数名=lambda 形参表:表达式
调用:函数名(形参表)

4.5 变量的作用域
函数中全局和局部变量同名,全局变量被屏蔽,调出函数局部变量失效,仍是全局变量
函数内global x:强制使用全局变量
如果函数内没有同名局部变量,则默认使用全局变量
如果函数内没有对全局变量赋值只是调用,省去global

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值