1、第第3 3章章 数据类型数据类型 第一章第一章 C C语言概述语言概述2l常量、变量与标识符常量、变量与标识符lPython的基本数据类型的基本数据类型l运算符与表达式运算符与表达式 第一章第一章 C C语言概述语言概述3n3.1.1 常量常量 在程序运行过程中,其在程序运行过程中,其值不能改变的量值不能改变的量称为常量。称为常量。(1 1)整型常量:)整型常量:-123-123、2020 (2 2)实型常量:)实型常量:3.143.14、0.150.15、-2.0-2.0 (3 3)字符串常量:)字符串常量:PythonPython、“Very GoodVery Good!”(4 4)布尔型
2、常量:)布尔型常量:TrueTrue、FalseFalse (5 5)复数类型常量:)复数类型常量:3+2.5j3+2.5j 第一章第一章 C C语言概述语言概述4n3.1.2 变量变量 在在PythonPython中,不需要事先声明变量名及其类型,类型是在运行过程中,不需要事先声明变量名及其类型,类型是在运行过程中自动决定的,中自动决定的,直接赋值即可创建各种类型的变量直接赋值即可创建各种类型的变量。变量在程序中使用变量名表示,变量名必须是合法的标识符,并且变量在程序中使用变量名表示,变量名必须是合法的标识符,并且不能使用不能使用PythonPython关键字。关键字。例如例如:x=5 x=
3、5 type(x)type(x)class 采用内置函数采用内置函数type()type()返回变量返回变量x x的类型的类型intint。第一章第一章 C C语言概述语言概述5 string=string=”Hello World!Hello World!”创建了字符型变量创建了字符型变量stringstring,并赋值为,并赋值为Hello World!Hello World!。注意:注意:PythonPython是一种动态类型语言,即变量的类型可以随时变化。是一种动态类型语言,即变量的类型可以随时变化。例如例如:x=5 x=5 type(x)type(x)class -x=Hello W
4、orld!x=Hello World!type(x)type(x)-当创建了字符串类型变量当创建了字符串类型变量x x之后,之前创建的整型变量之后,之前创建的整型变量x x就自动失效就自动失效了。了。第一章第一章 C C语言概述语言概述6n3.1.3 标识符标识符 合法的标识符由字母、数字和下划线的序列,且必须由字母或下划线开合法的标识符由字母、数字和下划线的序列,且必须由字母或下划线开头,自定义的标识符不能与关键字同名。头,自定义的标识符不能与关键字同名。合法的标识符合法的标识符:x:x,a1 a1,wang wang,num_1num_1,radius radius,1 1,PI PI 不
5、合法的标识符不合法的标识符:a.1:a.1,1sum 1sum,x+y x+y,!abc!abc,123 123,3-c 3-c Python Python中,中,单独的下划线(单独的下划线(_ _)用于表示上一次运算的结果)用于表示上一次运算的结果。例如例如:20 20 20 20 _ _*1010 200200 第一章第一章 C C语言概述语言概述7标识符的命名习惯:标识符的命名习惯:(1 1)变量名和函数名中的英文字母一般用)变量名和函数名中的英文字母一般用小写小写,以增加程序的可读,以增加程序的可读性。性。(2 2)见名知义:通过变量名就知道变量值的含义。一般选用相应英)见名知义:通过
6、变量名就知道变量值的含义。一般选用相应英文单词或拼音缩写的形式,如求和用文单词或拼音缩写的形式,如求和用sumsum,而尽量不要使用简单代数,而尽量不要使用简单代数符号,如符号,如x x、y y、z z等。等。(3 3)尽量不要使用容易混淆的单个字符作为标识符,例如数字)尽量不要使用容易混淆的单个字符作为标识符,例如数字0 0和字和字母母o o,数字,数字1 1和字母和字母l l。(4 4)开头和结尾都使用下划线的情况应该避免,因为)开头和结尾都使用下划线的情况应该避免,因为PythonPython中大量中大量采用这种名字定义了各种特殊方法和变量。采用这种名字定义了各种特殊方法和变量。第一章第
7、一章 C C语言概述语言概述8 在程序设计语言中,都是采用数据类型来描述程序中的数据结构、在程序设计语言中,都是采用数据类型来描述程序中的数据结构、数据的表示范围和数据在内存中的存储分配等。数据的表示范围和数据在内存中的存储分配等。第一章第一章 C C语言概述语言概述9n3.2.1 整型数据整型数据 整型数据即整数,不带小数点,可以有正号或者负号。在整型数据即整数,不带小数点,可以有正号或者负号。在Python3.xPython3.x中,整型数据在计算机内的表示没有长度限制,中,整型数据在计算机内的表示没有长度限制,其值可以任意其值可以任意大大。(1 1)十进制整数。)十进制整数。(2 2)二
8、进制常数。以)二进制常数。以0b0b为前缀,其后由为前缀,其后由0 0和和1 1组成。组成。如如:0b10010b1001表示表示二进制数二进制数10011001,即,即(1001)2(1001)2。(3 3)八进制整数。以)八进制整数。以0o0o为前缀,其后由为前缀,其后由0 0至至7 7的数字组成。的数字组成。如如:0o 0o 456456表示八进制数表示八进制数456456,即,即(456)8(456)8。(4 4)十六进制整数。以)十六进制整数。以0 x0 x或或0X0X开头,其后由开头,其后由0 0至至9 9的数字和的数字和a a至至f f字母字母或或A A至至F F字母组成。字母组
9、成。如如:0 x7A0 x7A表示十六进制数表示十六进制数7A7A,即,即(7A)16(7A)16。第一章第一章 C C语言概述语言概述10【例】例】整型常量。整型常量。0 xff 0 xff255255-2017 201720172017-0b10011001 0b10011001153153-0b012 0b012SyntaxError:invalid syntaxSyntaxError:invalid syntax-0o11-0o11-9-9 第一章第一章 C C语言概述语言概述11n3.2.2 实型数据实型数据 实数又称浮点数,一般有两种表示形式:实数又称浮点数,一般有两种表示形式:(
10、1 1)十进制小数形式。由数字和小数点组成(必须有小数点),)十进制小数形式。由数字和小数点组成(必须有小数点),如如:1.21.2、.24.24、0.00.0等,浮点型数据允许小数点后没有任何数字,表示小数部分为等,浮点型数据允许小数点后没有任何数字,表示小数部分为0 0,如,如2.2.表示表示2.0.2.0.(2 2)指数形式。用科学计数法表示的浮点数,用字母)指数形式。用科学计数法表示的浮点数,用字母e e(或(或E E)表示以)表示以1010为为底的指数,底的指数,e e之前为数字部分,之后为指数部分。之前为数字部分,之后为指数部分。如如,123.4e3123.4e3和和123.4E3
11、123.4E3均表均表示示123.4123.410103 3。注意:注意:e e(或(或E E)前面必须有数字,后面必须是整数)前面必须有数字,后面必须是整数。15e2.3 e3 .e315e2.3 e3 .e3 第一章第一章 C C语言概述语言概述12 对于实型常量,对于实型常量,Python 3.xPython 3.x默认提供默认提供1717位有效数字的精度。位有效数字的精度。例如例如:1234567890012345.0 1234567890012345.0 1234567890012345.01234567890012345.0 -12345678900123456789.0 1234
12、5678900123456789.0 1.2345678900123458e+191.2345678900123458e+19 -15e2 15e2 1500.01500.0 -15e2.3 15e2.3 SyntaxError:invalid syntaxSyntaxError:invalid syntax 第一章第一章 C C语言概述语言概述13n3.2.3 字符型数据字符型数据 在在PythonPython中定义一个字符串可以用用一对单引号、双引号或者三引号进中定义一个字符串可以用用一对单引号、双引号或者三引号进行界定,且单引号、双引号和三引号还可以相互嵌套行界定,且单引号、双引号和三引
13、号还可以相互嵌套,表,表示复杂的字符串。示复杂的字符串。例如例如:“Lets go”“Lets go”“Lets go”“Lets go”-s=“Python Program”s=“Python Program”s s “Python Program”“Python Program”-第一章第一章 C C语言概述语言概述14 转义字符转义字符字符形式含 义nn 回车换行,将当前位置移到下一行开头tt 横向跳到下一制表位置(Tab)b 退格,将当前位置退回到前一列r 回车,将当前位置移到当前行开头f 走纸换页,将当前位置移到下页开头 反斜线符 单引号符 双引号符 dddddd 13位8进制数所代
14、表的字符xhhxhh 12位16进制数所代表的字符 第一章第一章 C C语言概述语言概述15使用转义字符时要注意:使用转义字符时要注意:(1 1)转义字符多用于)转义字符多用于print()print()函数中。函数中。(2 2)转义字符常量,如)转义字符常量,如nn,x86x86等只能代表一个字符。等只能代表一个字符。(3 3)反斜线后的八进制数可以不用)反斜线后的八进制数可以不用0 0开头。如开头。如101101代表字符常量代表字符常量AA,134134代表字符常量代表字符常量。(4 4)反斜线后的十六进制数只能以小写字母)反斜线后的十六进制数只能以小写字母x x开头,不允许用大写字母开头
15、,不允许用大写字母X X或或0 x0 x开头。开头。【例】【例】转义字符。转义字符。a=1 b=2 c=101 print(t%dn%d%sn%d%dt%s%(a,b,c,a,b,c)运行结果:运行结果:12A12A 第一章第一章 C C语言概述语言概述16n3.2.4 布尔型数据布尔型数据PythonPython的布尔类型有两个值:的布尔类型有两个值:TrueTrue和和FalseFalse,分别表示逻辑真和逻辑假。,分别表示逻辑真和逻辑假。【例】例】布尔型数据示例。布尔型数据示例。type(True)type(True)-True=1 True=1 True True-False=0 Fa
16、lse=0 TrueTrue 第一章第一章 C C语言概述语言概述17 12 12 False False-False-1 False-1 True True布尔类型还可以与其他数据类型进布尔类型还可以与其他数据类型进行行逻辑逻辑运算,运算,PythonPython规定:规定:0 0、空、空字符串、字符串、NoneNone为为FalseFalse,其他数值,其他数值和非空字符串为和非空字符串为TrueTrue。0 and False 0 and False 0 0 -None or True None or True TrueTrue -or 1 or 1 1 1 第一章第一章 C C语言概述
17、语言概述18n3.2.5 复数类型数据复数类型数据复数由两部分组成:实部和虚部。复数的形式为:实部复数由两部分组成:实部和虚部。复数的形式为:实部+虚部虚部j j。例如例如:x=3+5j#x x=3+5j#x为复数为复数 x.real#x.real#查看复数实部查看复数实部 3.03.0 -x.imag#x.imag#查看复数虚部查看复数虚部 5.0 5.0 -y=6-10j#y y=6-10j#y为复数为复数 x+y#x+y#复数相加复数相加 (9-5j)(9-5j)第一章第一章 C C语言概述语言概述19n3.3.1 Python运算符运算符1.1.运算符运算符 Python Python
18、语言的运算符按照它们的功能可分为:语言的运算符按照它们的功能可分为:(1 1)算术运算符()算术运算符(+、*、/、*、/、)。)。(2 2)关系运算符()关系运算符(、=、=、=、!=!=)。)。(3 3)逻辑运算符()逻辑运算符(andand、oror、not not)。)。(4 4)位运算符()位运算符(、|、&)。)。(5 5)赋值运算符()赋值运算符(=、复合赋值运算符、复合赋值运算符 )。)。(6 6)成员运算符()成员运算符(in in、not in not in)。)。(7 7)同一运算符()同一运算符(is is、is not is not)。)。(8 8)下标运算符()下标
19、运算符()。)。(9 9)其他()其他(如函数调用运算符()。如函数调用运算符()。第一章第一章 C C语言概述语言概述203.3.1 3.3.1 几个相关概念几个相关概念 目(操作数个数)目(操作数个数)优先级优先级 结合性结合性表达式表达式 第一章第一章 C C语言概述语言概述21n3.3.2 算术运算符和算术表达式算术运算符和算术表达式 1.1.算术运算符算术运算符 运算符含义优先级结合性+加法这些运算符的优先级相同,但比下面的运算符优先级低左结合-减法*乘法这些运算符的优先级相同,但比上面的运算符优先级高/除法/取整除*幂运算%取模 第一章第一章 C C语言概述语言概述22 Pytho
20、nPython中除法有两种:中除法有两种:/和和/,在,在Python3.xPython3.x分别表示除法和整除运算。分别表示除法和整除运算。3/5 3/5 0.6 0.6 -3/5 3/5 0 0 -3.0/5 -3.0/5 -1.0-1.0 -3.0/-5 3.0/-5 -1.0-1.0 第一章第一章 C C语言概述语言概述23 *运算符实现乘方运算,其优先级高于运算符实现乘方运算,其优先级高于*和和/。例如例如:2 2*3 3 8 8-2 2*3.53.5 11.31370849898476111.313708498984761-4 4*3 3*2 2 3636 第一章第一章 C C语言
21、概述语言概述24运算符的多重含义:运算符的多重含义:3 3*5#5#整数相乘运算整数相乘运算 1515-a a*10#10#字符串重复运算字符串重复运算 aaaaaaaaaaaaaaaaaaaa-第一章第一章 C C语言概述语言概述25%运算符表示对整数和浮点数的取模运算。运算符表示对整数和浮点数的取模运算。由于受浮点数精确度的影响,计算结果会有误差。由于受浮点数精确度的影响,计算结果会有误差。5%-3 5%-3 -1-1-10.5%2.1#10.5%2.1#浮点数取模运算浮点数取模运算 2.0999999999999996 2.0999999999999996#结果有误差结果有误差 第一章第
22、一章 C C语言概述语言概述262.2.算术表达式算术表达式 例如:例如:3+a3+a*b/5-2.3+bb/5-2.3+b3.3.数据转换数据转换 在在PythonPython中,同一个表达式允许不同类型的数据参加运算,这就要求在中,同一个表达式允许不同类型的数据参加运算,这就要求在运算之前,先将这些不同类型的数据转换成同一类型,然后再进行运算。运算之前,先将这些不同类型的数据转换成同一类型,然后再进行运算。【例】例】自动类型转换。自动类型转换。10/4 10/4*4 4 10.0 10.0 type(10/4 type(10/4*4)4)第一章第一章 C C语言概述语言概述27 当自动类型
23、转换达不到转换需求时,可以使用类型转换函数,将数据从当自动类型转换达不到转换需求时,可以使用类型转换函数,将数据从一种类型强制(或称为显式)转换成另一种类型。一种类型强制(或称为显式)转换成另一种类型。函数功能描述intint(x)(x)将x转换为整数float(x)float(x)将x转换为浮点数complex(x)complex(x)将x转换为复数,其中实部为x,虚部为0complex(complex(x,yx,y)将x、y转换为复数,其中实部为x,虚部为ystrstr(x)(x)将x转换为字符串chrchr(x)(x)将一个整数转换为一个字符,整数为字符的ASCII编码ordord(x)
24、(x)将一个字符转换为它的ASCII编码的整数值hex(x)hex(x)将一个整数转换为一个十六进制字符串octoct(x)(x)将一个整数转换为一个八进制字符串evaleval(x)(x)将字符串str当做有效表达式求值,并返回计算结果 第一章第一章 C C语言概述语言概述28n3.3.3 赋值运算符和赋值表达式赋值运算符和赋值表达式 1.1.赋值运算符赋值运算符 赋值运算符用赋值运算符用“=”“=”表示。表示。2.2.赋值表达式赋值表达式变量变量=表达式表达式 等号的左边必须是变量,右边是表达式。等号的左边必须是变量,右边是表达式。y=2 y=2 x=(y+2)/3 x=(y+2)/3 x
25、 x 1.3333333333333333 1.3333333333333333 第一章第一章 C C语言概述语言概述29 注意注意:PythonPython的赋值和一般的高级语言的赋值有很大的不同,它是引用赋值。的赋值和一般的高级语言的赋值有很大的不同,它是引用赋值。看下面的代码看下面的代码1 1:例如:例如:a=5 a=5 b=8 b=8 a=b a=b 执行执行a=5a=5和和b=8b=8之后之后a a指向的是指向的是5 5,b b指向的是指向的是8 8,当执行,当执行a=ba=b的时候,的时候,b b把自己指向把自己指向的地址(也就是的地址(也就是8 8的内存地址)赋给了的内存地址)赋
26、给了a a,那么最后的结果就是,那么最后的结果就是a a和和b b同时指向了同时指向了8 8。3.3.多变量赋值多变量赋值(1 1)链式赋值)链式赋值 在在PythonPython中,可通过链式赋值将同一个值赋给多个变量的,一般形式为:中,可通过链式赋值将同一个值赋给多个变量的,一般形式为:x=y=5 x=y=5 x x 5 5 第一章第一章 C C语言概述语言概述30(2 2)多变量并行赋值)多变量并行赋值 变量变量1,1,变量变量2,2,变量变量n=n=表达式表达式1,1,表达式表达式2,2,表达式表达式n n 变量个数要与表达式的个数一致,其过程为:首先计算表达式右边变量个数要与表达式的
27、个数一致,其过程为:首先计算表达式右边n n个表达式的值,然后同时将表达式的值赋给左边的个表达式的值,然后同时将表达式的值赋给左边的n n个变量。个变量。例如例如:x,y,z=2,5,8 x,y,z=2,5,8 x x 2 2-y y 5 5-z z 8 8 第一章第一章 C C语言概述语言概述31例如例如:x=20 x=20 x,x=3,x x,x=3,x*3 3 x x 6060 采取并行赋值,可以使用一条语句就可以交换两个变量的值:采取并行赋值,可以使用一条语句就可以交换两个变量的值:x,y=y,xx,y=y,x。第一章第一章 C C语言概述语言概述324.4.复合的赋值运算符复合的赋值
28、运算符赋值运算符赋值运算符“”与与7 7种算术运算符(种算术运算符(+、-、*、/、/、*、)和、)和5 5种位运种位运算符(算符(、a=3 a=3 b=5 b=5 a+=b a+=b a a 8 8-a=2 a=2 a a 2 2-a a*=a+3=a+3 a a 1010 第一章第一章 C C语言概述语言概述34n3.3.4 关系运算符和关系表达式关系运算符和关系表达式 1.1.关系运算符关系运算符 运算符含义优先级结合性大于这些运算符的优先级相同,但比下面的运算符优先级低左结合=大于等于小于这些运算符的优先级相同,但比上面的运算符优先级高=小于等于=等于!=不等于不等于 第一章第一章 C
29、 C语言概述语言概述35 关系运算符的优先级:关系运算符的优先级:、=、=、!=!=、在在PythonPython中,真用中,真用“True”“True”表示,假用表示,假用“False”“False”表示。表示。x,y,z=2,3,5 x,y,z=2,3,5 xy xy FalseFalse xy xy x=123456 x=123456 y=-111111 y=-111111 z=1.2345678 z=1.2345678 a=(x+y)+z a=(x+y)+z b=x+(y+z)b=x+(y+z)a a 12346.234567812346.2345678 b b 12346.23456
30、779999812346.234567799998 第一章第一章 C C语言概述语言概述37n3.3.5 逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 1.1.逻辑运算符逻辑运算符 运算符含义优先级结合性not逻辑非 右结合and逻辑与左结合Or逻辑或 第一章第一章 C C语言概述语言概述382.2.逻辑表达式及短路运算逻辑表达式及短路运算(1 1)对于与运算)对于与运算a and ba and b 如果如果a a为真,继续计算为真,继续计算b b,b b将决定最终整个表达式的真值,所以,结果为将决定最终整个表达式的真值,所以,结果为b b的值。的值。如果如果a a为假,无需计算为假,无需计算
31、b b,就可以得知整个表达式的真值为假,所以,结果,就可以得知整个表达式的真值为假,所以,结果为为a a的值。的值。例如例如:True and 0 False and 12 True and 0 False and 12 0 0 False False 第一章第一章 C C语言概述语言概述39(2 2)对于或运算)对于或运算a or ba or b 如果如果a a为真,无需计算为真,无需计算b b,就可得知整个表达式的真值为真,所以结果为,就可得知整个表达式的真值为真,所以结果为a a的值。的值。如果如果a a为假,继续计算为假,继续计算b b,b b将决定整个表达式最终的值,所以结果为将决定
32、整个表达式最终的值,所以结果为b b的的值值例如例如:True or 0 True or 0 TrueTrue False or 12 False or 12 1212 False or 12 or 0 False or 12 or 0 1212 第一章第一章 C C语言概述语言概述40n3.3.6 成员运算符和成员表达式成员运算符和成员表达式 成员运算符用于判断一个元素是否在某一个序列中,或者判断一成员运算符用于判断一个元素是否在某一个序列中,或者判断一个字符是否属于这个字符串等,运算结果仍是个字符是否属于这个字符串等,运算结果仍是逻辑值逻辑值。运算符含义优先级结合性in存在 相同左结合no
33、t in不存在 a in abcd a in abcd True True ac in abcd ac in abcd False False 第一章第一章 C C语言概述语言概述41 not in not in 运算符用于在指定的序列中查找某个值是否不存在,不存在返回运算符用于在指定的序列中查找某个值是否不存在,不存在返回TrueTrue,存在返回,存在返回FalseFalse。a not in bcd a not in bcd TrueTrue 3 not in 1,2,3,4 3 not in 1,2,3,4 False False 第一章第一章 C C语言概述语言概述42n3.3.7
34、同一性运算符和同一性表达式同一性运算符和同一性表达式 同一性运算符用于测试两个变量是否指向同一个对象,其运算结果是同一性运算符用于测试两个变量是否指向同一个对象,其运算结果是逻辑值。逻辑值。运算符含义优先级结合性is相同 相同左结合is not不相同 is is检查用来运算的两个变量是否引用同一对象,如果相检查用来运算的两个变量是否引用同一对象,如果相同返回同返回TrueTrue,不相同则返回,不相同则返回FalseFalse。is not is not检查用来运算的两个变量是否不是引用同一对象,检查用来运算的两个变量是否不是引用同一对象,如果不是同一个对象返回如果不是同一个对象返回TrueT
35、rue,否则返回,否则返回FalseFalse。第一章第一章 C C语言概述语言概述43 x=y=2.5 z=2.5 x is yTrue x is zFalse x is not zTrue 第一章第一章 C C语言概述语言概述44优先级运算符结合性 高 低()从左至右*、/、%、/+、-、=、!=、is、not isin、not innot从右至左and从左至右or 第一章第一章 C C语言概述语言概述45学习要点:学习要点:1.掌握各类型变量形式。掌握各类型变量形式。2.掌握各种运算符的功能、优先级和结合性。掌握各种运算符的功能、优先级和结合性。3.掌握各种类型混用时的转换规则。掌握各种类型混用时的转换规则。重点:重点:运算符知识,各运算符之间的求解过程运算符知识,各运算符之间的求解过程难点:难点:混合表达式的运算。混合表达式的运算。学习建议学习建议:自编一些表达式,理解运算符的优先级和结合性;自编一些表达式,理解运算符的优先级和结合性;特别注意数值表达式的类型和运算结果。特别注意数值表达式的类型和运算结果。
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。