python基础
本人学习python时笔记,欢迎各位提问指错
Python基础
1.输入输出
1 | #输出 |
2.变量命名
允许使用大小写字母,数字,下划线,汉字
首字母不能是数字,不能有空格,不能与保留字相同
命名规范:驼峰命名法、帕斯卡命名法,下划线命名
3.数据类型
数字类型:整数,浮点数,复数
对应: 整数,实数,复数
进制. 十六进制0x开头;八进制0o开头;二进制0b开头 输出时自动转为十进制 ↩
浮点数:
123.45 1.2345e2 浮点数只有十进制
e2表示10的二次方 e-2表示10的负二次方
字符串:
用单引号或双引号括起来的一个或多个字符
1 | s="对酒当歌人生几何" |
复数:
1 | 表示: a+bj |
数据类型转化
1 | int(x) //转化为整数 |
内容为float类型的字符串不能通过int(x)转换
4.帮助函数
1 | print(dir(__builtins__)) |
type 捕获数据类型
1 | b=type(a) |
5.数字运算
x/y x与y之商,浮点数
x//y x与y的整数商,即商的整数部分
x%y x与y的商的余数,又称模运算
x y x的y次幂
二元运算符+ - / // % * 等都可与 = 连用
1 | a=12 |
abs(x) x的绝对值
divmod(x,y) (x//y , x%y) 输出为二元数组
pow(x,y [,z] ) 中括号表示可选参数 (x**y)%z
pow(x,y) 计算x的y次方
round(x [,ndigits] ) 对x四舍五入,保留ndigits位小数
max(x1 , x2 , … , xn) 取最大值
min(x1 , x2 , … , xn ) 取最小值
6.字符串
单行字符串 用一对 ‘ ‘ 或 “ ” 作为边界
多行字符串 用三对单引号或双引号表示边界
转义字符:
\n | 换行 |
---|---|
\\ | 反斜杠 |
\‘ | 引号 |
\“ | 双引号 |
\t | 制表符,作用是对齐表格的各列,相当于Tab 多个空格 |
字符串操作
1 | name="python"+"是最接近人工智能的编程语言" |
eval() 解析并执行字符串(相当于把引号去掉)
可以与input结合使用,捕获数字
1 | a=eval('1.2+3.4') #a 为 4.6 |
切片
[x:y:z] 从x到y 步长为z
z为-1时逆序输出
字符串处理方法
方法 | 描述 |
---|---|
a.lower() | 返回a的副本,全部小写 |
a.upper() | 返回a的副本,全部大写 |
a.split(sep) | 根据sep分隔字符a,分隔后以列表返回 |
a.count(sub) | 返回字符串sub在a中出现的次数 |
a.replace(old,new) | 用new替换a中的old |
a.center(width,fillchar) | 字符串居中函数,width是总长度fillchar是填充字符 |
a.strip(chars) | 从字符串a中去除在其左侧和右侧chars中列出的字符 |
a.join(iter) | 将变量iter的每一个元素中增加一个a字符串 |
内置函数
函数 | 描述 | 理解 |
---|---|---|
len(x) | 返回字符串长度,也可返回其他组合数据元素个数 | 长度 |
str(x) | 返回任意类型x对应的字符串形式 | 转为字符串 |
chr(x) | 返回Unicode编码x对应的编码 | x为整数 |
ord(x) | 返回单字符对应的Unicode编码 | x为单个字符 |
hex(x) | 返回整数x对应十六进制小写字符串 | |
oct(x) | 返回整数x对应八进制小写字符串 | |
bin(x) | 返回整数x对应二进制小写字符串 |
格式控制
format
1 | print("{0:%^20}python".format("这是")) |
填充 | 对齐 | 宽度 |
---|---|---|
单个字符,不足宽度是填充 | <>^ 左/右/居中对齐 | 槽的输出宽度 |
默认填充空格,左对齐,适应宽度
格式控制标记不填或不全填,宽度设定小于放置在此的字符串时不起作用
Python结构
1.判断
<小于 >大于 <=小于等于 >=大于等于 ==等于 !=不等于
与 and 或 or 非 not
2.分支结构
1 | #单分支结构 |
1 | #二分支结构 |
1 | #多分支结构 |
3.遍历循环-for
使用:
for 循环变量 in 遍历结构:
语句块
遍历结构可以是字符串、文件、range()函数或组合数据类型
1 | for c in "github": |
range() 函数返回一个可迭代对象
使用: rangea(start,stop,step)
参数说明: start 计数开始,省略默认为0
stop 计数结束,返回值不包含stop
step 步长,默认为1
break 跳出当前循环
脱离循环程序,
continue 结束当前当此循环
跳出循环体下面为执行语句,不跳出循环
扩展模式
for 循环变量 in 循环结构:
语句块1
else:
语句块2
for循环正常结束后执行else语句,如果循环被 break 打断则不能被执行,因此可以判断循环执行情况
4.无限循环-while
1 | while 条件: |
5.异常处理
1 | try: |
6.函数
基本使用
1 | //定义函数 |
参数传递
1 | def fact(a, b=2): |
变量作用域
局部变量 函数内定义,函数内有效
全局变量 函数之外定义,全局有效,使用 global 声明
组合数据
1.基本
- 集合类型:元素集合,无序。集合(set)
- 序列类型:元素向量,存在先后关系,通过序号访问。字符串(str)、列表(list)、元组(tuple)
- 映射类型:“键-值”数据项组合,键值对。字典(dict)
2.集合类型
与数学中的集合一致,内含元素独一无二自动过滤重复元素,无序,用大括号{}表示,没有位置和索引概念,可进行动态增删
1 | a={11,11,22,33,33,54} |
集合运算
符号 | 逻辑 | ||
---|---|---|---|
S&T | 交集 | S和T中同时包含的元素 | |
S\ | T | 并集 | 同时包含S和T中所有元素 |
S_T | 差集 | 包括在S中但不在T中 | |
S^T | 补集 | S和T中非共同元素 |
集合操作函数
set()函数将其他组合数据变为集合类型,也可以生成空的集合变量
1 | n = set() |
函数或方法 | 描述 |
---|---|
S.add(x) | 将x增加到S中 |
S.remove(x) | 将x从S中移除 |
S.clear() | 移除S中所有数据项 |
len(S) | 返回S中元素数量 |
x in S | 判断x是否在S中,返回True或False |
x not in S | 判断x是否不在S中,返回True或False |
3.列表类型
列表用中括号表示,没有长度限制,元素类型可以不同,属于序列类型,可以通过 list(x) 函数将集合或者字符串转换成列表类型
不会删除重复元素,有顺序
1 | x="列" |
4.元组
与列表类似,使用小括号,创建简单,在括号中添加元素并用逗号分隔即可,使用tuple(x)可转化为元组
元组元素不可被修改,list类型的其余操作可用
5.字典
使用大括号建立:
{ 键1:值1,键2:值2,……键n:值n }
键值对之间没有顺序,且不能重复,性质与集合类似
1 | d = {"高数":2,"大物":3} |
遍历循环
1 | for 变量 in 字典名 |
文件操作
1.txt文件
- 文本文件 txt
- 二进制文件 图片视频
操作流程打开——操作——关闭
打开文件
变量名 = open(文件路径及文件名,模式)
路径使用 \\ 或 /
模式 | 描述 |
---|---|
r | 只读 |
w | 覆盖写, |
x | 创建写,创建文件 |
a | 追加写 |
b | 二进制文件模式 |
t | 文本文件模式 |
+ | 与r/w/x/a一同使用 |
变量名.close
1 | f=open("G:\\Python\\txt.txt","a") |
2.数据维度
一维数据
由对等关系的有序无序数据构成
二维数据
也称表格数据,采用二维表格方式组织,对应数学中的矩阵
高维数据
由键值对类型数据构成,采用对象方式组织,可以多层嵌套
高维数据在web中常见,是internet组织内容的主要方式,常见有HTML、XML、JSON等具体组织语法结构
HTML可在网页中查看
XML Android Studio里
一位数据
python 中主要以列表的形式存储
总体思路是采用特殊字符分隔元素,比如空格,逗号,换行符,以及其他特殊分隔符
1 | ls=['一','二','三'] |
csv文件 逗号分隔值
通用的、相对简单的文件格式,后缀名一般为 .csv
一位数据保存后,各元素间采用逗号分隔(英文逗号),在商业和科学上应用广泛
1 | f=open("12.csv","r") |
二维数据
csv文件也可存储二维数据
1 | ls=[["1","2"], |
3.Excel文件
1 | #引入Excel库的xlrd 1.20版本 |
面向对象
1.概念
- 面向过程 ——C语言,Fortran
- 面向对象 ——C++、Java、python
面向对象是相对面向过程而言
面向对象和面向过程都是一种思想
面向过程强调的是功能、行为
面向对象:将功能封装进对象,强调具备了功能的对象
面向对象是基于面向过程的
封装、继承、多态。而面向对象的过程就是找对象、建立对象、使用对象、维护对象的关系的过程。
2.类(class)
具有相同属性和方法的一组对象的描述或定义。
类:是对现实生活中事物的描述。
对象:就是这类事物,实实在在存在的个体。
1 | class Lei(): |
3.类的继承
构造方法
class 子类名(父类名): def __init__(self, 父类全部参数,子类参数): super(子类名, self).__init__(父类参数) self.参数=子类参数 def 函数(self): 内容
子类需要使用父类参数时必须在init里写入传入参数
使用super行的语句可以继承父类的全部方法
1 | class Father(object): |
情况一:子类需要自动调用父类的方法:子类不重写init()方法,实例化子类后,会自动调用父类的init()的方法。
情况二:子类不需要自动调用父类的方法:子类重写init()方法,实例化子类后,将不会自动调用父类的init()的方法。
情况三:子类重写init()方法又需要调用父类的方法:使用super关键词:
v1.5.2