什么是Python
Python是一种面向对象的解释型计算机程序设计语言。
1.特点:
(1)简单
(2)易学
(3)免费,开源
(4)高层语言
(5)可移植性
(6)解释性
(7)面向对象
(8)可扩展性
(9)可嵌入性
(10)丰富的库
2.命名规则
驼峰命名法:(1)小驼峰法:除了第一个单词外其他单词首字母大写,
(2)大驼峰法:所有字母大写
标识规则
(1)·由字母、数值和下划线组成且不能以数字开头
(2)·区分大小写
(3)·不能使用关键字,不可用作为变量、函数、类模块。 help('keywords’)
标识符内存单元的标识符又称为变量名。变量=值。如:key=1
PYTHON流程控制
1.条件语句
(1) if语句
if语句由关键字if、判断条件和冒号组成,if语句和从属于该语句的代码段可组成选择结构。
格式:
if 条件表达式:
代码块
(2)if-else语句
一些场景不仅需要处理满足条件的情况,也需要对不满足条件的情况做特殊处理。因此,Python提供了可以同时处理满足和不满足条件的if-else语句。
格式:
if 判断条件:
代码块1
else:
代码段2
(3)if-elif-else语句
Python除了提供单分支和双分支条件语句外,还提供多分支条件语句if-elif-else。多分支条件语句用于处理单分支和双分支无法处理的情况
格式:
if 判断条件1:
代码段1
elif 判断条件2:
代码段2
elif 判断条件3:
代码段3
...
else:
代码段n
(4)if嵌套
Python中通过if嵌套可以实现程序中条件语句的嵌套逻辑。
格式:
if 判断条件1: # 外层条件
代码段1
if 判断条件2: # 内层条件
代码段2
...
(5)while语句
while语句一般用于实现条件循环,该语句由关键字while、循环条件和冒号组成,while语句和从属于该语句的代码段组成循环结构。
格式:
while 条件表达式:
代码块
(6)for语句
for语句一般用于实现遍历循环。遍历指逐一访问目标对象中的数据,例如逐个访问字符串中的字符;遍历循环指在循环中完成对目标对象的遍历。
格式:
for 临时变量 in 目标对象:
代码块
(7)循环嵌套
while循环嵌套是指while语句中嵌套了while或for语句。以while语句中嵌套while语句为例。
格式;
while 循环条件1: # 外层循环
代码段1
while 循环条件2: # 内层循环
代码段2
......
for循环嵌套是指for语句中嵌套了while或for语句。以for语句中嵌套for语句为例。
格式:
for 临时变量 in 目标对象: # 外层循环
代码段1
for 临时变量 in 目标对象: # 内层循环
代码段2
......
2.break语句
break语句用于结束循环,若循环中使用了break语句,程序执行到break语句时会结束循环;若循环嵌套使用了break语句,程序执行到break语句时会结束本层循环。
例如:
for word in "Python":
if (word == 'o'):
break
print(word, end=" ")
结果:P y t h
3.continue语句
continue语句用于在满足条件的情况下跳出本次循环,该语句通常也与if语句配合使用。
for word in "Python":
if (word == 'o'):
continue
print(word, end=" ")
结果:P y t h n
PYTHON数据类型
1数字型
整数(布尔)(int) 浮点型(float) 复数型(complex) |
2字符串 str
字符串表示文本。为了表示一个字符串的值,需要用单引号('’)或双引号(“”“”)括起来
例如:username=’张三’,password=“1234”
3列表型 list
最常用的数据类型。将若干个数值存放于一个括号内,以逗号隔开。
例如:list=[‘python’,’2021,1213]
访问列表元素:print(‘list[0]”,list[0])
更新列表元素:list.append(‘ok’) ##append()方法添加元素
删除列表元素:del list[0]
4元组型 tuple
与列表相似,但是元组元素不能修改;元组使用小括号。
例如:tup=(‘python’,1011)
元组中只包含一个元素时,需要在哪在元素后面添加逗号。Tup=[10,]
访问元组元素:print(‘tup[0]”,tup[0])
修改元组元素:tup3=tup1+tup2
删除元组元素:del tup
5字典型 dict
字典的每一个键值对(key=>value)用冒号(:)分割,每一个键值对之间用逗号(,)分割,整个字典包括在花括号({})中。
格式:d={key1:value1,key2:value2}
访问字典元素:print(‘dict[‘key1’]”,dict[‘key1’])
修改字典元素:dict[‘key’]=2#更新已有元素
dict[‘key3’]=‘value3’
删除字典元素:Python支持通过pop()、popitem()和clear()方法删除字典中的元素。
6集合型 set
集合是一个元素无需不重复的序列。可以使用大括号({})或set()函数创建集合。
Python集合具备确定性、互异性和无序性三个特性。Python要求放入集合中的元素必须是不可变类型,Python中的整型、浮点型、字符串类型和元组属于不可变类型,列表、字典及集合本身都属于可变的数据类型。
注意:创建一个空集必须用set()而不是{},{}是用来创建一个空字典。
格式:parame={value01,value02…}
添加集合元素:s.add(x)
移除集合元素:s.remove(x)
计算集合个数:len(s)
清空集合:s.clear()
判断元素是否在集合中:x in s
PYTHON控制语句
- 条件语句
-
通过一条或多条语句执行结果(True或false)来绝定执行的代码块。
基础形式:if 判断条件:
执行语句…
else:
执行语句…
判断多个值时:if 条件1…
执行语句1…
elif 条件2…
执行语句2…
…
else:
执行语句n…
- 循环语句
- while循环
-
基础形式: while 判断条件:
执行语句…
执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非0或非空(null)的值均为true。当判断条件为false时,循环结束。
- for循环
-
for循环可以遍历任何序列的项目,如一个列表或一个字符串。
语法格式:for iterating_var in sequence:
Statements(s)
- break语句
-
break语句用来终止循环语句。如果使用嵌套循环,break语句将停止执行最深层的循环,并执行下一行代码。
例如: for letter in ‘python’:
If letter ==’h’:
Break
Print(‘当前字母:’,letter)
- continue语句
-
continue跳出本次循环。
例如:for letter in ‘python’:
If letter ==’h’:
Continue
Print(‘当前字母:’,letter)
- pass 语句
-
在python中,pass是空语句,其目的是褒词程序结构的完整性。一般用作站位语句。
例如:for letter in ‘python’:
If letter ==’h’:
pass
Print(‘当前字母:’,letter)
PYTHON运算符
PYTHON函数
1.调用函数
Help(abs)
注意:调用python中内置函数是需要特别注意的是,python中对函数名称的字母大小写是敏感的,其分别代表不同的函数。
常用函数及其描述:
Int(x[,base]) | Int(‘10’) | 可以转换字符串和其他数字类型,但是会丢失精度 |
Float(x) | Float(8) | 可以转换字符串和其他数字类型,不足的位数用0补齐 |
Str(x) | Str(25.6) | 将数字转化为字符串 |
2.定义函数
在python中定义一个函数要用def语句,依次写出函数名、括号、括号中的参数和冒号,然后在缩进块中编写函数体,函数的返回值用return语句返回。
def 函数名(参数1,参数2,...,参数n):
函数体(语句块)
return[表达式]
注意:(1)函数名一般由小写字母、下划线和数字构成;
(2)def是定义函数的关键字;
(3)函数后面括号是英文状态圆括号,可以有参数列表,也可以没有参数列表;
(4)参数列表括号后面的冒号不能忘记;
(5)函数体(语句块)的位置相对def关键字缩进四个空格。
函数的参数
1.位置参数
位置参数必须以正确的顺序传入参数,同时调用函数时参数的数量必须和声明时的一样。
例: def print_str(str):
#打印任何传入的字符串#
print(str)
return #调用print_str函数#
print_str()
2.默认参数
调用函数时,若没有传递参数,则会使用默认参数。
格式:参数名=默认值
(1)为了避免出现二义性,默认参数必须在最右端,也就是说位置参数在前,默认参数在后,否则会报错。有多个默认参数时,按照从左到右的顺序进行调用。
(2)Python解释器会将默认参数作为一个公共对象来对待,多次调用含有默认参数的函数,就会进行多次修改,因此定义参数时要使用不可变对象。
(3)定义参数有多个参数时,往往把变化大的参数放前面,变化小的放后面,此时变化小的参数就可以作为默认参数。
3.可变参数
可变参数是指在定义的函数中传入的参数的个数是可变的,运用可变参数可8以方便的进行参数个数未知时的函数调用。
可变参数将以list或tuple形式传递。
格式:*参数(需要在参数前加*号)
4.关键字参数
关键字参数以dict的形式传递,也就是说可变参数传递的是参数值,关键字参数传递的是参数名,也称参数值-键值对
格式:**kw
5.命名关键字参数
使用关键字参数,函数的调用者可以传入任意不受限制的关键字参数。命名关键字参数对关键字参数做了进一步限制。命名关键字参数只能传递*后面名字的参数。
格:在关键字参数前增加一个“*”
参数的打包与解包
1.打包
如果函数在定义时无法确定需要接收多少个数据,那么可以在定义函数时为形参添加“*”或“**”:
递归函数
递归指在函数的定义中使用函数自身的方法。在函数内部可以调用其他函数。
特性:
(1)必须有一个明确的结束条件
(2)每次进入更深一层递归时,问题规模相比上次递归都应有所减少
(3)相邻两次重复之间有紧密的联系,前一次要为后一次做准备(通常前一次的输出就做为后一次的输出)
例如:
def sum_n_xunhuan(n):
sum=0
for i in range(1,n+1):
sum+=1
return sum
print("循环求和",sum_n_xunhua()
PYTHON字符串
1.字符串介绍
字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列。
Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串。
Python使用反斜杠“\”转义。例如,在字符串中的引号前添加“\”,此时Python解释器会将“\”之后的引号视为解释为一个普通字符,而非特殊符号。
例如:print('let\'s learn Python')
结果:let's learn Python
一些普通字符与反斜杠组合后将失去原有意义,产生新的含义。类似这样的由“\”和而成的、具有特殊意义的字符就是转义字符。转移字符通常用于表示一些无法显示的字符,例如空格、回车等等。
2.字符串的查找与替换
(1)Python中提供了实现字符串查找操作的find()方法,该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1。
格式:str.find(sub[, start[, end]])
例如:
word = 't'
string = 'Python'
result = string.find(word)
print(result)
结果:2
(2)Python中提供了实现字符串替换操作的replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。
格式:str.replace(old, new[, count])
例如:
string = 'He said, "you have to go forward, ' \
'Then turn left, Then go forward, and Then turn right."'
# 指定替换两次
new_string = string.replace("Then", "then",2)
print(new_string)
结果:
He said, "you have to go forward, then turn left,
then go forward, and Then turn right."
3.字符串的分隔与拼接
(1)split()方法可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表。
格式:str.split(sep=None, maxsplit=-1)
例如:
string= "Hello, my name is Wang Hong"
# 以空格作为分割符,并分割2次
print(string.split(' ', 2))
结果:['Hello,', 'my', 'name is Wang Hong']
(2)join()方法使用指定的字符连接字符串并生成一个新的字符串。join()方法的语法格式如下。
格式:str.join(iterable)
例如:
symbol = '*'
world = 'Python'
print(symbol.join(world))
结果:P*y*t*h*o*n
(3)Python还可以使用运算符“+”拼接字符串。
"Py" + "thon" == "Python"
4.删除字符串的指定字符
字符串中可能会包含一些无用的字符(如空格),在处理字符串之前往往需要先删除这些无用的字符。Python中的strip()、lstrip()和rstrip()方法可以删除字符串中的指定字符。
在特定情况下会对英文单词的大小写形式进行要求,表示特殊简称时全字母大写,如CBA;表示月份、周日、节假日时每个单词首字母大写,如Monday。Python中支持字母大小写转换的方法有upper()、lower()、capitalize()和title()。
5.字符串对齐
在使用Word处理文档时可能需要对文档的格式进行调整,如标题居中显示、左对齐、右对齐等。Python提供了center()、ljust()、rjust()这3个方法来设置字符串的对齐方式。
6.使用%格式化字符串
格式化字符串是指将指定的字符串转换为想要的格式。Python字符串可通过%格式符格式化输出。
格式:format % values
不同的占位符为不同类型的变量预留位置,常见的占位符如下所示。,
7. 使用format()方法格式化字符串
虽然使用%可以对字符串进行格式化,但是这种方式并不是很直观,一旦开发人员遗漏了替换数据或选择了不匹配的格式符,就会导致字符串格式化失败。为了能更直观、便捷地格式化字符串,Python为字符串提供了一个格式化方法format()。
格式:str.format(values
8.使用f-string格式化字符串
f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以f或F引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。
格式:f('{变量名}') 或F('{变量名}')
文件与数据的格式化
1.文件标识
•操作系统以文件为单位对数据进行管理。
2.文件类型
根据数据的逻辑存储结构,人们将计算机中的文件分为文本文件和二进制文件。
文本文件:专门存储文本字符数据。
二进制文件:不能直接使用文字处理程序正常读写,必须先了解其结构和序列化规则,再设计正确的反序列化规则,才能正确获取文件信息。
•二进制文件和文本文件这两种类型的划分基于数据逻辑存储结构而非物理存储结构,计算机中的数据在物理层面都以二进制形式存储。
3.文件的基本操作
(1)文件打开
内置函数open()用于打开文件,该方法的声明如下:
open(file, mode='r', buffering=-1)
【参数】
•file:文件的路径。
•mode:设置文件的打开模式,取值有r、w、a。
•buffering:设置访问文件的缓冲方式。取值为0或1。
•r:以只读方式打开文件(mode参数的默认值)。
•w:以只写方式打开文件•
a:以追加方式打开文件。
•b:以二进制形式打开文件。
•+:以更新的方式打开文件(可读可写)
打开模式 | 名称 | 描述 | |
r/rb | 只读模式 | 以只读的形式打开文本文件/二进制文件,若文件不存在或无法找到, 文件打开失败 | |
w/wb | 只写模式 | 以只写的形式打开文本文件/二进制文件,若文件已存在,则重写文件, 否则创建新文件 | |
a/ab | 追加模式 | 以只写的形式打开文本文件/二进制文件,只允许在该文件末尾追加数据, 若文件不存在,则创建新文件 | |
r+/rb+ | 读取(更新)模式 | 以读/写的形式打开文本文件/二进制文件,若文件不存在,文件打开失败 | |
w+/wb+ | 写入(更新)模式 | 以读/写的形式打开文本文件/二进制文件,若文件已存在, 则重写文件 | |
a+/ab+ | 追加(更新)模式 | 以读/写的形式打开文本/二进制文件,只允许在文件末尾添加数据, 若文件不存在,则创建新文件 |
(2)关闭文件
Python可通过close()方法关闭文件,也可以使用with语句实现文件的自动关闭。
((1))close()方法
•close()方法是文件对象的内置方法。
语法格式:file.close()
((2))with语句
语法格式:with open('a.txt') as f:
pass
(3)文件的读写
((1))读取文件——read()方法
read()方法可以从指定文件中读取指定字节的数据,其语法格式如下:
read(n=-1)
例如:
with open('file.txt', mode='r') as f:
print(f.read(2)) # 读取两个字节的数据
print(f.read()) # 读取剩余的全部数据
((2))读取文件——readline()方法
. readline()方法可以从指定文件中读取一行数据,其语法格式如下:
readline()
例如:
with open('file.txt', mode='r', encoding='utf-8') as f:
print(f.readline())
print(f.readline())
. readlines()方法可以一次读取文件中的所有数据,若读取成功,该方法会返回一个列表,文件中的每一行对应列表中的一个元素。语法格式如下:
readlines(hint=-1)
例如:
with open('file.txt', mode='r', encoding='utf-8') as f:
print(f.readlines()) # 使用readlines()方法读取数据
((3))写文件——writelines()方法
writelines()方法用于将行列表写入文件,其语法格式如下:
writelines(lines)
string = "Here we are all, by day;\nby night we're hurl'd By dreams,
each one into a several world."
with open('write_file.txt', mode='w', encoding='utf-8') as f:
f.writelines(string)
(4)文件的定位读写
((1)) tell()方法
tell()方法用于获取文件当前的读写位置,以操作文件file.txt为例,tell()的用法如下:
例如:
with open('file.txt') as f:
print(f.tell()) # 获取文件读写位置
print(f.read(5)) # 利用read()方法移动文件读写位置
print(f.tell()) # 再次获取文件读写位置
((2)).seek()方法
Python提供了seek()方法,使用该方法可控制文件的读写位置,实现文件的随机读写。seek()方法的语法格式如下:
seek(offset, from)
0:表示文件开头。
1:表示使用当前读写位置。
2:表示文件末尾•获取目录列表——os.listdir(目录/路径)
(6)基于维度的数据分类
根据组织数据时与数据有联系的参数的数量,数据可分为一维数据、二维数据和多维数据。
. 一维数据
具有对等关系的一组线性数据,如:
二维数据
二维数据关联参数的数量为2,如:
.二维元组
三维数据
利用键值对等简单的二院关系展示数据间的复杂结构,如:
一二维数据的存储与读写
1.数据存储
一维数据呈线性排列,一般用特殊字符分隔,例如:
一维数据的存储需要注意以下几点:
•同一文件或同组文件一般使用同一分隔符分隔。
•分隔数据的分隔符不应出现在数据中。
•分隔符为英文半角符号,一般不使用中文符号作为分隔符。
•二维数据可视为多条一维数据的集合,当二维数据只有一个元素时,这个二维数据就是一维数据。
•CSV(Commae-Separeted Values,逗号分隔值)是国际上通用的一二维数据存储格式。
CSV格式规范:
•以纯文本形式存储表格数据
•文件的每一行对应表格中的一条数据记录
•每条记录由一个或多个字段组成
•字段之间使用逗号(英文、半角)分隔
2.数据读取
•Windows平台中CSV文件的后缀名为.csv,可通过Office Excel或记事本打开
•Python在程序中读取.csv文件后会以二维列表形式存储其中内容
例如:
csv_file = open('score.csv')
lines = []
for line in csv_file:
line = line.replace('\n','')
lines.append(line.split(','))
print(lines)
csv_file.close()