Python3 基本数据类型
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在 Python 中,变量没有类型, "类型"是变量所指的内存中对象的类型。(简单的认为:变量存储的是内存中对象内存地址)。
使用等号(=)来给变量赋值。
给多个变量赋值的方式:
示例1:a = b = c = 1——创建一个整型对象,值为1,三个变量被分配到相同的内存空间上。
示例2:a, b, c = 1, 2, "abc"——两个整型对象 1 和 2 的分配给变量 a 和 b,字符串对象 "abc" 分配给变量 c。
标准数据类型
Python3 中有六个标准的数据类型:①Number(数字)②String(字符串)③List(列表)④Tuple(元组)⑤Sets(集合)⑥Dictionary(字典)。
Number(数字):Python3 支持 int、float、bool、complex(复数)。
在创建一个变量并赋值时,Number对象就会被创建。
查询变量所指的对象类型:type()、isinstance()。
两者区别:type()不会认为子类是一种父类类型。isinstance()会认为子类是一种父类类型。
示例:
输入:a, b, c, d = 10, 1.1, True, 1+2j
print(type(a), type(b), type(c), type(d))
e = 11
print(isinstance(a, int),isinstance(b, int),(a, int)
输出:<class 'int'> <class 'float'> <class 'bool'> <class 'complex'>
True False (10, <class 'int'>)
删除变量:del语句删除对象引用(简单认为:删除的是地址,同时地址指向的对象也被删除)。
del语句的语法是:del var1[,var2[,var3[....,varN]]]]
也可以通过使用del语句删除单个或多个对象:
del var
del var_a, var_b
数值运算
输入:
a=5+4 # 加法 b=4.3-2 # 减法 c=3*7 # 乘法 d=2/4 # 除法,得到一个浮点数 e=2//4 # 除法,得到一个整数 f=17 % 3 # 取余 g=2**5 # 乘方 print(a,b,c,d,e,f,g)
输出:9 2.3 21 0.5 0 2 32
注意:
1、Python可以同时为多个变量赋值,如a, b = 1, 2。
2、一个变量可以通过赋值指向不同类型的对象。
3、数值的除法(/)总是返回一个浮点数,要获取整数使用//操作符。
4、在混合计算时,Python会把整型转换成为浮点数。
String(字符串)
Python中的字符串用单引号(')或双引号(")括起来,同时使用反斜杠(\)转义特殊字符。
字符串的截取的语法:变量[头下标:尾下标]
索引值:从前往后以0为开始值,从后往前以-1为开始值。
加号 (+) 是字符串的连接符, 星号 (*) 表示复制当前字符串,紧跟的数字为复制的次数
示例:
输入:
str = 'Runoob' print (str) # 输出字符串 print (str[0:-1]) # 输出第一个到倒数第二个的所有字符 print (str[0]) # 输出字符串第一个字符 print (str[-1]) # 输出字符串最后一个字符 print (str[2:5]) # 输出从第三个开始到第五个的字符 print (str[2:]) # 输出从第三个开始的后的所有字符 print (str * 2) # 输出字符串两次 print (str + "TEST") # 连接字符串
输出:Runoob
Runoo
R
noo
noob
RunoobRunoob
RunoobTEST
b
Python3中使用反斜杠(\)转义特殊字符,若不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串。
示例:
输入:
print('Ru\noob')
print(r'Ru\noob')
输出: Ru
oob
Ru\noob
另外,反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行。
注意,Python 没有单独的字符类型,一个字符就是长度为1的字符串。
String(字符串)总结:
1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起,用*运算符重复。
3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
4、Python中的字符串不能改变。
List(列表)
网络总结显示:List(列表)是Python语言编程中使用最频繁的数据类型。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。如:
list1 = ['Teacher', 'Student', 1997, 2000];
list2 = [1, 2, 3, 4, 5 , 6, 7];
list3 = ["a", "b", "c", "d"];
与字符串的索引一样,列表索引从0开始。
1、访问列表中的值:
使用下标索引来访问列表中的值,也可以使用方括号的形式截取字符:
示例:
输入:
list1 = ['teacher', 'Student', 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print ("list1[0]: ", list1[0])
print ("list2[1:5]: ", list2[1:5])
输出: list1[0]: Baidu
list2[1:5]: [2, 3, 4, 5]
2、更新列表:
可以对列表的数据项进行修改或更新,也可以使用append()方法来添加列表项。
对列表的数据项进行修改或更新示例:
输入:
list = ['teacher', 'Student', 1997, 2000] print ("第三个元素为 : ", list[2]) list[2] = 2001 print ("更新后的第三个元素为 : ", list[2])
输出: 第三个元素为 : 1997
更新后的第三个元素为 : 2001
append()方法:
append() 方法用于在列表末尾添加新的对象。
语法:list.append(obj) 注:参数“obj” -- 添加到列表末尾的对象
append()方法无返回值,但是会修改原来的列表。
示例:
输入:
list1 = ['teacher', 'Student', 1997, 2000] list1.append('Baidu') print ("更新后的列表 : ", list1)
输出: 更新后的列表 : ['teacher', 'Student', 1997, 2000, 'Baidu']
List(列表)总结:
1、List写在方括号之间,元素用逗号隔开。
2、和字符串一样,list可以被索引和切片。
3、List可以使用+操作符进行拼接。
4、List中的元素是可以改变的。
Tuple(元组)
元组(tuple)列表类似,不同之处在于元组的元素不能修改。元组写在小括号(())里,元素之间用逗号隔开。元组中的元素类型也可以不相同。
元组与字符串类似,可以被索引且下标索引从前往后以0为开始值,从后往前以-1为开始值。也可以进行截取。
可以把字符串看作一种特殊的元组。
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含0个或1个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号。
String(字符串)、list(列表)和tuple(元组)都属于sequence(序列)。
Set(集合)
集合(set)是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号{ }或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{ },因为{ }是用来创建一个空字典。
示例:
输入:
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'} print(student) # 输出集合,重复的元素被自动去掉 # 成员测试 if('Rose' in student) : print('Rose 在集合中') else : print('Rose 不在集合中') # set可以进行集合运算 a = set('abracadabra') b = set('alacazam') print(a) print(b) print(a - b) # a和b的差集 print(a | b) # a和b的并集 print(a & b) # a和b的交集 print(a ^ b) # a和b中不同时存在的元素
输出: {'Mary', 'Tom', 'Jack', 'Rose', 'Jim'}
Rose 在集合中
{'c', 'd', 'b', 'r', 'a'}
{'m', 'l', 'c', 'z', 'a'}
{'r', 'd', 'b'}
{'m', 'l', 'c', 'd', 'b', 'r', 'z', 'a'}
{'c', 'a'}
{'m', 'l', 'd', 'b', 'r', 'z'}
Dictionary(字典)
字典是另一种可变容器模型,且可存储任意类型对象。
1、创建字典
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中:
d = {key1 : value1, key2 : value2 }
键必须是唯一的,但值则不必。
值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
dict1 = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict2 = { 'abc': 456 };
dict3 = { 'abc': 123, 98.6: 37 };
2、访问字典里的值
把相应的键放入熟悉的方括弧。如果用字典里没有的键访问数据,会输出错误:
示例:
输入:
dict = {'Name': 'Jim', 'Age': 18, 'Sex': 'male'}
print ("dict['Name']: ", dict['Name'])
print ("dict['Age']: ", dict['Age'])
print ("dict['Alice']: ", dict['Alice'])
输出: dict['Name']: Jim
Traceback (most recent call last):
File "D:/ideaworkspace/Test.py", line 4, in <module>
dict['Age']: 18
print ("dict['Alice']: ", dict['Alice'])
KeyError: 'Alice'
3、修改字典
向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对。
示例:
输入:
dict = {'Name': 'Jim', 'Age': 18, 'Sex': 'male'}
dict['Sex'] = "female "; # 更新 Sex
dict['School'] = "qinghuadaxue" # 添加信息
print ("dict['Sex']: ", dict['Sex'])
输出: dict['Sex']: female
dict['School']: qinghuadaxue
4、删除字典元素
能删单一的元素也能清空字典,清空只需一项操作。显示删除一个字典用del命令
示例:
输入:
dict = {'Name': 'Jim', 'Age': 18, 'Sex': 'male'}
del dict['Name'] # 删除键 'Name'
dict.clear() # 删除字典
del dict # 删除字典
print ("dict['Age']: ", dict['Age'])
print ("dict['Sex']: ", dict['Sex'])
输出: Traceback (most recent call last):
File "D:/ideaworkspace/video.py", line 147, in <module>
print ("dict['Age']: ", dict['Age'])
TypeError: 'type' object is not subscriptable
5、字典键的特性
字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的。但键不行:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会覆盖前一个,记住的只有后一个值。
2)键必须不可变,所以可以用数字,字符串或元组。
6、字典内置函数&方法
1)Python字典包含的内置函数:
len(dict)——计算字典元素个数,即键的总数。
str(dict)——输出字典,以可打印的字符串表示。
type(variable)——返回输入的变量类型,如果变量是字典就返回字典类型。
2)Python字典包含了以下内置方法:
radiansdict.clear()——删除字典内所有元素
radiansdict.copy()——返回一个字典的浅复制
radiansdict.fromkeys()——创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
radiansdict.get(key, default=None)——返回指定键的值,如果值不在字典中返回default值
key in dict——如果键在字典dict里返回true,否则返回false
radiansdict.items()——以列表返回可遍历的(键, 值) 元组数组
radiansdict.keys()——以列表返回一个字典所有的键
radiansdict.setdefault(key, default=None)——和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
radiansdict.update(dict2)——把字典dict2的键/值对更新到dict里
radiansdict.values()——以列表返回字典中的所有值
pop(key[,default])——删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
popitem()——随机返回并删除字典中的一对键和值。