有关python的版本和安装以及概念特点可以参考上篇博文,python语言基础
此博文主要讨论问题如下:
一、python的变量
二、python常用的数据类型
一、什么是python的变量?
变量是计算机内存的一块区域,变量可以存储任何值,而且值可以改变。变量名由字母、数字和下划线组成。需要注意的是,不能使用python的关键字,英文大小写字母敏感,第1个字符必须是字母或下划线,不能是数字,示例代码如下:
>>> x=1
>>> _x=2
>>> print(x)
1
>>> print(_x)
2
x和_x都是合法的变量名,print()是输出函数,能够输出变量的值,也可以不使用小括号。
python中的变量不需要声明,变量的赋值操作即是变量声明和定义的过程,如_x=2即是声明和定义的过程。还可以给几个变量同时赋值,示例代码如下:
>>> a,b,c=4,5,6
>>> print (a)
4
>>> print(b,c)
5 6
a,b,c=4,5,6同时给3个变量进行了赋值操作,简化了多个变量赋值的代码。
二、python常用的数据类型有哪些?
python内置的数据类型有数字、字符串、元组、列表和字典。
1、数字
数字类型包括整~型、浮点型、布尔型等,声明时由python内置的基本数据类型来管理变量,在程序的后台实现数值与类型的关联,以及转换等操作。根据变量的值自动判断变量的类型,程序员不需要关心变量空间是什么类型,只要知道创建的变量存放了一个数,程序只是对这个数值进行操作。
1)整型和浮点型
整数使用整~型表示,有小数位使用浮点型表示,示例代码如下:
>>> w=123
>>> print(w)
123
>>> w=5.21
>>> print(w)
5.21
以上代码首先定义了变量w=123,此时的w值是整数,w即使整型变量,当w=5.21时,w又成为了浮点型变量,由此可以看出,变量的类型是能改变的,这点与Java、C#语言等是有区别的。这是因为当python给已经存在
的变量再次赋值时,实际上是创建了一个新的变量,即使变量名相同,但标识并不相同,变量的标识可以使用id函数输出。
>>> w=123
>>> print(id(w))
140709308982112
>>>
>>> w=5.21
>>> print(id(w))
2193072831584
以上代码都是对变量x的标识进行打印,赋值前后的标识并不相同。
2)布尔类型
布尔型用于逻辑运算,有两个值True、False,表示真和假。示例代码如下:
>>> 10>50
False
>>>
>>> 30>15
True
3)python运算符
python中使用的算术运算符和数学运算中使用的符号基本相同,由+、-、*、/、%、//、 *****(加、减、乘、除、取余、整余、次方)和小括号组成运算顺序也是先乘除后加减,小括号优先。示例代码如下:
>>> x,y=10,2
>>> print(x+y,x-y,x*y,x/y)
12 8 20 5.0
>>> print (2+4*8)
34
>>> print((6+5)*4)
44
下面两个算术运算符是%和****(求模运算和求幂运算),求模运算取余数,求幂是计算累乘的结果,也就是次方,示例代码如下:
>>> 8%5
3
>>> 8%4
0
>>> 2**2
4
>>> 6**3
216
>>> 2**4
16
2、字符串
python中的字符串类型是一组包含数字、字母和符号的集合,作为一个整体使用。
1)字符串使用
python中有3种表示字符串的方式,单引号、双引号、三引号,示例代码如下:
>>> name='王五'
>>> address="长安街"
>>> content='''欢迎来到北京'''
>>> print (name)
王五
>>> print(address)
长安街
>>> print(content)
欢迎来到北京
变量name使用单引号,变量address使用双引号,变量content使用三引号,他们都是合法的python字符串类型。需要注意的是,单引号和双引号的作用是一样的,可以根据习惯使用,但定义多行文字时,必须要使用三引号。
常用的转义字符如下图:
2)字符串的其他用法
python的字符串可以进行乘法的操作,可以用一个整型数字和字符串相乘,如用数字3乘字符串“a”,结果是字符串“aaa”,相同于字符串“a”连接了3遍,示例代码如下:
>>> print(3*'a')
aaa
>>> print (5*'b')
bbbbb
3、列表
列表(list)是python中非常重要的数据类型,通常作为函数的返回类型。由一组元素组成,列表可以实现添加、删除和查找操作,元素值可以被修改。
1)列表的定义
列表是python内置的一种数据结构,由中括号定义,元素以逗号分开,语法如下:
2)列表的取值
列表中的数据是有序的,按定义时的顺序排好,可以单独取出某一位置元素的数值,语法如下:
示例代码如下:
>>> num=['111','222','333']
>>> print(num[0])
111
>>> print(num[1])
222
>>> print(num[2])
333
定义了列表num,存储了3个字符串顺序是‘111’、‘222’、‘333’,取值时用小括号列表名num加上中括号,数字表示索引位置,需要注意位置是由0开始依次递增。
- 可以获取列表知道范围的一组元素,语法如下:
可以输出起始位置到终止位置前的元素,不包括终止位置,示例代码如下:>>> num=['111','222','333','444'] >>> print(num[0:1]) ['111'] >>> >>> print(num[0:3]) ['111', '222', '333'] >>> print(num[1:2]) ['222'] >>> >>> print(num[2:]) ['333', '444']
[0:1]表示由索引0开始,索引位置1之前的元素,所有只能取到第1个元素,[0:3]可以取到索引3之前的元素,即列表中第1、2、3个元素,其他的与此相同。
3)修改列表元素值
可以修改指定位置的列表元素值,语法如下:
示例代码如下:
>>> num=['111','222','333','444']
>>> num[0]='001' #修改
>>> print(num)
['001', '222', '333', '444']
定义列表时,索引位置0的元素是“111”,修改它的值为“001”后,索引位置0元素变为“001”。
4)添加列表元素
可以把一个元素添加到列表的最后,语法如下:
示例代码如下:
>>> num=['111','222','333','444']
>>> print (num)
['111', '222', '333', '444']
>>> num.append('555') #末尾添加新元素
>>> print (num)
['111', '222', '333', '444', '555']
使用append(’555‘)后,“555”被添加到列表的末尾。
- 在列表指定位置前插入新的元素,语法如下:
示例代码如下:>>> num=['111','222','333','444'] >>> num.insert(1,'001') >>> print(num) ['111', '001', '222', '333', '444']
语句insert(1,’001‘)的作用是在索引位置1前插入’001‘,索引位置1的当前元素是’222‘,’001‘插入到它的前面。
5)删除列表元素
可以删除列表指定索引位置的元素,语法如下:
示例代码如下:
>>> num=['111','222','333']
>>> del (num[1])
>>> print(num)
['111', '333']
使用del删除索引为1的元素’222‘后,输出列表num中已经不存在’222‘元素。
6)查找列表元素
使用in关键字可以查找列表中是否存在指定的数值,语法如下:
元素值 in 列表名
返回布尔类型True或False
示例代码如下:
>>> num=['111','222','333']
>>> ('111')in num
True
>>> ('444')in num
False
字符串’111‘在列表中存在,返回True;字符串’444‘在列表中不存在,返回False。
7)合并列表
多个列表可以使用加号进行合并,示例代码如下:
>>> num1=['111','222']
>>> num2=['333','444']
>>> numAll=(num1+num2)
>>> print(numAll)
['111', '222', '333', '444']
>>> numAll=(num2+num1)
>>> print(numAll)
['333', '444', '111', '222']
定义了两个列表num1和num2,使用加号进行合并操作时,加号后面的列表元素会追加到前面列表的后面。
8)重复列表
使用星号可以对列表进行重复操作,与单独字符串乘法操作相似,示例代码如下:
>>> num1=['111','222']
>>> num=(num1*5)
>>> print(num)
['111', '222', '111', '222', '111', '222', '111', '222', '111', '222']
4、元组
元组(tuple)和列表类似,也是python的一种数据结构,由不同的元素组成,每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。但元组是不可以修改的,即元组创建后不能做任何的修改操作,元组通常表示一行数据,而元组中的元素表示不同的数据项。
1)元组的创建
元组由关键字小括号定义,一旦创建后就不能修改元组的内容,定义的语法如下:
如下修改柱状图的代码,加入元组的定义,示例代码如下:
>>>import matplotlib.pyplot as plt
>>> x=(1,9) #元组
>>> height_all=(6,10) #元组
>>> width_all=4
>>> title=("cylinder")
>>> plt.bar(x=(1,9),height=(6,10),width=(4))
>>> plt.title(title)
>>> plt.show()
这段代码依然可以正常运行,与使用列表并没有区别。元组与列表最大的不同是它是写保护的,创建后不能做任何的修改。
在使用时元组与列表区别并不大,那么为什么要使用元组呢?主要是因为元组是不可变的,操作速度比列表快,而且因为它不可以修改,数据要更加安全,所以要根据实际情况决定是使用元组还是列表,使程序更加高效合理。
2)元组的操作
元组也可对其元素执行一系列的操作。
-
元组具有不可变性,所以相比列表的操作要少,其中取值操作与列表是完全相同的,示例代码如下:
>>> num=('111','222','333') >>> print (num[0]) 111 >>> print (num[1]) 222
与列表的取值操作完全相同,都是使用方括号作为关键字取值。
-
元素不允许删除元组中的元素值,但是可以删除整个元组,语法如下:
示例代码如下:>>> num=('111','222','333','444') >>> del (num[0]) #删除元素,报错 Traceback (most recent call last): File "<pyshell#219>", line 1, in <module> del (num[0]) TypeError: 'tuple' object doesn't support item deletion >>> print (num) ('111', '222', '333', '444') >>> del (num) #删除元组后元组不存在,报错 >>> print (num) Traceback (most recent call last): File "<pyshell#222>", line 1, in <module> print (num) NameError: name 'num' is not defined >>>
定义元组num后,删除某一个元素程序报错。删除整个元组后,在想使用这个元组,编译器会报未定义变量的错误。
- 元组和列表可以做互相转换操作,元组转换为列表的语法如下:
示例代码如下:>>> num=('111','222','333','444') #元组 >>> listNum =list(num) #转换为列表 >>> print (listNum) ['111', '222', '333', '444'] >>> (listNum[0])='001' #修改列表 >>> print( listNum) ['001', '222', '333', '444'] >>> print (type(num)) #输出元组类型 <class 'tuple'> >>> print (type(listNum)) #输出列表类型 <class 'list'>
这段代码首先定义了元组num,然后把它转换为列表listNum,对列表listNum可以做修改元素的操作,使用type()函数输出了元组的列表的类型。
5、字典
字典(dict)是python中重要的数据类型,字典是由“键-值”对组成的集合,字典中的值通过键来引用。
1)字典的创建
字典的每个元素是由“键-值”对(key-value)组成的,键值之间使用冒号分隔,“键-值”对之间用逗号隔开,并且被包含在一对花括号中。键是唯一的,不能存在多个,且它的值是无序的,键可以是数字、字符串、元组,一般用字符串作为键。定义的语法如下:
示例代码如下:
>>> mobile = {'tom':'19991111','bob':'19982222','alice':'19973333'}
>>> print(mobile)
{'tom': '19991111', 'bob': '19982222', 'alice': '19973333'}
>>> print(type(mobile))
<class 'dict'>
定义了一个字典mobile,存储的键是姓名,值是电话号码,他们构成了对应的关系,使用type函数可以查看到它的类型是’dict‘。
2)字典的取值操作
字典的取值与元组和列表有所不同,元组和列表都是通过数字索引获取对应位置的值,而字典是通过键获取对应的值。取值的语法如下:
示例代码如下:
>>> mobile = {'tom':'19991111','bob':'19982222','alice':'19973333'}
>>> print(mobile["tom"])
19991111
>>> print(mobile["bob"])
19982222
分别使用键“tom”“bob”可以获取到他们对应的值。需要注意的是,键是唯一的,而不同键的值却可以相同,当定义多个键相同时,字典中只会保留最后一个定义的键值对,示例代码如下:
>>> mobile = {'tom':'19991111','tom':'1×××222','tom':'19993333'}
>>> print(mobile)
{'tom': '19993333'}
字典中定义了3个“键-值”对,他们的键是相同的,最后输出时只有最后一个定义的“键-值”对存在。
3)字典的添加、修改、删除操作
字典添加新元素只需要对新键进行赋值即可,字典中不存在的键,会自动进行添加。示例代码如下:
>>> mobile = {'tom':'19991111','bob':'19982222'}
>>> (mobile['alice'])='19993333'
>>> print(mobile)
{'tom': '19991111', 'bob': '19982222', 'alice': '19993333'}
字典的键’alice‘在定义时并不存在,赋值后,键’alice‘被添加到字典中。字典键值对的键名是区分大小写的。
修改字典中的元素,直接使用存在的键赋值,示例代码如下:
>>> mobile = {'tom':'19991111','bob':'19982222'}
>>> (mobile['bob'])='19993333'
>>> print(mobile)
{'tom': '19991111', 'bob': '19993333'}
删除字典中的元素,使用del函数,语法如下:
del 字典名['键']
示例代码如下:
>>> mobile = {'tom':'19991111','bob':'19982222'}
>>> del (mobile['tom'])
>>> print(mobile)
{'bob': '19982222'}
本章博文到此结束,感谢阅读
来源:https://blog.51cto.com/14156658/2429630