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)0~9,A(a)~F(f)

 

十进制换二进制:

整数部分

 

 

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

 (3)Python提供了复数类型,由实部和虚部构成

a=12.3+45.6J
print('实部:',a.real,'\n虚部:',a.imag)

>>>
实部: 12.3 
虚部: 45.6

 

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 <module>
    print(max(listmix))

TypeError: '>' not supported between instances of 'str' and 'int'



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

>>>
5

(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']
#每次运行都是这个结果

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会改变列表
'''

 

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'

结束不包括

如果没有开始结束,默认到字符串末尾

步长默认为+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@

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]

(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、付费专栏及课程。

余额充值