day3
python基本数据类型
整型(int),浮点型(float),字符串(String),布尔型(bool)
多变量赋值
a = b = c = 1
也可以将多个值分别赋给不同的变量
a , b , c = 1 , 2 , ‘abc’
a=1,b=2,c=‘abc’
标准数据类型
python3 中有六种标准的数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
六种标准数据中
不可变数据:Number,String,Tuple
可变数据:List,Dictionary,Set
判断数据类型
- type()
- isinstance
type(x) 返回x的数据类型
isinstance(x,int) 返回 true/false
type 和 isinstance 的区别在于
- type() 不会认为子类是一种父类类型
- isinstance() 会认为子类是一种父类类型
Number
python3支持int、float、bool、complex
当指定一个变量的值时,Number值就会被创建
var1 = 1
可以使用del
关键字,删除一些对象使用
del var1
del var1, var2
关于数值运算
- 加法
- 减法
- 乘法
- / 除法 得到一个浮点数,类似自然运算
- % 取余
- // 除法,只记录整数 取整
- ** 乘方 2 ** 3 => 8
注意
-
python可以同时为多个变量赋值,如 a,b = 1,2
-
一个变量可以通过赋值指向不同类型的对象,即一个变量可以进行不同类型数值的赋值操作
-
除法中,
/
返回浮点数,//
返回整数 -
在进行混合计算时,python会把整型转为浮点数
a=1 print(a) a = "abc" print(a)
除法
a = 10 print(a/3) # 3.333333 print(a//3) # 3
String(字符串)
具体内容见day2
字符串截取:变量名[头下标:尾下标]
List(列表)
List 是 python 中使用最频繁的数据类型
列表可以实现大多数集合类的数据结构实现,列表内的数据类型可以不同,支持数字、字符等,包括列表嵌套
列表是写在[]
之间,用逗号分隔的元素列表
列表可以被索引和截取,被截取后返回一个包含所截取元素的新列表
列表截取:变量[头下标:尾下标]
关于索引:同字符串,0为开始下标,-1为末尾开始的下标
0 1 2 3 4
-5 -4 -3 -2 -1
简单举例
list = ['abc' , 785 , 'a' , 70.5 ]
list2 = ['12a' , 'hello' ]
print(list) # 完整打印
print(list[0])
print(list[1:3])
print(list[1:])
print(list * 2) # 输出 2 次
print(list + list2) # 字符串连接
list 列表可以对列表内元素进行操作
a = [1 , 2 , 3]
a[1] = 3 # [1 , 3 , 3]
list 列表截取可以是三个参数,即变量名[头下标:尾下标:步长]
,在截取第一个之后,隔n个元素后再次截取,并返回一个新的列表
list = [0,1,2,3,4,5]
print(list[0:5:2]) # [0 , 2 , 4]
如果三个参数为复数,则表示逆向读取,可以用于翻转字符串等操作
List 列表内置了很多操作方法,如 append()、pop() 等
Tuple(元组)
元组与 List 列表功能基本一致,不同之处在于
-
元组内元素不可修改
-
初始化时使用
()
-
元组可以包含可变元素,如 List 列表
tup1 = () # 空元组 tup2 = (20, ) # 一个元素,也需要在元素后加逗号
tips: String、List、Tuple都属于序列 Sequence
Set(集合)
集合是由一个或多个形态各异的大小整体组成的,构成集合的事物或对象称为元素或成员
基本功能是进行成员关系测试和删除重复元素
集合的存储是无序的
初始化
使用{}
或者set()
函数创建集合,在创建一个空集合时,必须使用set()
parame = {value1,value2}
set(value)
# 创建的对象存在重复元素时,会被自动删除
# 集合的存储是无序的
成员测试
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Zhihu' in sites :
print(1)
else :
print(2)
集合运算
a = set('abracaabd')
b = set('alaczam')
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
# 返回结果为字符集合,对比内容为每个字符
Dictionary(字典)
列表时有序的对象集合,字典为无序的对象集合,类似java中的Map集合。
字典中的元素需要通过 键(key) 来获取,不能通过下标。
字典是一种映射类型,用{}
来标识,内部存放键(key):值(value)
。键(key) 必须是不可变类型,同一字典中,键必须唯一。
dict = {}
dict['one'] = "1 - python"
dict[2] = "2 - resources"
tinydict = {'name':'zhangsan',"site":"www.baidu.com"}
print(dict['one']) # 打印键为 'one' 的值
print(dict[2]) # 打印键为 2 的值
print(tinydict) # 打印完整字典
print(tinydict.keys()) # 打印所有键
print(tinydict.values()) # 打印所有的值
tips:
-
字典名.keys() 获取所有键,并返回
dict_keys(['name', 'site'])
-
字典名.values() 获取所有值,并返回
dict_values(['zhangsan', 'www.baidu.com'])
字典的构造函数 dict()
dict([('a',1),('b',2),('c',3)])
dict(a=1,b=2,c=3)
{x : x**2 for x in (2,4,6)} # {2:4,4:16,6:36}
字典的内置函数包括 clear() 、keys()、values() 等
简单总结:
- Number 数字类型数据,不可改
- String 字符串类型数据,不可改
- Tuple 元组,不可变数组,元素不可改
- List 列表,可变数组
- Set 集合,可变集合,主要用于数组数据的比较和快速查找
- Dictionary 字典,类似 java 的 Map 集合