Python 学习(2) ---- Python 数据类型
目录
- 数字类型
- 字符串
- print 输出
- import 语句
- 变量定义
- 数据类型
- 布尔类型
- List 列表
- Tuple 元组
- Set(集合)
- Dictionary(字典)
- bytes 类型
数字类型
Python
中有四种数字类型: 整数,布尔型,浮点和数字
int
: 没有 long
bool
: 只有 True
和 False
float
: 1.23
或者 1.2E-3
complex
: 实部加虚部,比如 1+2j
inta = 1000
floatb = 1.23
boolc = True
complexed = 1+2jprint("type inta:", type(inta))
print("type floatb:", type(floatb))
print("type boolc:", type(boolc))
print("type complexed",type(complexed))print("type inta isinstance:", isinstance(inta, int))
print("type floatb isinstance:", isinstance(floatb, float))
print("type boolc isinstance:", isinstance(boolc,bool))
print("type complexed isinstance:",isinstance(complexed, complex))
字符串
Python
中的 ’ 和 " 含义完全一样- 使用 ‘’’ 和 “”" 指定一个多行字符串
- 使用转义符 \
- 反斜杠用于转义 比如 \n,但是 r 可以不让 \ 产生转义,比如
r"this is a line\n"
不会换行 - 使用空格可以实现级联
"this" "is" "string" = "this is string"
- 字符串可以使用
+
连接, 使用*
字符串重复 Python
字符串有两种索引方式,从左到右从 0 开始,从右到左 -1 开始Python
中的字符串不能改变Pytho
n 中没有单独的字符类型,一个字符就是一个长度为1的字符串- 字符串切片
str[start:end]
start
(包含) 表示开启,end
(不包含)表示结束 - 字符串切片可以加上步长
step
, 词法格式是str[start:end:step]
print 输出
print
输出是默认换行的,如果不换行要加 end =""
import 语句
python
使用from... import
或者 import
来导入对应模块
将某个模块导入:
import somemodule
从模块中导入函数:
from somemodule import somefunction
从模块中导入多个函数:
from somemodule import firstfunction,second function,third function
导入模块中的所有函数:
from somemdoule import *
变量定义
Python
中的变量顶定义不需要指定类型,变量需要再使用前赋值,赋值之后变量才会被创建
可以连续的方式为变量赋值
a = b = c = 1
也可以为多个变量指定值
a,b,c = 1,2,"demo"# ==>
a = 1
b = 2
c = "demo"
数据类型
Python
中有 7
个标准数据类型:
Number
(数字)Tuple
(元组)Set
(集合)Dictionary
(字典)Bool
(布尔)String
(字符串)List
(列表)
不可变数据类型: 数字,元组,字符串
可变数据类型: 列表,字典,集合
Python
可以同时为多个变量赋值- 一个通过赋值指向不同类型的变量
- 数值除法包含两种: / 返回浮点数 // 返回一个整数
- 在混合运算中,
Python
会把整数转换为浮点数
布尔类型
bool
类型只有两个值True
和False
bool
类型是int
类型的子类,因此bool
可以被看做整数使用,True
的值等于1
- 布尔类型可以和其他类型进行比较,比如数字和字符串,比较时
True
的值为1
,False
的值为0
- 布尔类型可以转换为其他数据类型,此时
True
的值为1
,False
的值为0
- 可以使用布尔函数将其他类型的值转换为布尔值
在 Python
中,所有非空和非0的字符串、列表和元组类型都是 True
,只有0,空字符串,空列表被视为 False
因此在进行布尔类型的运算的时候,需要注意数据类型的真假性
a = True
b = Falseprint(type(a))
print(type(b))# bool
print(bool(0)) # false
print(bool(42))# true
print(bool(-42))# true
print(bool(""))# false
print(bool("hello"))# true
print(bool([]))# false
print(bool([1,2]))# true
print("==================================================================")
print(True and False) # false
print(True or False) # true
print(not False) # trueprint(5 > 3) # true
print(5 == 3) # false
List 列表
list
是 python
中使用最频繁的数据类型
列表中的原生类型可以不相同,它支持数字、字符串甚至包含列表
列表中的元素也是支持截取的,但是可字符串不同,列表中的元素可以改变
list
中内置了很多方法 比如 append()
,pop()
等
list
使用 []
进行定义
list = ["abcd", 786, 2.23, "runoob", 70.2]
print("list:", list)
print("list[0]:",list[0])
print("list[1:3]:",list[1:3])
print("list[4::-1]:",list[4::-1])list[1] = "hahah"
print("list:", list)
#list: ['abcd', 786, 2.23, 'runoob', 70.2]
#list[0]: abcd
#list[1:3]: [786, 2.23]
#list[4::-1]: [70.2, 'runoob', 2.23, 786, 'abcd']
#list: ['abcd', 'hahah', 2.23, 'runoob', 70.2]
Tuple 元组
元组和列表类似,不同之处在于元组的元素不能修改,元组写在 ()
里,元组之间用逗号隔开
元组中的类型可以不一致,tuple
里可以包含可变对象,比如 list
等
字符串可以看成一种特殊类型的元组
注意:
- 和字符串一样,元组的元素不能修改
- 元组也可以被索引和切片,方法是一样的
- 注意包含
0
个和1
个元素元组的特殊语法规则 - 元组可以使用
+
操作符进行拼接
元组(tuple
) 使用 ()
进行定义
# tuple 内的元素不可改变
# string 是一种特殊的 tuple
tuple = ("abcd", 786, 2.23, "runoob", 70.2)
tinytuple = (123, "runoob")onetuple = ("hello",)print(tuple)
print(tuple[0:4])
print(tuple[2:])
print(tuple + tinytuple)
print(tuple + tinytuple + onetuple)#('abcd', 786, 2.23, 'runoob', 70.2)
#('abcd', 786, 2.23, 'runoob')
#(2.23, 'runoob', 70.2)
#('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob')
#('abcd', 786, 2.23, 'runoob', 70.2, 123, 'runoob', 'hello')
Set(集合)
Python
中的 set
是一种无序的,可变的数据类型,用于存储唯一的元素
集合中的元素不可以重复,并且可以进行并集,差集,交集等集合运算
python
中集合使用 {}
,元素使用,进行分割
注意创建一个空集用() 而不是 {}
,用 {}
创建一个空字典
Set
使用 ()
# Set 元素内容不可重复
# Set 内的内容是无序的
# Set 可以实现集合操作
sites = {"Google", "Amazon", "baidu", "Google", "mircosoft"}
print(sites)if "taobao" in sites:print("taobao in sites")
else:print("taobao not in sites")a = set("orzhello")
b = set("world")# {'e', 'o', 'l', 'r', 'z', 'h'}
print("set a:",a)# a 和 b 交集
print( a & b)# a 和 b 并集
print( a | b)# in a not in b
print( a - b)print( a ^ b)"""
{'mircosoft', 'Amazon', 'Google', 'baidu'}
taobao not in sites
set a: {'h', 'l', 'r', 'o', 'e', 'z'}
{'o', 'l', 'r'}
{'w', 'd', 'h', 'l', 'r', 'o', 'e', 'z'}
{'z', 'e', 'h'}
{'w', 'd', 'e', 'z', 'h'}
"""
Dictionary(字典)
列表是有序对象的集合,集合是无序对象的集合,两种的区别在于: 字典中的元素是通过键来存取的,而不是通过偏移存取
字典是一种映射类型,字典用 {}
标记,它是一种无序的 键(key
):值(value
) 的集合
# diction 是无序对象的集合, diction 中的元素通过键值存取, 不是通过偏移
# dict 里的内容可以存取的
# dict 也是用 { }
dict = {}
dict["one"] = "hello"
dict[2] = "wangchen"print(dict)
print(dict.keys())
print(dict.values())tinydict = {"name":"wangchen", "telnumber":15251059623, "sites":"www.asrmicro.com"}print(tinydict)
print(tinydict["name"])
print(tinydict["sites"])tinydict["telnumber"] = 15651022367
print(tinydict)
"""
{'one': 'hello', 2: 'wangchen'}
dict_keys(['one', 2])
dict_values(['hello', 'wangchen'])
{'name': 'wangchen', 'telnumber': 15251059623, 'sites': 'www.asrmicro.com'}
wangchen
www.asrmicro.com
{'name': 'wangchen', 'telnumber': 15651022367, 'sites': 'www.asrmicro.com'}
"""
bytes 类型
python3
中的 bytes
类型表示的是不可变的二进制序列
和字符串不同的是,bytes
类型中的元素是整数(0 ~ 255 之间),而不是 unicode
字符
bytes 经常用来处理二进制数据,比如 图像文件,音视频文件等
和字符串类型,bytes 类型也支持很多操作和方法 比如 切片,拼接,查找和替换,同时由于 bytes 类型是不可变的
因此修改操作需要一个新的 bytes 类型