第一节 python入门必备
一、python数字
- 数字是
python
核心数据类型之一,其他类型数据还有字符串,列表,字典,集合等。数字包括整数int
、浮点数float
、布尔bool
。
1.1 整形
- 整型用
int
表示,是不带小数部分的数字
99、 100 、 -100 等
1.2 浮点型
- 浮点型用
float
来表示,是带小数部分的数字
9.9、1.2 、-1.1、 5. 等
1.3 布尔型
- 布尔型用
bool
表示,用来表示真和假两个状态的类型
True
表示真(条件满足或成立),内部用1
来存储。
Flase
表示假(条件不满足或不成立),内部用0
来存储。
1.4 类型查看函数
type(ojb)
函数用法
# Number = 1
# Number2 = 3.1
# Number3 = True
Number, Number2, Number3 = 1, 3.1, True
a = type(Number)
b = type(Number2)
c = type(Number3)
print(a, b, c, end=" ")
- 运行结果图
1.5 类型转换函数
类型转换 | 转换函数 |
---|---|
转成整数 | int |
转成小数 | float |
转成布尔 | bool |
- 注:
bool()
函数转换成Flase
情况有0,0.0,None,空列表,空串,空集合等。
Number = 1 # 小换大
a = float(Number)
print(a)
b = bool(Number)
print(b)
Number = 3.8 # 大换小
Number2 = False
Number3 = True
a = int(Number)
print(a)
b = int(Number2)
print(b)
c = int(Number3)
print(c)
二、运算符
2.1 算数运算符
符号 | 描述 |
---|---|
+ | 加:两个对象相加。 |
- | 减:得到负数或是一个数减去另一个数。 |
* | 乘:两个数相乘或是返回一个被重复若干次的字符串。 |
/ | 除:取两个数相除的结果。 |
% | 取模:返回两数相除的余数。 |
** | 幂:返回x 的y 次幂。 |
// | 取整除:返回商的整数部分(向下取整)。 |
2.2 关系运算符
符号 | 描述 |
---|---|
== | 等于:比较对象是否相等。 |
!= | 不等于:比较两个对象是否不相等。 |
<> | 不等于:比较两个对象是否不相等。Python3 已废弃。 |
> | 大于:返回x 是否大于y 。 |
< | 小于:返回x 是否小于y 。所有比较运算符返回1 表示真,返回0 表示假。这分别与特殊的变量True 和False 等价。 |
>= | 大于等于:返回x 是否大于等于y 。 |
<= | 小于等于:返回x 是否小于等于y 。 |
2.3 逻辑运算符
符号 | 描述 |
---|---|
and | 布尔"与":优先返回假值对象,当bool(x) 的值为False 时,返回x ,否则返回y |
or | 布尔"或":优先返回真值对象, 当x 为True 时返回x , 否则返回y |
not | 布尔"非":对 x 进行布尔取值,如 bool(x) 为True ,则返回False , 否则返回True |
三、基本输入输出函数
3.1 基本输入函数input
- 格式
input("请输入:")
- 作用
从键盘上输入一个字符串,并得到输入的字符串。
3.2 基本输出函数print
- 格式
print(value, ……, sep="", end="\n")
- 作用
将一系列字符串的值输出在标准输出设备上,默认为终端。
四、变量
4.1 变量的定义
用来绑定数据对象的标识符
4.2 变量的命名规则
- 变量名必须为字母或下划线开头,后跟字母或下划线或数字
- 不能使用python的关键字命名,if、else、for、return、None、False等
4.3 赋值变量
- 作用
用于创建变量并将变量绑定(或关联)在一个对象上
- 语法
变量名 = 表达式
- 赋值语句执行过程
首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值存储进去,然后创建变量并指向
这个内存地址
第二节 python程序控制结构
一、分支结构
- 作用
让程序根据条件选择性的执行某条语句或某些语句。 - 语法
if 表达式1:
语句块
elif 表达式2:
语句块
elif 表达式3:
语句块
else:
语句块n
二、while循环
- 作用
根据一定条件,重复执行一条语句或多条语句 - 语法
while 真值表达式:
语句块
else:
语句块
使用python的while循环机构编写程序,计算1+2+3+4+5+……+100的累加和,程序如下。
s = 0
n = 1
while n <= 100:
s = s + n
n = n + 1
print('计算的累加和为:',s)
运行结果图如下
-
break语句
-
作用
用于循环语句(while,for语句)中,用来终止当前循环语句执行。 -
示例
# 打印1-10的数,当第五个数的时候,停止
i = 1
while i < 11:
if i > 5:
break
print(i)
i += 1
运行结果
- coutinu语句
- 作用
用于循环语句(while,for语句)中,不在执行本次循环内continu之后的语句,重新开始一次新的循环 - 示例
# 1-10的数,偶数打印
i = 0
while i < 11:
i += 1
if i % 2 == 1:
continue
print(i)
运行结果
三、for循环
- 作用
用来遍历可迭代对象(字符串、列表、元祖、字典、集合等)的数据元素 - 语法
for 变量 in 可迭代对象:
语句块1
else:
语句块2
第三节 Python核心数据类型
一、字符串
-
字符串的作用
用来记录文本(文字)信息,比如姓名,住址,一段话等。 -
字符串的表示方法
在非注释中,凡是用引号括起来的部分都是字符串,可以是单引号(’ ) 双引号(“) 三单引号(‘’') 三双引号
(”“”)。 -
创建字符串
(1)直接用引号括起来
例如'hello' "hello"
(2)通过str函数
例如str(5)
-
字符串的算术运算
+ += * *=
+
运算符用于字符串的拼接
*
运算符用于生成重复的字符串 -
字符串的比较运算
>= < <= == !=
例
'A' < 'B' # True
'B' < 'a' # True
'ABC' > 'AB' # True
'AD' < 'ABC' # False
'ABC' == 'abc' # False
- Python中常用的序列函数
len(seq)
返回序列的长度 - 字符串的索引
索引语法
字符串[整数表达式]
说明
python 序列都可以用索引(index)
来访问序列中的对象(元素) 。
字符串是不可变的序列。
示例
s = 'probe'
print(s[0]) # p
print(s[4]) # e
print(s[-1]) # e
- 字符串的切片
切片语法
字符串[(开始索引b):(结束索引e)(:(步长s))]
注:() 内括起的部分代表可以省略
(1)没有步长,相当于取值完成后向后移动一个索引的位置(默认为1)
(2)当步长为正整数时,取正向切片,步长默认值为1, 开始索引默认值为0, 结束索引的默认值为len(s)
(3)当步长为负整数时,取反向切片,反向切片时,默认的起始位置为最后一个元素,默认终止位置为第一
个元素的前一个位置
切片作用
从字符串序列中取出一部分相应的元素(包括开始索引,不包括结束索引)重新组成一个字符串
- 字符串的方法
方法 | 作用 |
---|---|
S.islower()/isupper() | 判断字符串是否全为小写/大写英文字母 |
S.count(sub[,start[,end]]) | 获取一个字符串中子串的个数 |
S.find(sub[,start[,end]]) | 获取字符串中子串sub的索引,失败返回-1 |
S.center(width[,fill]) | 将原字符串居中,左右默认填充空格 |
S.replace(old,new[,count]) | 将原字符串的old用new替换,替换count次,默认全部替换 |
S.startswith()/endswith() | 判断字符串是否以某个子串开头/结尾 |
S.strip() | 返回去掉左右空白字符的字符串 |
S.split(sep=None) | 将字符串,使用sep作用为隔符分割S字符串,返回分割后的字符串的列表,当不给定参数时,用空白字符作为分隔符进行分割 |
S.join(iterable) | 用可迭代对象(字符串、列表、字典等)中的字符串,通过S拼接成一个新的字符串 |
- 字符串的格式化表达
运算符
%
作用
用来将对象填充到字符串中,方便字符串的拼接和显示,简化Python代码
- 占位符和类型码
%s 字符串,使用str函数转换
%d 十进制整数
%f 浮点十进制形式
例 `‘姓名:%s, 年龄: %d, 拥有%.2f元钱’ % (‘张三’, 20.5, 9998.654)
二、列表
列表是Python中可变的序列,列表中可以存储任意类型的对象。
- 列表的创建
# 1.通过[]创建
a = [] # 创建空列表
b = [1, 'a', 3.5, True, [1, 2, 3]] #创建含有5个元素的列表一个列表
# 2.通过list()构造函数创建
list() # 空列表
list('abcd') # 通过字符串创建一个列表
- 列表索引和切片
列表索引和切片规则和字符串一致,不同之处在于列表是可变对象,可以进行索引和切片赋值
# 取某个值
a = [1, 2, 3, 4]
# 1.通过索引赋值,改变a中的第0个元素
a[0] = 10 print(a) # [10, 2, 3, 4]
# 2.通过切片赋值
a[1: 3] = [20, 30]
print(a) # [10, 20, 30, 4]
- 列表常用函数与方法
函数或方法 | 说明 |
---|---|
L.append(x) | 向列表中追加单个元素 |
L.extend(lst) | 向列表中追加另一个可迭代对象 |
L.remove(x) | 从列表中删除第一次出现在列表中的值 |
del L[下标] | 按索引删除列表中的值 |
三、元组
元组是不可改变的序列,同列表一样,元组可以存放任意类型的元素,一但元组生成,则它不可以改变
- 元组的创建
t = () # 创建空元组
t2 = (1,) # 创建一个元素的元组
t3 = (1) # 得到的是一个整数
t4 = 20, # 创建一个元素的元组
t5 = 10,20,30 # 创建3个元素的元组
四、字典
字典和列表不同的地方在于,列表是有序的,而字典是无序的,并且字典是通过键来存取元素,而不是
通过下标来存取,字典中的数据以键(key)-值(value)对进行存储,且键不能重复,键必须是不可变对象。
- 创建字典
# 创建空字典
d = {}
# 创建有2个键-值对的字典
d = {"a": 1, "b": 2}
- 字典取值
dic[键] - 修改添加元素
dic[键] = 值 - 字典的方法
方法 | 作用 |
---|---|
D.keys() | 返回可迭代的dict_keys集合对象 |
D.values() | 返回可迭代的dict_values值对象 |
D.items() | 返回可迭代的dict_items对象 |
第四节 文件操作
一、文件的概念
文件是数据存储的单位 ,文件通常用来长期存储数据 ,文件分为文本文件和二进制文件。
二、文件的操作流程
1.打开文件
2.读写文件
3.关闭文件
三 、文件打开函数open
语法格式
f = open(file, mode='r',encoding=None)
file:文件路径
mode:读取模式,默认为r
encoding:编码方式,windows下默认为gbk
模式 | 说明 |
---|---|
r | 读模式,默认模式 |
w | 写模式 |
a | 追加模式 |
b | 二进制模式 |
四、文件操作方法
方法 | 说明 |
---|---|
f.read(n) | 按字符(节)数读取,默认全部读取 |
f.readline() | 读取一行数据 |
f.readlines() | 返回每行字符串的列表 |
f.write() | 将字符串写入文件 |
f.close() | 关闭文件 |
五、文本文件的迭代读取
open()函数返回来的文件流对象是可迭代对象,可通过for循环进行遍历
f = open('abc.txt') # 每次取出一行,相当于line = f.readline()
for line in f:
print(line)
f.close()
六、with语句自动关闭文件
with语句使用于对资源进行访问的场合,确保使用过程中不管是否发生异常,都会执行必须的‘清理’操作,并释放资源,如文件使用后自动关闭, 线程中锁的自动获取和释放等
with open(file) as f:
content = f.read()
print(content)
第五节 函数
函数是对一段功能性代码的封装,Python提供了将常用的代码以固定的格式封装成一个独立的模块的功
能,只要知道这个模块的名字就可以重复使用它
一、 函数定义和调用
- 定义语法
def 函数名([形参列表]):
语句块
[return [表达式]]
- 说明
return语句用于函数中,结束当前函数的执行,返回到调用该函数的地方
return语句后跟的表达式可以省略,省略后相当于return None
return语句也可以省略,此时函数执行完最后一条语句后返回None(相当于在最后加了一条return None
语句) - 函数调用
函数名([实参列表])
- 示例
写一个函数,求两个数的和
二、函数参数
- 1.函数的传参方式(实参)
a.位置传参
实参与形参是按位置来依次对应的
例:
def myfun(a, b, c):
print("a=", a)
print("b=", b)
print("c=", c)
myfun(1, 2, 3) # 1、2、3依次按照位置传递给a、b、c
b.序列传参
序列传参是指在函数调用过程中,用 * 将序列拆解后按位置传参的方式进行参数传递
例:
def myfun(a, b, c):
pass
s = [1, 2, 3]
myfun(*s) # *表示把s拆开
s2 = "ABC"
myfun(*s2)
c.关键字传参
传参时,根据形参的名称给形参赋值,实参和形参按名称进行匹配
例:
def myfun(a, b, c):
print("a=", a)
print("b=", b)
print("c=", c)
myfun(a=1, b=2, c=3) # 1、2、3依次按照位置传递给a、b、c
d.字典关键字传参
是指实参为字典,将字典用 ** 拆解后进行关键字传参
def myfun(a, b, c):
pass
d = {'c': 33, 'b': 22, 'a': 11}
myfun(**d) # 拆解字典后再传参
- 2. 形参
a.必须参数
必须参数,即函数调用时必须要传的参数
b.默认参数
可以为形参设置默认值,当调用带有默认值参数的函数时,如果没有为该参数传参,此时函数将会直接
使用函数定义时设置的默认值,如果你有为该参数传参,则以你传入的参数为准。
c.星号元组形参
语法:
def 函数名(*元组形参名):
语句
作用:接收任意多个的位置传参
说明:元组形参名通常用: ‘args’
d.命名关键字参数
语法:
def 函数名(*, 命名关键字形参):
语句
或
def 函数名(*args, 命名关键字形参):
语句
作用:*后面的所有的参数都必须用关键字传参或字典关键字传参传递
e.双星号字典形参
语法:
def 函数名(**字典形参名):
语句
作用:接收任意多个关键字传参
说明: 通常字典形参名定为: “kwargs”
三、匿名函数
- 作用
1)创建一个匿名函数对象;2)同def 类似,但不提供函数名 - 语法
lambda [参数1, 参数2, …]: 表达式 [] 里的内容可以省