项目二 数据类型及其运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)

2024-08-02
| 64页
| 118人阅读
| 19人下载
普通

内容正文:

项目二 数据类型及其运算 Contents 变量定义的方法 常用数据类型 常用运算符 变量定义的方法 PART 01 常量与变量 在编写程序时,表示数据的量可以分为两种:常量和变量。 常量,是指在程序运行过程中值不能发生改变的量,如1、3.5、3+4i、"abc"等。 变量,是指在程序运行过程中值可以发生改变的量。与数学中的变量一样,需要为Python中的每一个变量指定一个名字,如x、y、test等。 定义一个变量 Python变量的类型由其值的类型决定。变量在使用前不需要先定义,为一个变量赋值后,则该变量会自动创建。变量的命名规则如下: 变量名可以包括字母、数字和下划线,但是数字不能作为开头字符。例如,test1是有效变量名,而1test则是无效变量名。 系统关键字不能做变量名使用。例如,and、break等都是系统关键字,不能作为变量名使用。 Python的变量名区分大小写。例如,test和Test是两个不同的变量。 示例01 定义一个变量 【任务描述】 了解变量的定义和使用方法 【关键步骤】 了解变量的定义和使用方法 1 test='Hello World!’ 2 Test=123 3 print(test) #输出“Hello World!” 4 print(Test) #输出“123” 5 test=10.5 6 print(test) #输出“10.5” 下面的代码说明了变量的定义和使用方法。 定义一个变量 示例01 代码缩进 4个空格 正文缩进1.27厘米 7 变量1,变量2,…,变量n=值1,值2,…,值n 在一条语句中可以同时定义多个变量,其语法格式如下: 赋值运算符右边的值1、值2、……、值n会分别赋给左边的变量1、变量2、……、变量n。 同时定义多个变量 代码缩进 4个空格 正文缩进1.27厘米 8 同时定义多个变量 【任务描述】 了解多个变量的使用方法 【关键步骤】 了解多个变量的使用方法 示例02 代码缩进 4个空格 正文缩进1.27厘米 9 name,age='张三',18 对于下面的代码: 执行完毕后会定义两个变量:name是一个字符串型变量,其值为"张三";age是一个整型变量,其值为18。 1 x,y=5,10 2 x,y=y,x 对于已定义的变量,也可以在一条语句中修改多个变量的值。例如: 第1行代码的作用是定义了两个整型变量x和y,它们的值分别是5和10。第2行代码的作用是将赋值运算符右边y和x的值取出并分别赋给左边的x和y,执行完毕后,x的值为10,y的值为5,即将x和y的值进行了交换。 同时定义多个变量 示例01 代码缩进 4个空格 正文缩进1.27厘米 10 数据类型 PART 02 数据类型-Number 【任务描述】 了解int(整型) 了解float(浮点型) 了解complex(复数类型) 【关键步骤】 了解int(整型) 了解float(浮点型) 了解complex(复数类型) 示例01 12 整型数字包括正整数、0和负整数,不带小数点,无大小限制。整数可以使用不同的进制来表示:不加任何前缀为十进制整数;加前缀0o为八进制整数;加前缀0x则为十六进制整数。例如,对于下面的代码: a,b,c=10,0o10,0x10 执行完毕后,a、b、c的值分别是10、8和16。其中,0o10为八进制数,输出时转为十进制数8;0x10为十六进制数,输出时转为十进制数16。 数据类型-Number 示例01 13 浮点型数字使用C语言中的double类型实现,可以用来表示实数,如3.14159、-10.5、3.25e3等。当前环境中浮点数的取值范围和精度可以通过以下代码查看: import sys #导入sys包 sys.float_info #查看当前环境中浮点型数字的取值范围和精度 执行上面代码后,可以查看到如下格式的信息: sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1) 其中,min和max是浮点数的最小值和最大值,dig是浮点数所能精确表示的十进制数字的最大位数。 数据类型-Number 示例02 14 复数由实部和虚部组成,每一部分都是一个浮点数,其书写方法如下: a+bj或a+bJ 其中,a和b是两个数字,j或J是虚部的后缀,即a是实部、b是虚部。 在生成复数时,也可以使用complex函数,其语法格式如下: complex([real[,imag]] 例如,对于下面的代码: c1,c2,c3,c4,c5=3+5.5j,3.25e3j,complex(5,-3.5),complex(5),complex() 执行完毕后,c1、c2、c3和c4的值分别是(3+5.5j)、3250j、(5-3.5j)、(5+0j)和0j。 数据类型-Number 示例03 15 Python中的字符串可以写在一对单引号中,也可以写在一对双引号或一对三双引号中。例如: s1,s2='Hello World!',"你好,世界!" 执行完毕后,s1和s2的值分别是字符串“Hello World!”和“你好,世界!”。 对于不包含任何字符的字符串,如''或"",称为空字符串(或简称为空串)。 String 16 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \’ 单引号 \” 双引号 换行 \r 回车 \t 制表符 String 17 数据类型-String 【任务描述】 了解string 了解转义符 了解子串 【关键步骤】 了解string 了解转义符 了解子串 示例04 18 1 s1='Hello \ 2 World!' #上一行以\作为行尾,说明上一行与当前行是同一条语句 3 s2='It's a book.' #单引号非成对出现,报SyntaxError错误 4 s3='It\'s a book.' #使用\'说明其是字符串中的一个单引号字符 5 s4="It's a book." #使用一对双引号的写法,字符串中可以直接使用单引号,不需要转义 6 s5="你好! 欢迎学习Python语言程序设计!" #通过 换行 数据类型-String 示例04 19 利用下标“[]”可以从字符串中截取一个子串,其语法格式为: s[beg:end] 其中,s为原始字符串,beg是要截取子串在s中的起始下标,end是要截取子串在s中的结束下标。 省略beg,则表示从s的开始字符进行子串截取,等价于s[0:end]; 省略end,则表示截取的子串中包含从beg位置开始到最后一个字符之间的字符(包括最后一个字符); beg和end都省略则表示子串中包含s中的所有字符。 数据类型-String 示例04 20 Python中字符串中字符的下标有两种索引方式:从前向后索引和从后向前索引。 从前向后索引方式中,第1个字符的下标为0,其他字符的下标是前一字符的下标增1; 从后向前索引方式中,最后一个字符的下标为-1,其他字符的下标是后一字符的下标减1。 欢 迎 学 习 P y t h o n 语 言 程 序 设 计 ! 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 -17 -16 -15 -14 -13 -12 -11 -10 -9 -8 -7 -6 -5 -4 -3 -2 -1 字符串 从前向后索引 从后向前索引 数据类型-String 示例04 21 1 s='欢迎学习Python语言程序设计!’ 2 print(s[2:4] #输出“学习” 3 print(s[-3:-1]) #输出“设计” 4 print(s[2:-1]) #输出“学习Python语言程序设计” 5 print(s[:10]) #输出“欢迎学习Python” 6 print(s[-5:]) #输出“程序设计!” 7 print(s[:]) #输出“欢迎学习Python语言程序设计” 数据类型-String 示例04 22 1 s='欢迎学习Python语言程序设计!’ 2 print(s[2]) #输出“学” 3 print(s[-1]) #输出“!” 如果要截取的子串中只包含1个字符,则也可以采用写法:s[idx] 使用下标“[]”可以访问字符串中的元素,但不能修改。例如,对于“s[2]='复'”这样的代码,执行时会报TypeError错误。 数据类型-String 示例04 23 List(列表)中可以包含多个元素,且元素类型可以不相同。每一元素可以是任一数据类型。所有元素都写在一对方括号“[]”中,每两个元素之间用逗号分隔。对于不包含任何元素的列表,即[],称为空列表。 1 2.5 ‘test’ 3+4j True [3,1.63] 5.3 0 1 2 3 4 5 6 -7 -6 -5 -4 -3 -2 -1 列表 从前向后索引 从后向前索引 List 24 与字符串相同,利用下标“[]”可以从已有列表中取出其中部分元素形成一个 新列表,其语法格式为: ls[beg:end] List 25 数据类型-List与Tuple 【任务描述】 了解List与tuple 了解切片 【关键步骤】 了解List与tuple 了解切片 示例05 26 1 ls=[1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3] 2 print(ls[1:4]) #输出“[2.5, 'test', (3+4j)]” 3 print(ls[-3:-1]) #输出“[True, [3, 1.63]]” 4 print(ls[2:-1]) #输出“['test', (3+4j), True, [3, 1.63]]” 5 print(ls[:3]) #输出“[1, 2.5, 'test’]” 6 print(ls[-2:]) #输出“[[3, 1.63], 5.3]” 7 print(ls[:]) #输出“[1, 2.5, 'test', (3+4j), True, [3, 1.63], 5.3]” 数据类型-List与Tuple 示例05 27 1 ls=[1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3] 2 print(ls[2]) #输出“test” 3 print(ls[-3]) #输出“True” 如果只访问列表ls中的某一个元素,则可以使用写法:ls[idx] 通过下标“[]”不仅可以访问列表中的某个元素,还可以对元素进行修改。 例如:ls[2]=15 #将列表ls中第3个元素的值改为15 数据类型-List与Tuple 示例05 28 Tuple(元组)与列表类似,可以包含多个元素,且元素类型可以不相同。与列表的不同之处在于:元组的所有元素都写在一对小括号“()”中,且元组中的元素不能修改。 1 t=(1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3) 2 print(t[1:4]) #输出“[2.5, 'test', (3+4j)]” 3 print(t[-3:-1]) #输出“[True, [3, 1.63]]” 4 print(t[2:-1]) #输出“['test', (3+4j), True, [3, 1.63]]” 5 print(t[:3]) #输出“[1, 2.5, 'test’]” 6 print(t[-2:]) #输出“[[3, 1.63], 5.3]” 7 print(t[:]) #输出“[1, 2.5, 'test', (3+4j), True, [3, 1.63], 5.3]” 8 print(t[2]) #输出“test” 9 print(t[-3]) #输出“True” 数据类型-List与Tuple 示例05 29 与元组和列表类似,Set(集合)中同样可以包含多个不同类型的元素,但集合中的各元素无序、不允许有相同元素且元素必须是可哈希(hashable)的对象。 集合中的所有元素都写在一对大括号“{}”中,各元素之间用逗号分隔。创建集合时,既可以使用{},也可以使用set函数。set函数的语法格式为:set([iterable]) Set与Dictionary 30 Dictionary(字典)是另一种无序的对象集合。 但与集合不同,字典是一种映射类型,每一个元素是一个键(key):值(value)对。 在一个字典对象中,键必须是唯一的,即不同元素的键不能相同; 另外,键必须是可哈希数据,即键不能是列表、元组、集合、字典等类型; 值可以是任意类型。 对于不包含任何元素的字典,即{},称为空字典。 Set与Dictionary 31 数据类型-Set与Dictionary 【任务描述】 了解Set与Dictionary 了解Set与Dictionary的特点 【关键步骤】 了解Set与Dictionary 了解Set与Dictionary的特点 示例06 32 1 a={10, 2.5, 'test', 3+4j, True, 5.3, 2.5} 2 print(a) #输出“{True, 2.5, 5.3, 10, (3+4j), 'test’}” 3 b=set('hello’) 4 print(b) #输出“{'e', 'l', 'o', 'h’}” 5 c=set([10, 2.5, 'test', 3+4j, True, 5.3, 2.5]) 6 print(c) #输出“{True, 2.5, 5.3, 10, (3+4j), 'test’}” 7 d=set((10, 2.5, 'test', 3+4j, True, 5.3, 2.5)) 8 print(d) #输出“{True, 2.5, 5.3, 10, (3+4j), 'test'}” 数据类型-Set与Dictionary 示例06 33 创建字典时,既可以使用{},也可以使用dict函数。如果要创建一个空字典,可以使用{}或dict(): a={} b=dict() 如果在创建字典的同时,需要给出字典中的元素,如: 1 a={'one':1, 'two':2, 'three':3} 2 b=dict(one=1, two=2, three=3) 3 c=dict(zip(['one','two','three'], [1,2,3])) 4 d=dict([('one',1), ('two',2), ('three',3)]) 5 e=dict({'one':1, 'two':2, 'three':3}) 这5条语句创建的5个字典对象的元素完全相同,使用print函数查看结果,都能得到:{'one': 1, 'two': 2, 'three': 3} 数据类型-Set与Dictionary 示例06 34 与列表等序列对象不同,在访问字典中的元素时不能通过下标方式访问,而是通过键访问。例如: 1 info={'name':'张三', 'age':19, 'score':{'python':95,'math':92}} 2 print(info['name']) #输出“张三” 3 print(info['age']) #输出“19” 4 print(info['score']) #输出“{'python': 95, 'math': 92}” 5 print(info['score']['python']) #输出“95” 6 print(info['score']['math']) #输出“92” 执行完毕后,第2至5行代码分别按对应注释中的描述输出结果。由于info['score']访问到的仍然是一个字典,所以后面可以再分别通过info['score']['python']和info['score']['math']访问该字典中的元素。 数据类型-Set与Dictionary 示例06 35 运算符 PART 03 在字符串中可以给出一些占位符用来表示不同类型的数据,而实际的数据值在字符串之外给出。 占位符 描述 %d 有符号整型十进制数 %f或%F 有符号浮点型十进制数 %s 字符串 占位运算符 37 1 s1='%s上次数学成绩%d,本次%d,成绩提高%f' %('小明',85,90,5/85) 2 s2='%5s上次数学成绩%5d,本次%5d,成绩提高%.2f' %('小明',85,90,5/85) 3 s3='%5s上次数学成绩%05d,本次%05d,成绩提高%08.2f' %('小明',85,90,5/85) 1 小明上次数学成绩85,本次90,成绩提高0.058824 2 小明上次数学成绩 85,本次 90,成绩提高0.06 3 小明上次数学成绩00085,本次00090,成绩提高00000.06 通过print函数分别输出s1、s2和s3,可得到下面结果: 占位运算符 38 运算符 使用方法 功能描述 +(加) 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次幂 算术运算符 39 算术运算符 【任务描述】 了解算术运算符的使用 【关键步骤】 了解算术运算符的使用 示例07 1 i1,i2=10,3 2 f1,f2=3.2,1.5 3 c1,c2=3+4.1j,5.2+6.3j 4 print(i1+i2) #输出“13” 5 print(c1-c2) #输出“(-2.2-2.2j)” 6 print(f1*f2) #输出“4.800000000000001” 7 print(i1/i2) #输出“3.3333333333333335” 8 print(i1//i2) #输出“3” 9 print(i1%i2) #输出“1” 10 print(-f1) #输出“-3.2” 11 print(+f2) #输出“1.5” 12 print(i1**i2) #输出“1000” 算术运算符 示例07 41 运算符 使用方法 功能描述 = y=x 将x的值赋给y += y+=x 等价于y=y+x -= y-=x 等价于y=y-x *= y*=x 等价于y=y*x /= y/=x 等价于y=y/x //= y//=x 等价于y=y//x %= y%=x 等价于y=y%x **= y**=x 等价于y=y**x 赋值运算符 42 赋值运算符 【任务描述】 了解赋值运算符的使用 【关键步骤】 了解赋值运算符的使用 示例08 1 i1,i2=10,3 #i1和i2的值分别被赋为10和3 2 i1+=i2 #i1的值被改为13 3 print(i1) #输出“13” 4 c1,c2=3+4.1j,5.2+6.3j #c1和c2的值分别被赋为3+4.1j和5.2+6.3j 5 c1-=c2 #c1的值被改为-2.2-2.2j 6 print(c1) #输出“-2.2-2.2j” 7 f1,f2=3.2,1.5 #f1和f2的值分别被赋为3.2和1.5 8 f1*=f2 #f1的值被改为4.8 9 print(f1) #输出“4.8” 10 i1,f1=3,0.5 #i1和f1的值分别被赋为3和0.5 11 i1**=f1 #i1的值被改为1.7320508075688772(即3的0.5次幂) 12 print(i1) #输出“1.7320508075688772” 赋值运算符 示例08 44 运算符 使用方法 功能描述 ==(等于) y==x 如果y和x相等,返回True,否则返回False !=(不等于) y!=x 如果y和x不相等,返回True,否则返回False >(大于) y>x 如果y大于x,返回True,否则返回False <(小于) y<x 如果y小于x,返回True,否则返回False >=(大于等于) y>=x 如果y大于或等于x,返回True,否则返回False <=(小于等于) y<=x 如果y小于或等于x,返回True,否则返回False 比较运算符 45 比较运算符 【任务描述】 了解赋值运算符的使用 【关键步骤】 了解赋值运算符的使用 示例09 1 i1,i2,i3=25,35,25 #i1、i2和i3分别被赋为25、35和60 2 print(i1==i2) #输出“False” 3 print(i1!=i2) #输出“True” 4 print(i1>i3) #输出“False” 5 print(i1<i2) #输出“True” 6 print(i1>=i3) #输出“True” 7 print(i1<=i2) #输出“True” 比较运算符 示例09 47 运算符 使用方法 功能描述 and(逻辑与) x and y 如果y和x都为True,返回True,否则返回False or(逻辑或) x or y 如果y和x都为False,返回True,否则返回False not(逻辑非) not x 如果x为True,返回False,如果x为False,返回True 1 n=80,a=100 2 print(n>=0 and n<=a) #输出“True”,判断n是否大于等于0且小于等于a 3 print(n<0 or n>a) #输出“False”,判断n是否小于0或大于a 4 print(not(n>=0 and n<=a)) #输出“False” 逻辑运算符 48 十进制整数转换为二进制采用“除基取余法”:用2去除十进制整数,得到商和余数;如果商不为0,则继续用2除,再得到商和余数,重复该步骤直至商为0;最后将余数按照从后至前的顺序排列,即得到转换后的十进制数。 位运算符 49 二进制数转十进制数的规则是“按权展开求和”,即将二进制数的每一位写成数码乘以位权的形式,再对乘积求和。例如,对于二进制数11010B,其对应的十进制数为: 11010B=1*2^4+1*2^3+0*2^2+1*2^1+0*2^0 =1*16+1*8+0*4+1*2+0*1 =16+8+0+2+0 =26 位运算符 50 运算符 使用方法 功能描述 &(按位与) y&x 如果y和x对应位都为1,则结果中该位为1,否则为0 |(按位或) y|x 如果y和x对应位都为0,则结果中该位为0,否则为1 ^(按位异或) y^x 如果y和x对应位不同,则结果中该位为1,否则为0 <<(左移位) y<<x 将y左移x位(右侧补0) >>(右移位) y>>x 将y右移x位(左侧补0) ~(按位取反) ~x 如果x的某位为1,则结果中该位为0,否则为1 位运算符 51 位运算符 【任务描述】 了解位运算符的使用 【关键步骤】 了解位运算符的使用 示例10 1 i1,i2=3,6 #i1对应的二进制数是11B,i2对应的二进制数是110B 2 print(i1&i2) #输出“2”。计算方法:011B&110B=010B=2 3 print(i1|i2) #输出“7”。计算方法:011B|110B=111B=7 4 print(i1^i2) #输出“5”。计算方法:011B^110B=101B=5 5 print(i1<<1) #输出“6”。计算方法:11B<<1=110B=6 6 print(i1>>1) #输出“1”。计算方法:11B>>1=1B=1 位运算符 示例10 53 运算符 使用方法 功能描述 is x is y 如果y和x对应同样的存储单元,返回True,否则返回False is not x is not y 如果y和x不对应同样的存储单元,返回True,否则返回False 身份运算符 54 身份运算符 【任务描述】 了解身份运算符的使用 【关键步骤】 了解身份运算符的使用 示例11 1 x,y=15,15 2 print(x is y) #输出“True” 3 print(x is not y) #输出“False” 4 print(x is 15) #输出“True” 5 x,y=[1,2,3],[1,2,3] 6 print(x is y) #输出“False” 7 print(x==y) #输出“True” 8 print(x is [1,2,3]) #输出“False” 9 x=y 10 print(x is y) #输出“True” 身份运算符 56 运算符 使用方法 功能描述 in x in y 如果x是可迭代对象y的一个元素,返回True,否则返回False not in x not in y 如果x不是可迭代对象y的一个元素,返回True,否则返回False 成员运算符 57 成员运算符 【任务描述】 了解成员运算符的使用 【关键步骤】 了解成员运算符的使用 示例12 1 x,y=15,['abc',15,True] 2 print(x in y) #输出“True” 3 x=20 4 print(x not in y) #输出“True” 5 y=(20,'Python’) 6 print(x in y) #输出“True” 7 x,y='Py','Python’ 8 print(x in y) #输出“True” 9 x,y=20,{15,20,25} 10 print(x in y) #输出“True” 11 x,y='one',{'one':1,'two':2,'three':3} 12 print(x in y) #输出“True” 13 print(1 in y) #输出“False” 成员运算符 示例12 59 运算符 使用方法 功能描述 +(连接) x+y 将序列x和序列y中的元素连接,生成一个新的序列 *(重复) x*n 将序列x中的元素重复n次,生成一个新的序列 序列运算符 60 序列运算符 【任务描述】 了解序列运算符的使用 【关键步骤】 了解序列运算符的使用 示例13 1 x,y=[12,False],['abc',15,True] 2 z=x+y #x和y连接后的结果赋给z 3 print(z) #输出“[12, False, 'abc', 15, True]” 4 s1,s2='我喜欢学习','Python’ 5 s=s1+s2 #s1和s2连接后的结果赋给s 6 print(s) #输出“我喜欢学习Python” 7 x_3=x*3 #将序列x的元素重复3次,生成一个新序列并赋给x_3 8 print(x_3) #输出“[12, False, 12, False, 12, False]” 9 s_3=s*3 #将字符串s重复3次,生成一个新字符串并赋给s_3 10 print(s_3) #输出“我喜欢学习Python我喜欢学习Python我喜欢学习Python” 序列运算符 示例13 62 优先级 运算符 描述 1 ** 乘方 2 ~、+、- 按位取反、正号、负号 3 *、/、//、% 乘/序列重复、除、整除、模 4 +、- 加/序列连接、减 5 >>、<< 右移位、左移位 6 & 按位与 7 ^ 按位异或 8 | 按位或 9 >、<、>=、<=、==、!=、is、is not、in、not in 比较运算符、身份运算符、成员运算符 10 =、+=、-=、*=、/=、//=、%=、**= 赋值运算符 11 not 逻辑非 12 and 逻辑与 13 or 逻辑或 运算符优先级 63 感谢观看 $$

资源预览图

项目二   数据类型及其运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
1
项目二   数据类型及其运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
2
项目二   数据类型及其运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
3
项目二   数据类型及其运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
4
项目二   数据类型及其运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
5
项目二   数据类型及其运算(课件)-《程序设计基础(Python)》同步教学(电子工业出版社)
6
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。