Python组成的基本几个概念:
1.1表达式
表达式,是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合
表达式就是一个类似于数学公式的组成
1.2语句
一个语句上自成体系的单位,它由一个词或句法上有关连的一组词构成
1.3程序
程序就是由一条一条的语句和一条一条的表达式是构成的
1.4函数
函数就是一个语句专门用来完成特定的功能
函数的分类有:自定义函数 内置函数
Python标识符
1.Python语言由什么组成的?
1.关键字 2.标识符 3.注释 4.变量和数值 5.运算符 6.语句 7.函数 8.序列
2.1Python保留字
[‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘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’, ‘with’, ‘yield’]
2.2标识符
给变量或其他程序元素关联名称或标识符的过程称为命名。
Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但名字的字符不能是数字,标识符中间不能出现空格,长度没有限制。合法命名标识符:Python_is_good 、_is_it_question、人生苦短
注意:标识符对大小写敏感,python和Python是两个不同的名字。
2.2.1Python中不能使用关键字和保留字作为标识符
2.2.2命名方式
驼峰命名法
小驼峰 myName aDog 第一个单词以小写字母开始,第二个单词首字母大写
大驼峰 FirstName LastName 每一个单词的首字母都采用大写
下划线命名法 用下划线来链接两个有含义的单词
2.3基本数据类型
2.3.1数据类型概述
Python语言支持多种数据类型,最简单的包括数字类型、字符串类型、略微复杂的包括元组类型、集合类型、列表类型、字典类型等。
2.3.2数字类型
表示数字或数值的数据类型称为数字类型,Python提供3种数字类型:整数、浮点数和复数,分别对应数字、实数和复数。
十进制:1010
十六进制:0x3F2
八进制:0o1762
二进制:0b001111110010
>>>1010==0x3F2
True
>>>0o1762+0b001111110010 == 0x3F2 * 2
True
浮点数类型与数学中的小数相一致,基本没有取值范围,可正可负。一个浮点数可以表示为带有小数点的一般形式,也可以采用科学计数法表示。浮点数只有十进制形式。浮点数只有十进制形式。例如:浮点数123.456.两种表示方式如下:
一般形式:123.456
科学计数法1.23456e2
复数类型与数学中的复数相一致。采用a+bj的形式表示,存在实部和虚部。
2.3…字符串类型
计算机程序经常用于处理文本信息,文本信息在程序中使用字符串类型来表示。字符串是字符的序列,在Python语言中采用一对双引号" "或者一对单引号’ '括起来的一个或多个字符来表示。其中双引号和单引号作用相同。
作为字符序列,字符串可以对其中单个字符或字符片段进行索引。字符串包括两种序号体系:正向递增序号和反向递减序号
如果字符串长度为L,正向递增需要以最左侧字符串为0,向右依次递增,最右侧字符序号为L-1;反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为-L。
可以采用[N:M]格式获取字符串的子串,这个操作被形象地称为切片。[N:M]获取字符串中从N到M(但不包括M)间连续的子字符串,其中,N和M为字符串的索引序号,可以混合使用正向递增序号和反向递减序号。
可以通过Python默认提供的len()函数获取字符串的长度,一个中文字符和一个西文字符的长度都记为1。
>>>len('对酒当歌,人生几何?')
10
>>>len('Hello World')
11
2.4程序的语句元素
2.4.1表达式
产生或计算新数据值的代码片段称为表达式。表达式类似数学中的计算机公式,以表达单一功能为目的,运算后产生运算结果,运算结果的类型由操作符或运算符决定。
>>>1024*32
32765
>>>'对酒当歌,人生几何?''+‘问君能有几多愁’
‘对酒当歌,人生几何?问君能有几多愁’
表达式一般由数据和操作符等构成,是构成Python语句的重要部分。
2.4.2赋值语句
对变量进行赋值的一行代码被称为赋值语句。在Python语言中,‘=’表示‘赋值’,在即将等号右侧的表达式计算后的结果值赋给左侧变量。<变量>=<表达式>
>>>a=1024 * 32 #这行是赋值语句
>>>print(a)
32765
在Python程序中,赋值语句使用等号(=)表达,而值相等的判断使用双等号(==)表达。双等号判断后的结果是True(真)或False(假),分别对应值相等或值不相等。
还有一种同步赋值语句,同时给多个变量赋值,基本格式如下:
同步赋值会同时运算等号右侧的所有表达式,并一次性且同时将右侧表达式结果分别赋值给左侧的对应bian’l。同步赋值的一个应用是同时多个变量赋值
>>> n = 3的
>>> X,Y = N + 1,N + 2
>>> X
4
>>>ÿ
5 ```
同步赋值的另一个应用是互换变量的值。例如:互换两个变量x和y的值,代码如下。
的x,y = Y,X `
2.5基本输入输出函数
Python程序设计中有3个重要的基本输入、输出函数、用于输入、转换和输出,分别是input()、eval()、和print()。
input()函数从控制台获得用户的一行输入,无论用户输入什么内容,input()函数都以字符串类型返回结果。input()函数可以包括一些提示性文字
eval(s)函数将去掉字符串s最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容,使用方式如下:
<变量>=eval(<字符串>)
print()函数用于输出运算结果
**
3.1数字类型
**
3.1.1整数类型
进制种类 | 引导符号与描述 |
---|---|
十进制 | 无,默认情况,例:1010,-1010 |
二进制 | 0b或0B,由字符0和1组成,例:0b2020,0B1010 |
八进制 | 0o或0O,由字符0到7组成,例:0o1010,0O1010 |
十六制 | 0x或0X,由字符0到9、a到f或A到F组成,例:0x1010,0X1010 |
>>>(0x3F2 + 1010)/ 0o1762
2.0
>>> 0b1010 + 0x1010 + 0o1010 + 1010
5652
>>> 0x1010 + 0o1010
>>> 0x1010 == 4112
3.1.2浮点数类型
浮点数类型与数学中实数的概念一致,表示带有小数的数值。
Python语言中的浮点数类型必须带有小数部分,小数部分可以是0.例如:1010是整数,1010.0是浮点数。
浮点数有2种表示方法:十进制形式的一般表示和科学计数法表示。除十进制外,浮点数没有其他进制表示形式。下面是浮点数类型的例子:1010.0,-1010.0,1.01e3,-1.01E-3
>>>0.1+0.2 0.3000000000000004
#Python语言的浮点数运算存在一个’不确定尾数’问题,即两个浮点数运算,有一定概率在运算结果后增加一些’不确定的’尾数。不确定尾数问题将会对浮点数运算结果的判断造成一定的困扰,例如:
3.1.3复数类型
复数类型表示数学中的复数。复数有一个基本单位元素j,它被定义为j=-1的开平方,叫作’虚数单位’。含有虚数单位的数被称为复数。例如:
11.3+4j -5.6+7j 1.23e 1.23e-4+5.67e+89j
Python语言中,复数可以看作是二元有序实数对(a,b),表示a+bj,其中,a是实数部分、简称实部,b是虚数部分,简称虚部。虚数部分通过后缀’J‘或者’j‘来表示。需要注意,当b为1时,1不能省略,即1j表示复数,而j则表示Python程序中的一个变量。
复数类型中实部和虚部都是浮点数类型,对于复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分。
>>>(1.23e4+5.67e4j).real
12300.0
>>>(1.23e4+5.67e4j).imag
56700.0
>>>1.23e4+5.67e4j.imag #先获得5.67e4j的虚部,再与1.23e4进行求和计算
69000.0
3.2数字类型的运算
3.2.1数值运算操作符
操作符及运算 | 描述 |
---|---|
x+y | x与y之和 |
x-y | x与y之差 |
x * y | x与y之积 |
x / y | x与y之商,产生的结果为浮点数 |
x // y | x与y之整数商,即:不大于x与y之商的最大整数 |
x % y | x与y之商的余数,也称为模运算 |
-x | x的负值 |
+x | x的本身 |
x **y | x的y次幂 |
>>>1.23e4 + 5.67e4
69000.0
>>>1.23e4 - 5.67e4
-44400.0
>>>1.23e4 * 5.67e4
0.21693221693121692
>>>1010/3
336.666666667
>>>1010//3
336
>>>1010 % 3
2
>>>+1010
1010
>>>-1010
-1010
>>>1010 ** 3
1030301000
数值运算和浮点数混合运算,输出结果是浮点数;
整数之间运算,产生的结果类型与操作符相关,除法运算(/)的结果是浮点数;
整数或浮点数与复数的运算,输出结果是复数;
>>>1010/10 #/运算的结果是浮点数
101.0
>>>1010.0 // 3 #浮点数与整数运算。产生结果是浮点数
336.0
>>>1010.0 % 3 #浮点数与整数运算,产生结果是浮点数
2.0
>>>10-(1+1j) #等价与(10-1)-1j
(9-1j)
所有二元运算操作符(+、-、、/、//、%、**)都可以与赋值符号(=)相连,形成增强赋值操作符(+=、-=、=、/=、//=、%=、**=)。用op表示这些二元运算符操作符,增强赋值操作符的用法如下:
x op = y 等价于 x = x op y
增强赋值操作符能够简化对同一变量赋值语句的表达。
提示:增强赋值操作符中 op 和 = 之间不能增加空格。
>>>x = 99
>>>x **=3 #与x= x**3等价
>>>print(x)
970299
>>>x +=1 #与x = =+1等价
>>>print(x)
970300
>>>x %= 88 #与 x = x %88 等价
>>>print(x)
12
3.2.2数值运算函数
函数 | 描述 |
---|---|
abs(x) | x的绝对值 |
divmod(x,y) | (x//y,x%y),输出为二元组的形式(也称为元组类型) |
pow(x,y)或 pow(x,y,z) | x ** y 或(x**y)%z,幂运算 |
round(x)或round(x,d) | 对x的四舍五入,保留d位小数,无参数d则返回四舍五入的整数值 |
max(x) | 比较(x)当中数组中最大的值,数的个数没有限制,可以任意数量 |
min(x) | 比较(x)当中数组中最小的值,数的个数没有限制,可以任意数量 |
divmod(x,y)函数用来计算x和y的除余结果,返回两个值,分别是:x与y的整数除,即x//y,以及x与y的余数,即x%y。返回的两个值组成一个元组类型,即小括号包含两个元素。可以通过赋值方式将结果同时反馈给两个变量
>>>divmod(100,9)
(11,1)
>>>a,b = divmod(100,9)
>>>a
11
>>>b
1
pow(x,y)函数用来计算x的y次幂,与 x ** y相同。
>>>pow(10,2)
100
>>>pow(0x1010,0b1010)
1382073245479425468920150911010996224
round(x)对整数或浮点数x进行四舍五入运算。round(x,d)对浮点数x进行带有d位小数的四舍五入运算。需要注意,"四舍五入"只是一个约定说法,并非所有的5都会被进位。对与x.5,当x为偶数时,x.5并不进位,如round(0.5)值为0,当x为奇数时,x.5进位,如round(1.5)值为2。这是由于x.5严格处于两个整数之间,从“平等价值”角度考虑,所有x.5情况分为两类,采用“奇进偶数不进”的方式运算。但对于x.5001这种非对称情况,则按照进位法则处理
>>>round(1.4)
1
>>>round(0.5)
0
>>>round(1.5)
2
>>>round(0.50001)
1
>>>round(3.1415926,3)
3.142
min()和max()可以对任意多个数字进行最小值或最大值比较,并输出结果。实例如下
>>>min(1,2,3,4,6,5,0.1)
0.1
>>>max(1,2,3,4,5,6,0.1)
6
3.3字符串类型及格式化
字符串是字符的序列表示,根据字符串的内容多少分为单行字符串和多行字符串。
单行字符串可以由一对单引号(’)或双引号(’’)作为边界来表示,单引号和双引号作用相同。当使用单引号时,双引号可以作为字符串的一部分;使用双引号时,单引号可以作为字符串的一部分。
多行字符串可以由一对三单引号(’ ’ ')或三双引号(" " ")作为边界来表示,两者作用相同。
反斜杆字符(\)是一个特殊字符,在Python字符串中表示”转义“,即该字符与后面相邻的一个字符共同组成了新的含义。例如:\n表示换行、\表示反斜杠、‘表示单引号、’'表示双引号、\t表示制表符(Tab)等
如果在字符串中即需要出现单引号又需要出现双引号,则需要使用转义符。
>>>print("这里\n有一个换行")
这里
有一个换行
>>>print("这是\\有一个反斜杠")
这里\有一个反斜杠
>>>print("即需要'单引号'又需要\"双引号"")
即需要'单引号'又需要"双引号"
>>>print("这里\t有一个制表符")
>这里有一个制表符
3.3.3 format()方法的基本使用
在字符串中整合变量时需要使用字符串的格式化方法。字符串格式化用于解决字符串和变量同时输出时的格式安排问题。
Python语言推荐使用.format()格式化方法,其使用方式如下:
<模板字符串>.format(<逗号分隔的参数>)
其中,模板字符串是一个由字符串和槽组成的字符串,用来控制字符串和变量的显示效果。槽用大括号({ })表示,对应fornat()方法中逗号分隔的参数。例如:
如果模板字符串有多个槽,且槽内没有指定序号,则按照槽出现的顺序分别对应.format()方法中的不同参数。例如:
可以通过format()参数的序号在模板规定出现先后顺序来采取默认值,参数从0开始编号,例如
如果字符串中出现槽的数量和.format()方法中出现的变量数量不一致,即程序不能够通过简单的顺序对应确定变量使用,则必须在槽中使用序号指定参数使用,否则会产生IndexError的错误,例如:
如果希望在模板字符串中直接输出大括号,使用{}
表示{,}}表示}。实例如下:
3.3.4 format()方法的格式控制
format()方法的槽除了包括参数序号,还可以包括格式控制信息,表格如下:
函数 | 描述 |
---|---|
: | 引号符号 |
<填充> | 用于填充的单个字符 |
<对齐> | <左对齐 >右对齐 ^居中对齐 |
<宽度> | 槽的设定输出宽度 |
< , > | 数字的千位分隔符,适用于整数和浮点数 |
< .精度 > | 浮点数小数部分的精度或字符串的最大输出长度 |
<类型> | 整数类型b,c,d,o,x,X浮点数类型e,E,f,% |
格式控制标记可以用变量来表示,即用槽来指定所对应的控制标记及数量,示例如下:
第二组是<,><.精度>和<类型>,主要用于对数值本身的规范。其中,逗号(,)用于显示数字类型的千位分隔符。示例如下:
<.精度>由小数点(.)开头。对于浮点数,精度表示小数部分输出的有效位数。对于字符串,精度表示输出的最大长度。此时,小数点可以理解为对数值的有效截断;如果小数点保留长度超过应输出长度,以对应输出长度为准。示例如下:
<类型>表示输出整数和浮点数类型的格式规则。
对于整数类型,输出格式包括如下6种:
b:输出整数的二进制方式;
c:输出整数对应的Unicode字符;
d:输出整数的十进制方式;
o:输出整数的八进制方式;
x:输出整数的小写十六进制方式;
X:输出整数的大写十六进制方式;
示例如下:
**
3.4字符串类型的操作
**
3.4.1字符串操作符
操作符 | 描述 |
---|---|
x+y | 连接两个字符串x+y |
x * n 或n * x | 复制n次字符串 |
x in s | 如果x是s的子串,返回True,否则返回False |
示例如下:
>>>‘Python语言’+‘程序设计’
'Python语言程序设计'
>>>name = "Python语言"+”程序设计“
>>>name
'Python语言程序设计'
>>>"等级考试!" * 3
‘考试等级! 考试等级! 考试等级!’
>>>"Python" in name
True
>>>'语言' in name
True
>>>'Y' in name
False
3.4.2字符串处理函数
函数 | 描述 |
---|---|
len(x) | 返回字符串x的长度,也可返回其他组合数据类型的元素个数 |
str(x) | 返回任意类型x所对应的字符串形式 |
chr(x) | 返回Unicode编码x对应的单字符 |
ord(x) | 返回单字符x表示的Unicode编码 |
hex(x) | 返回整数x对应十六进制的小写形式字符串 |
oct(x) | 返回整数x对应八进制的小写形式字符串 |
len(x)返回字符串x的长度,以Unicode字符为计数基础,因此,中英文字符及标点字符等都是1个长度单位
>>>len("全国计算机等级考试Python语言科目")
19
str(x)返回x的字符串形式,其中,x是数字类型或其他类型。
>>>str(1010)
'1010'
>>>str(0x3F)
'63'
>>>str(3.1415926)
'3.1415926'
chr(x)和ord(x)函数用于在单字符和Unicode编码值之间进行转换。chr(x)函数返回Unicod编码对应的字符,ord(x)函数返回单字符x对应的Unicode编码。
hex(x)和oct(x)函数分别返回整数x对应十六进制和八进制值的字符串形式,字符串以小写形式表示
3.4.3字符串处理方法
方法 | 描述 |
---|---|
str.lower() | 返回字符串str的副本,全部字符小写 |
str.upper() | 返回字符串str的副本,全部字符大写 |
str.capitalize() | 返回字符串str的副本,首字母大写 |
str.split(sep=None) | 返回一个列表,由str根据sep被分隔的部分构成,省略sep默认以空格分隔 |
str.count(sub) | 返回sub子串出现的次数 |
str.replace(ord,new) | 返回字符串str的副本,所有ord子串被替换为new |
str.center(width,fillchar) | 字符串居中函数,fillchar参数可选 |
str.srip(chars) | 从字符串str中去掉在其左侧和右侧chars中列出的字符 |
str,join(iter) | 将iter变量的每一个元素后增加一个str字符串 |
str.lower()和str.upper()是一对方法,能够将字符串的英文字符变成小写或大写。
>>>"Python".lower()
'python'
>>>"Python".upper()
'PYTHON'
str.split(sep)是一个十分常用的字符串处理方法,它能够根据sep分隔字符串str.sep不是必须的,默认采用空格分隔,sep可以是单个字符,也可以是一个字符串。分割后的内容以列表类型返回
str.count(sub)方法返回字符串str中出现sub次数,sub是一个字符串。
str.replace(ord,new)方法将字符串str中出现的ord字符串替换为new字符串,ord和new的长度可以不同
可以使用replace()方法去掉字符串中的特定字符串或字符
str.center(width,fillchar)方法返回长度为width的字符串。其中,str处于新字符串中心位置,两侧新增字符采用finchar填充,当width小于字符串长度时,返回str;fillchar是单个字符
str.strip(chars)从字符串str中去掉在其左侧和右侧chars中列出的字符。chars是一个字符串,其中出现的每个字符都会被去掉。
str.join(iter)中iter是一个具备迭代性质的变量,该方法将str字符串插入iter变量的元素之间,形成新的字符串。简单地说,.join()方法能够在一组数据中增加分隔字符。
3.5类型判断和类型间转换
Python语言提供type(x)函数对变量x进行判断,适用于任何数据类型
>>>type(10.10)
<class 'float'>
>>>type(1010)
<class 'class'>
>>>type('1010')
<class 'str'>
>>>type([1,0,1,0])
<class 'list'>