数据类型:
Python 3.0版本中常见的数据类型有六种:
不可变数据类型 | 可变数据类型 |
Number(数字) | List(列表) |
String(字符串) | Dictionary(字典) |
Tuple(元组) | Set(集合) |
其中Number(数字类型)分为四种:
数字类型
整形:
在Python 3里,只有一种整数类型 int,表示长整型,取消了python2中的Long类型。
type函数:type函数会返回type类型的值,表示参数的数据类型,例如
>>> a = 1
>>> print(a)
<class 'int'>
>>> print(type(a))
<class 'type'>
isinstance函数:isinstance也是用于判断变量类型的,包括两个参数,函数会返回布尔类型
>>> a = 1
>>> isinstance(a, int)
True
id函数:id函数用来返回这个变量值的内存地址
>>> a = 1
>>> print(id(a))
2679027466480
浮点型:
表示小数,带有小数点的数字类型的就是浮点型
>>> b = 1.5
>>> print(b)
1.5
科学计数法表示浮点型数据:
>>> e = 3.1416e-4
>>> f = 3.1416e4
>>> print(e)
0.00031416
>>> print(f)
31416.0
布尔型:
布尔型有两种:真(True),假(False),如下是布尔型的逻辑运算与强制类型转换实例
>>> e = 3.1416e-4
>>> f = 3.1416e4
>>> print(e == f)
False
>>> print(type(e) == type(f))
True
>>> a = True
>>> b = False
>>> print(a and b)
False
>>> print(a or b)
True
>>> print(not a)
False
>>> print(int(a))
1
>>> print(float(b))
0.0
>>> print(str(a))
"True"
在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为True,0、空字符串、空列表、空元组等被视为False。因此在强制类型转换的时候要注意。
复数型:
复数包括实部+虚部,其中虚数i表示
>>> g = 3+1j
>>> print(g*g)
(8+6j)
数据的操作:
数值运算:
>>> 1 + 1 # 加法
2
>>> 2.3 - 2 # 减法
0.3
>>> 3 * 7 # 乘法
21
>>> 2 / 4 # 除法,得到一个浮点数
0.5
>>> 2 // 4 # 除法,得到一个整数
0
>>> 8 % 3 # 取余
2
>>> 2 ** 4 # 乘方
16
多变量赋值:
>>> a, b = 1.2, 1
>>> print(a)
1.2
>>> print(b)
1
字符串:
Python中的字符串用单引号或双引号括起来,还可以用三引号括起来表示多行字符串,同时使用反斜杠符号(\)转义特殊字符,如果不想表示转义就在字符串前面加上r,就表示原始字符。例如:
>>> str = "hello\nHow are you"
>>> print(str)
hello
How are you
>>> rstr = r'hello\nHow are you'
>>> print(rstr)
hello\nHow are you
>>> moreStr = """
>>> hi
>>> Im LiHua
>>> Im twenty years old
>>> """
>>> print(moreStr)
hi
Im LiHua
Im twenty years old
字符串格式化:
字符串中的 {} 组成了一种格式化字符串的机制,称为字符串格式化或字符串插值。这种机制允许你将变量的值以及其他表达式的结果插入到字符串中,从而动态地构建字符串。在字符串中,{}表示一个占位符,程序运行时它会被替换为相应的值。例如使用format方法:
>>> name = "Alice"
>>> age = 30
>>> sentence = "My name is {}, and I am {} years old.".format(name, age)
>>> print(sentence)
My name is Alice, and I am 30 years old.
还可以使用f-string方法:
>>> name = "Bob"
>>> age = 25
>>> sentence = f"My name is {name}, and I am {age} years old."
>>> print(sentence)
My name is Bob, and I am 25 years old.
字符串截取与拼接
字符串截取格式:变量[开始下标:末尾下标],末尾下标不写就表示到末尾,为-1表示到倒数第二个字符的位置。例如:
>>> str = 'This is a string'
>>> print(str[0:])
This is a string
>>> print(str[8:])
a string
>>> print(str[0:-1])
This is a strin
>>> print(str[5:7])
is
>>> pstr = 'created by me'
>>> print(str + ' ' + pstr)
This is a string created by me
注意:字符串不能更改任何值,不同与C语言,在python中str[1] = 'j'为非法操作。
List(列表型)
列表是一个包含多个元素的数据类型,是写在方括号[]之间、用逗号分隔开的元素列表。和,例如:列表中元素的类型可以不相同,它支持几乎所有的数据类型,甚至可以在列表中嵌套列表。
>>> my_list = [1, 2, 3, 4, 5]
>>> print(my_list)
[1, 2, 3, 4, 5]
>>> mixed_list = ['apple', 3.14, True, 'banana']
>>> print(mixed_list)
['apple', 3.14, True, 'banana']
>>> nested_list = [[1, 2], [3, 4], [5, 6]]
>>> print(nested_list)
[[1, 2], [3, 4], [5, 6]]
与字符串一样,列表同样可以被索引,截取,拼接,列表被截取后返回一个包含所需元素的新列表。例如:
>>> my_list = [1, 2, 3, 4, 5]
>>> print(my_list[0]) # 访问第一个元素
1
>>> print(my_list[1:3]) # 获取索引1到2的元素(不包括索引3)
[2, 3]
>>> add_list = [6, 7, 8, 9, 10]
>>> print(my_list + add_list)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
列表是可变的,可以通过索引来修改、添加和删除元素。
>>> my_list[0] = 10 # 修改第一个元素的值
>>> print(my_list)
[10, 2, 3, 4, 5]
>>> my_list.append(6) # 在列表末尾添加一个元素
>>> print(my_list)
[10, 2, 3, 4, 5, 6]
>>> del my_list[1] # 删除索引为1的元素
>>> print(my_list)
[10, 3, 4, 5, 6]
Tuple(元组型):
元组是另一种有序的数据类型,类似于List(列表)可以说是一直特殊的列表。不同之处在于元组的元素不能修改,元组写在小括号()里,元素之间用逗号隔开。其余都一样。例如:
>>> tup1 = ('physics', 'chemistry', 1997, 2000)
>>> tup2 = (1, 2, 3, 4, 5 )
>>> print(tup1[0])
'physics'
>>> print(tup2[1:5])
(2, 3, 4, 5)
元组虽然类似于列表,但是元组一旦创建,其中的元素就不能修改,所以Python会优化内存,因此运行速度相对于列表会更快。
Set(集合型):
集合是一个无序且不重复的元素集合,用大括号{}或set()函数创建,集合中的元素不可重复。集合常见的用途包括成员测试和删除重复数据。例如:
>>> set1 = {1, 2, 3, 4, 5}
>>> set2 = set("hello")
>>> print(set1)
{1, 2, 3, 4, 5}
>>> print(set2)
{'o', 'h', 'l', 'e'}
集合也支持集合间的运算,如并集、交集、差集等。
>>> set1 = {1, 2, 3}
>>> set2 = {3, 4, 5}
>>> print(set1 | set2) # 并集
{1, 2, 3, 4, 5}
>>> print(set1 & set2) # 交集
{3}
>>> print(set1 - set2) # 差集
{1, 2}
注意:集合是可变的,但是集合中的元素必须是不可变的,例如可以包含整数、浮点数、元组等,但不能包含列表、字典等可变类型。
Dictionary(字典型):
字典是另一种可变容器模型,里面存储的是键值对,且可存储任意类型对象。字典的每个键值对用冒号(:)分割,每个键值对之间用逗号(,)分割,整个字典包括在花括号{}中。且字典中的键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串、数字或元组。例如:
>>> dict = {'Name': 'John', 'Age': 25, 'Class': 'First'}
>>> print(dict['Name'])
John
>>> dict['Age'] = 26
>>> print(dict['Age'])
26