Python中类型的概念(一)
本课程主要介绍6种Python语言中的类型:
数字类型、字符串类型、元组类型、列表类型文件类型、字典类型
1、数字类型
Python语言包括三种数字类型:整数类型、浮点数类型、复数类型
(1)整数类型
与数学中的整数概念一致,没有取值范围限制
pow(x, y)函数:计算xy.
(通过指数函数,可以看出,python语言整数类型没有范围限制)
(0x, 0X开头表示16进制数)
(0b, 0B开头表示2进制数 )
(0o, 0O开头表示8进制数)
(2)浮点数类型
带有小数点及小数的数字
Python语言中浮点数的数值范围存在限制,小数精度也存在限制。这种限制与在不同计算机系统有关
科学计数法使用字母“e”或者“E”作为幂的符号,以10为基数。科学计数法含义如下:
<a>e<b> = a * 10b
(以10为底)
(3)复数类型
与数学中的复数概念一致, z = a + bj, a是实数部分,b是虚数部分,a和b都是浮点类型,虚数部分用j或者J标识
示例:12.3+4j, -5.6+7j
三种类型存在一种逐渐“扩展”的关系:整数 -> 浮点数 -> 复数(整数是浮点数特例,浮点数是复数特例)
不同数字类型之间可以进行混合运算,运算后生成结果为最宽类型
三种类型可以相互转换函数:int(), float(), complex()
函数:type(x),返回x的类型,适用于所有类型的判断
(注意商和余数)
2、字符串类型
字符串是用双引号""或者单引号''括起来的一个或多个字符。
(1)字符串可以保存在变量中,也可以单独存在。
可以用type()函数测试一个字符串的类型
(需要引号)
(2)Python语言转义符: \
输出带有引号的字符串,可以使用转义符使用 \\ 输出带有转移符的字符串
(3)字符串是一个字符序列:字符串最左端位置标记为0,依次增加。字符串中的编号叫做“索引”
单个索引辅助访问字符串中的特定位置格式为<string>[<索引>]
Python中字符串索引从0开始,一个长度为L的字符串最后一个字符的位置是L-1,Python同时允许使用负数从字符串右边末尾向左边进行反向索引,最右侧索引值是-1
注意,出现区间时,指的是前闭后开区间
(4)联接
字符串之间可以通过+或*进行连接
加法操作(+)将两个字符串连接成为一个新的字符串
乘法操作(*)生成一个由其本身字符串重复连接而成的字符串
(5)len()函数能否返回一个字符串的长度
(6)转换
大多数数据类型都可以通过str()函数转换为字符串
(字符串的引号)
(7)实例:月份分割查询
1 months='JanFebMarAprMayJunJulAugSepOctNovDec' 2 n=input("输入月份:") 3 pos=(int(n)-1)*3 4 month=months[pos:pos+3] 5 print('月份简写是'+month)
一定要注意,input默认输入的数据类型是字符串,计算时需要强制转换成数字格式。
还有,字符串输出时直接相加就可以,数字输出时需要"%f".
(8)字符串处理方法
<1>大小写转化
<2>去首尾空格和首尾特定字符
(去掉首尾的空格)
(去首尾的字符)
<3>查找和拆分
(寻找和拆分)
<4>替换
(注意替换顺序,要替换的在前,变换后的在后)
<5>连接
1 >>> a='-' 2 >>> b='abc' 3 >>> c=['hello','world'] 4 >>> print(a.join(b)) 5 a-b-c 6 >>> print(''.join(c)) 7 helloworld 8 >>> print(' '.join(c)) 9 hello world
将a插入到b中,可以将空格插入。a.join(b)
<6>用转义符可以在字符串中表达一些不可直接打印的信息
>>> a='hello\nworld' >>> print(a) hello world
\n表示换行
3、元组的概念
元组是包含多个元素的类型,元素之间用逗号分割。
例如:t1 = 123,456, “hello”
元组可以是空的,t2=() 。元组包含一个元素时:t3=123,。元组外侧可以使用括号,也可以不使用
元组中元素可以是不同类型;一个元组也可以作为另一个元组的元素,此时,作为元素的元组需要增加括号,从而避免歧义。
元组中各元素存在先后关系,可以通过索引访问元组中元素。
与字符串一样,元组之间可以使用+号和*号进行运算。
>>> a='1223','456'
>>> a
('1223', '456')
>>> a=123,456,'789'
>>> a
(123, 456, '789')
>>> a=123,456,'789','abc'
>>> print(a)
(123, 456, '789', 'abc')
>>> b=123,456,('789','abc')
>>> print(b)
(123, 456, ('789', 'abc'))
>>> a[3]
'abc'
>>> b[2]
('789', 'abc')
>>> a+b
(123, 456, '789', 'abc', 123, 456, ('789', 'abc'))
>>> a[1:]
(456, '789', 'abc')
>>> a[2][1]
'8'
4、列表
(1)列表(list)是有序的元素集合;列表元素可以通过索引访问单个元素;
列表与元组类似:列表中每个元素类型可以不一样,访问列表中元素时采用索引形式
列表与元组不同:列表大小没有限制,可以随时修改
>>> vlist=[0,1,2,3,4]
>>> vlist*2
[0, 1, 2, 3, 4, 0, 1, 2, 3, 4]
>>> len(vlist)
5
>>> len(vlist[2:])
3
>>> for i in vlist[:3]:
print(i)
0
1
2
>>> 2 in vlist
True
>>> 5 in vlist
False
(2)列表相关方法
>>> vlist=[0,1,2,3,4]
>>> vlist.append('python')
>>> vlist
[0, 1, 2, 3, 4, 'python']
>>> vlist.reverse()
>>> vlist
['python', 4, 3, 2, 1, 0]
>>> vlist.sort()
Traceback (most recent call last):
File "<pyshell#53>", line 1, in <module>
vlist.sort()
TypeError: '<' not supported between instances of 'int' and 'str'
>>> vlist.index('3')
Traceback (most recent call last):
File "<pyshell#54>", line 1, in <module>
vlist.index('3')
ValueError: '3' is not in list
>>> vlist.index(3)
2
>>> vlist.index('python')
0
>>> vlist.pop(3)
2
>>> vlist
['python', 4, 3, 1, 0]
>>> vlist.insert(3,2)
>>> vlist
['python', 4, 3, 2, 1, 0]
>>> vlist.remove(2)
>>> vlist
['python', 4, 3, 1, 0]
>>> vlist.insert(3,'2')
>>> vlist
['python', 4, 3, '2', 1, 0]
>>> 'hello world'.split()
['hello', 'world']