1.python3基本数据结构
1.1 数字类型
数字类型(number)分为布尔、整数、浮点数和复数。
布尔类型(bool)为True(1)和False(0)的组合。
bool1=True
bool2=False
注意:在Python2中是没有布尔型的,它用数字0表示False,用1表示True。到Python3中,把True和False定义成关键字了,但它们的值还是1和0,它们可以和数字相加。
- 整数类型(int)为整数
int=20
- 浮点数类型(float)为浮点数。
float=2.2
- 复数类型(complex)为复数,复数的实部a和虚部b都是浮点型
complex=1+4j
1.2 数字类型的方法
- 运算
# 数字类型运算
a = 1
b = 3
print(a + b)#加法
print(a - b)#减法
print(a / b)#除法
print(a * b)#乘法
print(a // b)#整除
print(a % b)#求余
print(a ** b)#乘方
输出为:
4
-2
0.3333333333333333
3
0
1
1
在混合计算时,Python会把整型转换成为浮点数。 例如:
a=1.0
b=2
print(a+b)
结果就是3.0了。
2.python3容器
- python的容器分为序列、映射以及集合。
2.1序列
- 序列(sequence)中的每个元素都有自己的编号。序列包括列表、元组、字符串等。
2.1.1 列表和元组
- 列表和元组都是一种类似的序列,区别是列表可以修改,元组不能修改。
- 列表(list),使用[,]建立列表
list1=['hello','world']
- 元组(tuple),使用(,)建立元组,只含一个值的元组,必须加个逗号(,);
t1=(1,2)
t2=1,2,3
t3=(1,)
2.1.2 字符串
- Python中的字符串用单引号(‘)、双引号(“)或三引号(三个单引号”’)括起来。而单双引号是为了去掉转义字符\的。字符串不能被改变,即不能向字符串某位赋值。
#这种情况下是一样的
a='str'
b="str"
c='''str'''
- 单引号
# 这种情况下不需要转义字符\
a='我"们"这个'
- 双引号
# 这种情况下不需要转义字符\
a="let's go"
- 三引号
# 这种情况下不需要转义字符\
a='''我们"这"'个' '''
# 这种情况下保留换行
a='''我
换
行
了'''
2.1.2.1 字符串方法
- 字符串不发生转义,使用r表示原始字符串
str="run\ner"
#这样会输出run
# er
str=r"run\ner"
#这样会输出run\ner
- 格式化
1.字符串格式化使用字符串格式化操作符即百分号%来实现。
str1='Hello,%s' % 'world.'
2.格式化操作符的右操作数可以是任何东西,如果是元组,则如下:
strs=('Hello','world') #元组
str1='%s,%s' % strs
3.对数字进行格式化处理,通常需要控制输出的宽度和精度:
str1='%.2f' % 3.1415926 #精度2
str1='%10f' % 3.1415926 #字段宽10
2.1.3 序列通用方法
- 索引
索引值以 0 为开始值,-1 为从末尾的开始位置。
str1='Hello'
nums=[1,2,3,4]
t1=(123,234,345)
print(str1[0])
print(nums[1])
print(t1[2])
输出为:
H
2
345
- 分片
分片操作用来访问一定范围内的元素。分片通过冒号相隔的两个索引来实现。
nums='1234567890'
print(nums)
print(nums[1:5])
print(nums[1:])
print(nums[-3:-1])
print(nums[-3:])
print(nums[:]) #复制整个序列
输出为:
1234567890
2345
234567890
89
890
1234567890
默认步长为1,可以对步长进行调节。
print(nums)
print(nums[0:10]) # 默认步长为1 等价于nums[1:5:1]
print(nums[0:10:2]) # 步长为2
print(nums[0:10:3]) # 步长为3
print(nums[0:10:0]) #步长为0
print(nums[-3:-1:-1]) # 步长为-2
输出为:
1234567890
1234567890
13579
1470
- 序列相加
序列相加只能相同类型的序列进行相加。
str1='Hello'
str2='world'
print(str1+str2)
lista=[1,2]
listb=[3,4]
print(lista+listb)
输出为:
Helloworld
[1, 2, 3, 4]
- 乘法
使用*符号对序列进行叠加。
str1='Hello'
print(str1*2)
输出为:
HelloHello
- 成员资格
in运算符会用来检查一个对象是否为某个序列(或者其他类型)的成员(即元素):
str1='Hello'
print 'H' in str1
print 'h' in str1
输出为:
True
False
- 长度、最小最大值
通过内建函数len、max和min可以返回序列中所包含元素的数量、最大和最小元素。
str1='Hello'
print len(str1)
print max(str1)
print min(str1)
输出为:
5
o
H
2.2 字典
- 字典是一种映射类型,字典用”{ }”标识,它是一个无序的键(key) : 值(value)对集合。
键(key)必须使用不可变类型,即数字、字符串、元组。
在同一个字典中,键(key)必须是唯一的。
代码如下:
a={}
a[1]=1
a['a']='a'
a[(1,2)]=1
a[2]=set([1,2])
print(a)
b={'2':'a',3:3}
print(b)
输出为:
{(1, 2): 1, 1: 1, 2: {1, 2}, 'a': 'a'}
{3:3,'2':'a'}
2.3 集合
- 集合(set)是一个无序不重复元素的序列。
会自动删除重复元素。
代码如下:
seta=set([1,2,3])
setb={2,3}
print(seta,setb)
输出为:
{1, 2, 3} {2, 3}
2.3.1 集合方法
a={1,2,3}
b={2,3,4}
print(a - b) # a和b的差集
print(a | b) # a和b的并集
print(a & b) # a和b的交集
print(a ^ b) # a和b中不同时存在的元素
输出为:
{1}
{1, 2, 3, 4}
{2, 3}
{1, 4}
3.总结
- 总结速查表格
类型 | 子类型 | 构建方式 | 表达含义 |
---|---|---|---|
数字类型 | bool布尔类型 | True False | 判定True、False |
数字类型 | int类型 | a=2 | 整数 |
数字类型 | float | a=2.0 | 浮点数 |
数字类型 | complex | a=1+2j | 复数 |
容器-序列 | 列表list | a=[1,2] | 可变的序列 |
容器-序列 | 元组tuple | a=(1,2) | 不可变的序列 |
容器-序列 | 字符串string | a=’abcd’ | 方便使用的序列 |
容器-字典 | 字典类型dict | a={‘1′:’a’} | 主键唯一的键值对 |
容器-集合 | 集合类型set | a=set([a,b])或a={a,b} | 元素不重复的集合 |