常用的数据类型有数值、字符串、布尔、元组、列表、字典和集合
数值
数值类型包括整型、长整型、浮点型和复数型
整型取值范围到-231— +231,类型为int
长整型会在数值后加个"L"或者“l”,类型为long
十六进制会在数值前加“0x"
python下使用type(a)命令查看变量的类型,a为变量名
浮点型为带小数的数值,类型为float
复数类型为complex,数值后有个“j”
字符串
字符串有三种定义方法:
- 单引号,a=‘abc’
- 双引号,a=“abc”
- 三引号,a=’’‘abc’’’
三引号还可以作为注释来使用
字符串类型为str
字符串可以通过索引和切片取字符
如:a=“abcdef”
a[3]=“d”
a[1:3]=“bc”
布尔
0,1 True, False 是 bool类型
空是False , 其他是True
0是False, 1是True , 其他也归于 True
元组
字符串、列表和元组都是序列
序列的两个主要特点是索引操作和切片操作
- 索引操作可以从序列中抓取一个特定项目
- 切片操作能够获取序列的一个切片,即一部分序列
序列的基本操作
- len(): 序列的长度 如:len(‘abcdef’) = 6
- +: 连接两个序列 如:‘abc’+‘def’ = ‘abcdef’
- *:重复序列元素 如:‘ab’*2 = ‘abab’
- in: 判断元素是否在序列中 如:‘a’ in ‘abc’ = True
- max():返回最大值 如: max(‘564897’) = ‘9’
- min():返回最小值 如:min(‘564897’) = ‘4’
- cmp(x,y):比较两个序列是否相等 如:cmp(‘adc’,‘adc’) = 0 (0代表相等,-1代表不相等)
元组和列表相似,都不可变
元组(tuple)使用小括号表示 如:t=() t=(2,) t=(‘abc’,‘DEF’,234)
当元组只有一个元素时需要在后边添加一个',',用来标记为元组,而不是数值或者字符串
元组可以拆分,把元组的元素赋值给变量
如:t=(1,2,3) a,b,c=t 则 a=1,b=2,c=3
列表
列表(list)是处理一组有序项目的数据结构,既可以在列表中存储一个序列项目
列表是可变类型数据,使用中括号来表示
如:list1=[] list2=list() list3=[‘a’,1,2]
列表操作
- 取值 切片和索引
- 添加 list.append(‘a’)
- 删除 del list[2] list.remove(list[3])
- 修改 list[]=x
- 查找 var in list
list的方法
- list.append(3) 追加元素
- list.insert(2,‘d’) 插入元素
- list.sort() 元素排序
- list.reverse() 元素翻转
- list.pop(2) 取出元素(列表中取出索引为2的元素,会删除该元素)
- list.remove(‘b’) 删除元素
- list.extend(‘d’) 扩展元素(可以添加可迭代变量)
字典
字典是python中的唯一映射类型(哈希表),使用大括号来表示,如 dic={} dic={‘name’:‘mike’,‘age’:23}
字典对象是可变的,但字典的键必须使用不可变对象,一个字典中可以使用不同的键值。
字典的方法:
dic={‘a’:1,2:‘b’,(3,4):‘c’}
- keys() 输出字典中的key 如:dic.keys() 输出 [‘a’, 2, (3, 4)]
- values() 输出字典中的value 如: dic.values() 输出 [1, ‘b’, ‘c’]
- items() 列出key-value对 如: dic.items() 输出 [(‘a’, 1), (2, ‘b’), ((3, 4), ‘c’)]
- get() 输出对应key的value值 如: dic.get(‘a’) 输出 1
- has_key() 判断字典中是否有该key 如: dic.has_key(2) 输出 True
- copy() 复制字典 如: dic1=dic.copy()
- pop() 取出该key的value值并删除该k-y对 如: dic.pop(2) 输出 ‘b’,dic字典中没有了(2,‘b’)这个键值对
练习1:
将 “123” 转换成整数
a = "123"
int(a)
将 “9999999999999999999” 转换成长整数
a = “9999999999999999999”
int(a)
将 “3.1415926” 转换成一个浮点数
a = “3.1415926”
float(a)
将 123 转换成一个字符串
a = 123
str(a)
现有以下字符串
字符串1:" abc deFGh&ijkl opq mnrst((uvwxyz "
字符串2:" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(&YZ "
使用字符串的各种方法转换成如下方式
ABCDEFGHIJKLMNOPQRSTUVWXYZzyxwvutsrqponmlkjihgfedcba
a=" abc deFGh&*ijkl opq mnrst((uvwxyz "
b=" ABC#DEF GH%IJ MNOPQ KLRS&&TUVWX(*&YZ "
l1=list(b)
l1.sort()
l2=list(a.lower())
l2.sort(reverse=True)
"".join(l)[-26:]+"".join(l2)[:26]
练习2:
现有列表
list1 = [‘XXXX’, ‘b’, 3, ‘c’, ‘&’, ‘a’, 3, ‘3’, 3, ‘aa’, ‘3’, ‘XXXX’]
list2 = [‘e’, ‘f’, ‘g’]
要求对其做以下操作:
- 取出 ‘XXXX’ 中间的部分,形成一个新的列表list3
list3 = list1[1:-1]
- 对list3 做一下几部操作
1)删除特殊符号
list3.remove('&')
2)统计 3 在list3中出现的次数
list3.count(3)
3)用最简短的代码去除list3中 26个字母以外的元素(要求只能对list3操作)
4)对list3排序
list3.sort()
5)在末尾追加’d’,并把list2追加到list3
list3.append('d')
list3.extend(list2)
练习3:
现有两个变量
a = (‘h’,)
b = (‘h’)
1)将a和b分别追加到上一题的list3中,观察有什么区别
list3.append(a)
list3.append(b)
a为元组,b为字符串
2)将1生成的list3转换成元组(扩展:自己搜索方法)
tup = tuple(list3)
3)打印出只有一个元素’h’的元组,在2中生成的元组中的索引
tup.index(('h',))