python知识要点


  • 编译:将源代码转换成目标代码的过程
  • 解释:将源代码逐条转换成目标代码同时逐条运行目标代码的过程
    • c语言是编译型语言;python是解释型语言
  • Python的特点:语法简洁;与平台无关;粘性扩展;开源理念;通用灵活;强制可读;支持中文;模式多样;类库丰富

 

  • Python的注释格式:
  1. 单行注释:以#开头
  2. 多行注释:以'''三个单引号来作为开头和结尾        
  • Python的变量命名规则:长度没有限制,允许采用大写字母、小写字母、数字、下划线和汉字等字符来给变量命名,但不允许首字符为数字,同时中间不能出现空格。
  • 关键字
Python关键字
False None True    
and as assert break class continue
def del elif else except finally
for from global if import in
is lambda nonlocal not or pass
raise return try while

eval函数(本质为脱最外层引号)

可以使用eval()嵌套input()进行实现输入需要的类型

  input()输出为str类型

  注意“:”的使用(在函数定义,递归条件使用的情形下需要使用:)


数据类型(char不是python数据类型)
基本数据类型(整数、浮点数、复数)

int float complex

浮点数最多精确15位

复数x:实部:x.real

     虚部:x.imag

//:整数商 输出数据类型为int

/:商    输出数据类型为float(xx.x)

**:幂函数(x**y和pow(x,y)意义相同


字符串(输入输出、★切片)

字符串定义时可以使用单引号、双引号和三引号来表示,其中单引号和双引号为单行字符串,使用单引号时可以将双引号作为字符串一部分,使用双引号时可以将单引号作为字符串一部分,三引号可以表示单行或多行,换行时,会在字符串内添加一个元素\n

基本字符串操作

基本字符串操作
操作符 描述
x+y 连接两个字符串x和y
x*n或n*x 复制n次字符串x
x in s 如果x为s的子串,返回true;否则返回false
str[i] 索引,返回字符串str的第i个元素
str[N:M] 切片,范围索引第N个元素到第M-1个元素

 

 len(x)  返回字符串x的长度,也可以应用在其他组合数据类型中

内置字符串处理方法
方法 描述
str.lower 返回字符串str的副本,全部字符小写
str.upper 返回字符串str的副本,全部字符大写
str.split(sep="*",maxsplit=-1) 返回一个列表,由str被sep分割后的状态构成,maxsplit默认为-1(全部分割)指定maxsplit=x则最多分割x次
str.replace(old,new,count) 返回字符串str的副本,count未给定,则所有old字符串被替换成new,否则替换前count次
str.join(iterable(可迭代类型)) 返回一个新字符串,由可迭代类型变量iterable中每个元素构成,元素间用str分隔

 

集合:列表:元组:字符串:

int(3.14)== 3
int(9.9)== 9
float(3)== 3.0

表达式取位宽最长的数据类型
★if(0.1+0.2==0.3)  

false (float的数据处理)

  • pow(x,y,z)=(x**y)%z,其中参数z可以省略

特殊格式化控制字符

特殊的格式化控制字符
\a 蜂鸣,响铃
\b 向后退一格
\f 换页
\n 换行,光标移动到下行首行
\r 回车,光标移动到本行首行
\t 水平制表
\v 垂直制表
\0 NULL,什么都不做

 

  • 函数定义(语法形式)

def 函数名():

  .....

  return 返回值

其中函数名不能是python内的关键字,没有返回值时,函数默认返回None

  • 全局变量:
    • 作用域:全局作用域
    • 生命周期:程序运行期间一直存在
  • 局部变量:
    • 作用域:局部作用域
    • 生命周期:程序运行出局部作用域,变量即被释放

变量声明:

1.简单数据类型变量

(1)简单数据类型变量无论是否与全局变量重名,仅在函数内部创建和使用,函数退出后变量被释放,对同名全局变量无影响

(2)简单数据类型变量在函数中作为全局变量(global)声明后,该全局变量保留且值受到函数的影响

2.组合数据类型变量

(1)组合数据类型变量若在函数内部没有真实创建,且有其同名全局变量,则内部可以直接调用并修改全局变量的值

(2)组合数据类型变量若在函数内部真实创建(未真实创建且没有同名全局变量则报错),则在函数结束时被释放,对同名全局变量无影响

(3)组合数据类型变量在函数中作为全局变量(global)声明后,该全局变量保留且值受到函数的影响

 

 

 

 

 

程序控制结构 

  • 程序的基本结构有三种:
    • 顺序结构
    • 分支结构
      • 单分支
      • 双分支
    • 循环结构
      • 条件循环
      • 遍历循环

循环的使用

分支结构根据条件判断结果选择不同的向前执行路径

循环结构根据条件判断结果能够向后反复执行

  • 循环保留字:
    • break:跳出当前所在的循环,程序从循环后继续执行
    • continue:跳出本次循环,但将继续遍历剩余循环列表
  • 流程图的基本元素有:
    • 起止框
    • 判断框
    • 处理框
    • 输入/输出框
    • 注释框
    • 流向线
    • 连接点

递归调用(程序题)
1.阶乘

 

 其中round()函数作用是四舍五入取最接近的整数

2.字符串反转

 

组合数据类型

  • 元组、列表、字符串有序
  • 集合、字典无序
  • 集合符号是{}
  • 列表符号是[]
  • 元组符号是()
  • 字符串是''' ''' 或" "或' '

一、集合类型

```
集合是多个元素的无序组合
集合元素之间无序,每个元素唯一,不可重复
*集合元素不可更改,不能说可变数据类型
```

```
集合用{}表示,元素间用","分隔
建立集合类型用{}或set()
建立空集合类型,必须使用set()
```

操作符(未要求)

集合类型数据的操作符
操作符 描述
S|T (并) S和T内所有元素
S-T (差) 在S但不在T内的元素
S&T (交) 同时在S和T内的元素
S^T (补) S和T内非相同的元素
S<=T或S<T 判断S和T的子集关系
S>=T或S>T 判断S和T的包含关系
S|=T (并) 更新S集合 包括S和T内的所有元素
S-=T (差) 更新S集合 在S但不在T内的元素
S&=T (交) 更新S集合 同时在S和T内的元素
S^=T (补) 更新S集合 S和T内非相同的元素

 

处理方法(未要求)

集合类型的处理方法
方法 描述
S.add(x)  如果x不在集合S内,则将x添加到S
S.discard(x) 移除S中元素x,如果x不在S中,不报错
S.remove(x) 移除S中元素x,不如x不在S中,产生KeyError异常
S.clear() 移除S内所有元素
S.pop() 随机取出s内一个元素并删除,若S为空,产生KeyError异常
S.copy() 返回S的一个副本
len(S) 返回S的元素个数
x in S 判断S中元素x,在S内返回True,否则返回Flase
x not in S 判断S中元素x,不在S内返回True,否则返回Flase
set(x) 将其他类型变量x变为集合类型

 

应用

数据去重:利用集合无重复元素的特点
包含关系比较

 

二、序列类型


```
序列是一维元素向量,元素类型可以不同
类似数学元素序列:S0,S1,S2……
元素间由序号引导,通过下标访问序列的特定元素
序列类型是一个基类类型
包含:*字符串类型 *元组类型 *列表类型
```

操作符(未要求)

序列类型的操作符
x in S  判断序列S中元素x,在S内返回True,否则返回Flase
x not in S 判断序列S中元素x,不在S内返回True,否则返回Flase
S+T 连接两个序列S和T(S、T必须为同类型)
S*n或n*S 将序列s重复n次
S[i] 索引,返回S中第i而元素,i是序列序号
S[i:j:k]  分片,返回S中的第i到j个元素以k为步数的子序列(k默认为1,可省略)
len(S) 返回序列S的长度,即元素个数
min(S) 返回序列S的最小元素,元素需可比较
max(S) 返回序列S的最大元素,元素需可比较
S.index(x) 返回序列S第一次出现x的位置
S.index(x,i,j) 返回序列S从i开始到j位置第一次出现x的位置
S.count(x) 返回序列中出现x的总次数

 

应用场景:

```
元组用于元素不改变的应用场景,固定搭配场景
列表更加灵活,是最常用的序列类型
列表的最主要作用:表示一组有序数组,进而进行操作
```

1.元组类型

```
元组是序列类型的一种扩展
元组的一种序列类型,一旦创建不能修改
使用()或tuple()创建,元素间用","分隔
可以使用或不使用()
```

2.列表类型

```
列表是一种序列类型,创建后可以被随意修改
使用[]或list()创建,元素间用“,”分割
列表中各元素的类型可以不同
```

操作符(**重要)

列表类型的操作符
操作符 描述

ls[i]=x 

替换列表ls第i元素为x
ls[i:j]=lt 用lt替换ls中的第i到j-1个元素
ls[i:j:k]=lt 用列表lt替换ls切片后所对应的元素子列表
del ls[i] 删除ls的第i元素
del ls[i:j:k] 删除ls中第i到第j-1以k为步长的元素
ls+=lt 更新ls,将lt元素增加到ls中
ls*=n 更新列表ls,其元素重复n次
ls.append(x) 在列表ls最后增加元素x
ls.clear 删除所有元素
ls.copy() 生产新列表,赋值所有元素
ls.insert(i,x) 在ls第i位置增加元素x
ls.pop(i) 将第i元素取出并删除,默认从列表末尾删除元素,ls为空时报错
ls.remove(x) 将ls中出现的第一个x删除
ls.reverse() 将ls内的元素反转

 文件操作:

***必须将程序保存到要打开的文件的路径

 

 

 

 在python shell中必须更改工作目录,当然在实际程序编写过程中可以将文件或程序的位置更改

文件读取方法的区别 

文件内容读取方法
操作方法 含义
<file>.readall() 读入整个文件内容,返回一个字符串或字节流*
<file>.read(size=-1) 从文件中读入整个文件内容,若给出size则读前size长度的字符串或字节流
<file>.readline(size=-1) 从文件中读入一行内容,若给出size则读该行前size长度的字符串或字节流
<file>.readlines(hint=-1) 从文件中读入全部行内容,每行返回一个列表,若给出hint则读入前hint行的内容

 

 <file>.readall()方法似乎在现版本的python不再适用

注意:每次读取后指针指向最后,需要seek(0)命令回到开始
每次进行文件读取时需要使用open命令打开文件

在操作完成后需要使用close命令关闭文件,释放文件的使用授权,不关闭文件句柄则会无法进行文件删除等操作,同时及时关闭文件能够避免超出操作系统的限制的问题

第三方库(选择):

第三方库
从数据分析到人工智能
数据分析 数据可视化 文本处理 机器学习

numpy

pandas

Scipy

Matplotlib

seaborn

mayayi

PyPDF2

NLTK

Python-docx

Sciket-learn

TensorFlow

MXNet

从web解析到网络空间
网络爬虫 web信息提取 web网站开发 网络应用开发

Requests

Scrapy

pyspider

BeautifulSoup

Re

Python-Goose

Django

Pyramind

Flask

WeRoBot

aip

MyQR

从数据分析到人工智能

数据分析: 
numpy 
pandas 
SciPy 

数据可视化:
Matplotlib  
seaborn  
mayavi  

文本处理:
PyPDF2(处理pdf)
NLTK(自然语言文本处理)     
Python-docx(处理word) 

机器学习:
Scikit-learn(最基本最优秀的机器学习之一)
TensorFlow
MXNet(基于神经网络,自动驾驶、机器翻译、语音识别)

从web解析到网络空间

网络爬虫:
Requests(最友好,页面级)
Scrapy(最主要最专业的框架之一)
pyspider(强大的web页面爬取)

web信息提取:
BeautifulSoup(HTML和XML的解析库)
Re(正则表达式解析处理)
Python-Goose(提取文章类型)

web网站开发:
Django(最流行web应用框架,MTV模式)
Pyramid(规模适中)
Flask(简单规模小快速)
规模:Django>Pyramid>Flask

网络应用开发:
WeRoBot(微信公众号开发框架)
aip(百度AI开放平台接口)
MyQR(二维码生成)


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM