Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
标准数据类型
Python3 中有六个标准的数据类型:
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)
Number例子:Python3 支持 int、float、bool、complex(复数)。在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
1 import sys #引入sys模块 2 num1 = 10 3 num2 = 1000000000000000000 #python整型是没有限制大小的,可以当作Long类型使用,所以Python3没有Python2的Long类型 4 num3 = 10.5 5 num4 = True 6 num5 = 3.14 7 num6 = 3.14j 8 9 10 #1、当把一个常量赋给一个变量后,python可以通过 sys 模块的 getsizeof 去查看变量所占的内存空间。 11 print(sys.getsizeof(num1)) #查看占用多少字节 12 print(sys.getsizeof(num2)) 13 print(sys.getsizeof(num3)) 14 print(sys.getsizeof(num4)) 15 print(sys.getsizeof(num5)) 16 print(sys.getsizeof(num6)) 17 18 19 #2、当你需要知道变量存放的空间时,可以使用type()方法。 20 print(type(num1)) #查看字符类型 21 print(type(num2)) 22 print(type(num3)) 23 print(type(num4)) 24 print(type(num5)) 25 print(type(num6))
String例子:Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
1 # str1 = 'hello' ;str2 = 'world' #在python中 ; 号表示一行里面可以分隔多行语句 2 # print(str1,str2) 3 # str3 = '''haha 4 # ha''' 5 # print(str3) 6 # str4 = """hello python 7 # hello world""" 8 # print(str1,str2,str3,str4) 9 10 11 #字符串操作、切片、变量[头下标:尾下标] 12 str = 'ilovepython' 13 print(str[1:5]) #包前不包后,下标从0开始数 14 print(str[5:]) #切片技术,下标从5开始一直往后 15 print(str[:-6]) #ilove 16 print(str[3:-4]) #vepy 17 print(str[8:-6]) #两个域冲突不包含时,则显示空 18 19 20 # 运算符 21 print(str * 2) 22 print(str + 'test') 23 # 字符串方法 24 print(str.capitalize()) 25 print(str.lower()) 26 print(str.upper()) 27 # replace(self,__old,__new,__count); 28 print(str.replace('o','a',1)) 29 30 # 字符串格式化 31 str03 = 'Hi %s' 32 str03 = str03%'xiaohong' 33 print(str03) 34 str04 = 'xiaomei' 35 print('hello,%s'%str04) 36 print('%d + %d = %d'%(1,2,1+2)) 37 print('%x'%88) #转换十六进制%x 38 print('h%5dh'%90) #右对齐空5个宽度 39 print('h%-5dh'%90) #-号表示左对齐空5个宽度 40 print('h%05dh'%90) #右对齐空个宽度并用0补齐 41 print('h%5.2dh'%78.8888) #右对齐整数保留2位%d 42 print('h%5.2fh'%78.8888) #右对齐保留2位小数%f 43 print('h%-5.1fh'%78.8888)#右对齐保留一位小数
List列表:是一种有序和可更改的集合。允许重复的成员。
1 #列表的基本操作 2 lista = [10,'hello',10.5,[1,2,3]] 3 4 print (lista[2]) #取出List第二个数据 5 print(lista[2:]) #取出List第二个及后面的所有数据 6 print(lista[:-1]) #从左边取出下标为-1及所有的数据 7 8 list1 = [1,2,3] 9 list2 = [4,5,6] 10 list2 = list1 + list2 11 print(list2) 12 print(list1*3) # 13 14 list3 = list2 #变量的地址ID送个list3 15 list3 = list2 [:] #下标不写也相当于取出所有的List 16 print(list3) 17 18 #List常用方法 19 20 listo = [] 21 listo.append('hello') #追加元素 22 listo.append(10.2) 23 print(listo) 24 listo.insert(1,3) #在List下标为1的位置插入3(在指定位置插入元素) 25 print(listo) 26 listo.append('hello') 27 print(listo) 28 listo.remove('hello') 29 print(listo) 30 p = listo.pop(1) #返回最后一个元素,并从list中删除之,如果没有后面这个参数表示删除最后一个元素 31 print(p) 32 print(listo) 33 print(listo.count(3)) #该元素在列表中出现的个数 34 print(listo.index('hello')) 35 36 list4 = [1,2,3] 37 list5 = [4,5,6] 38 list4.extend(list5) #追加List,即合并List,相当于 list4 = list4 + list5 39 print(list4) 40 41 li1 = [15,5,-9,0,22,13] 42 li1.sort() #升序 43 print(li1) 44 li1.reverse() #反转 45 print(li1) 46 47 48 #list复制 49 list3 = list2 #List3为List2的别名,用C来说就是指针地址相同,对List3操作即对List2操作。函数参数就是这样传递的 50 list3 = list2 [:] #List3为List2的克隆,即另一个拷贝。
Tuple元组:是一种有序且不可更改的集合。允许重复的成员。
1 #元组是类似于List(列表)的另一个数据类型 2 #元组用()标识,内部元素用逗号隔开,但是元素不能二次赋值,相当于之都列表 3 #构造包含0个或1个元素的元组比较特殊,所以有一些额外的语法规则: 4 #tup1 = () #空元组 5 #tup2 = (20,) #一个元素,需要在元素后天添加逗号 6 #注意事项: 7 #1、元组也可以被索引和切片,方法和列表一样; 8 #2、与字符串一样,元组之间可以使用+号进行运算,这就意味着他们可以组合和复制,运算后生成一个新的元组; 9 #3、元组可以使用之前列表中的count()、index()方法,其余方法不行; 10 #4、因为元组不可变,所以代码更安全。如果可能,能用元组代替列表就尽量用元组 11 # 12 lista = [1,2,3,'hello'] 13 14 tuplea = (1,2,3,'hello') # 15 16 print(tuplea[2]) 17 lista.append(4) 18 print(lista) 19 #元素成为不可变的列表 20 print(tuplea.count(3)) 21 print(tuplea.index('hello')) #返回该元素的位置(就是下标),无则抛出异常 22 23 tup1 = () 24 tup2 = (1,) 25 print(tup2)
Set集合例子:是一个无序和无索引的集合。没有重复的成员。
1 #集合(set)是一个无序不重复元素的序列。 2 #基本功能是进行成员关系测试和删除重复元素。 3 #可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须使用set()而不是{},因为{}是用来创建一个空字典。 4 seta = {1,2,3,1,2,3,'hello'} 5 print(seta) 6 #setb = set('hello',1,2,3,'oo')#类型转换错误 7 setb = set('hello') 8 print(setb) 9 10 a = set('newdream66') #{'n','w','d','r','e','a','m','6'} 11 b = set('news90') #{'n','e','w','s','9','0'} 12 print(a-b) #a和b的差集,即打印a中存在,但b中不存在的元素 13 print(b-a) #b和a的差集,即打印b中存在,但a中不存在的元素 14 print(a | b) #a和b的并集,即打印a和b中不重复的所有元素 15 print(a & b) #a和b的交集,即打印a和b中都存在的元素 16 print(a ^ b) #a和b中不同时存在的元素
Dictionary字典:是一个无序,可变和有索引的集合。没有重复的成员
1 seta = set () 2 dicta = {} 3 dictb = {'str01':'hello','num01':10} 4 print(dictb) 5 #字典中的键必须独一无二,但值则不必,创建时如果同一个键被创建二次,后一个值会被记住; 6 dictc = {'num1':2,'num1':3} 7 print(dictc) #3 8 9 dictd = dict(neme="xiaowei",age = 19) 10 print(dictd) 11 dicte = dict((['name','xiaowei'],['age',18])) 12 print(dicte) 13 14 lista = [1,2,3] 15 dictf = {}.fromkeys(lista) 16 print(dictf) 17 18 dictg = {}.fromkeys(lista,'2022') 19 print(dictg) 20 21 22 dicth = {} 23 dicth['name'] = 'xiao' #增加 24 print(dicth['name']) #查询 25 dicth['name'] = 'hua' #修改 26 print(dicth) 27 del dicth['name'] #删除 28 print(dicth) #输出{} 29 print('************************************************') 30 dicti = {1:'hello','n1':10,'xxx':88} 31 print(dicti.keys()) #返回一个包含字典所有KEY的列表; 32 print(dicti.values()) #返回一个包含字典所有value的列表; 33 print(dicti.get(1)) #返回字典中KEY对应的值,若KEY不存在字典中,则返回default的值(default默认为None); 34 print(dicti.get('hh','test')) 35 print(dicti.pop(1)) #返回最后一个元素,并从Dict中删除之,如果没有后面这个参数表示删除最后一个元素 36 print(dicti) 37 38 dictj = {1:'sss','n2':228} 39 dicti.update(dictj) #将字典adict的键值对应添加到字典adict中,无则添加,有则覆盖 40 print(dicti) 41 print(dicti.clear()) #删除字典中所有项或元素;