Python 变量类型
变量存储在内存中,这意味着在创建变量时会在内存中开辟一个空间,用于存放变量的标识、名称、数据。
变量的赋值:
1.python变量赋值不需要类型声明;
2.每个变量在使用前必须赋值,变量赋值以后该变量才会被创建;
3.如果变量在脚本中多次被赋值(类型不同),以最后一次赋值的数据类型为准
4.用 = 来给变量赋值;
5.多个变量可以同时赋值,如下所示:
5.1)、a=b=c=1
5.2)、a,b,c=1,2,'abc'
标准数据类型
python中五个标准的数据类型:
Numbers(数字)
String(字符串)
List(列表)
Tuple(元组)
Dictionary(字典)
数字型
Python支持四种不同的数字类型:
int(有符号整型)
long(长整型【使用小写l 或大写L来表示,eg:0122L】,也可以代表八进制和十六进制)
float(浮点型)
complex(复数)
字符串
1、Python的字串列表有2种取值顺序:
1.1.从左到右索引默认0开始,最大范围是字符串长度-1;
1.2.从右到左索引默认-1开始,最大范围是字符串开头;
2、字符串的切片操作:使用[头下标:尾下标] 来截取相应的字符串,其中下标是从0开始算起,可以是正数或负数,下标可以为空表示取到头或尾。
注意:1.获取的子字符串包含头下标的字符,但是不包含尾下标的字符。
2.[头下标:尾下标:步长]表示从头下标开始,到尾下标的前一个字符结束,每隔步长-1取一个字符
3、加号+是字符串连接运算符,星号* 是重复操作
4、字符串运算符
下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":
5、字符串的格式化
5.1、将一个值插入到一个有字符串格式符的字符串中,注意:%s 可以用于替代各种类型的值
eg:print('字符串:%s,长度为:%d'%('abcdef',5)) #输出'字符串:abcdef,长度为:5'
5.2、使用format函数
eg:print('字符串:{str},长度为:{len}'.format(str='abcdefg',len=7)) #输出'字符串:abcdefg,长度为:7'
5.3、python字符串格式化符号:
6、转义字符
7、字符串常用方法
7.1、strip():去掉字符串两边的空格和换行符
strip(str):去掉字符串两边的str
lstrip():去掉左边的空格和换行符
rstrip():去掉右边的空格和换行符
备注:1)、该方法不会改变原来字符串的值;
2)、如下所示,当你传的参数不管是“abc”还是abc的其他排列形式,这都不重要,重要的是函数只知道你要删除的字符是”a”,”b”,”c”。函数会把你传的参数拆解成一个个的字符,然后把头尾的这些字符去掉。
7.2、upper():把字符串转换为大写
7.3、lower():把字符串转换为小写
7.4、capitalize():把首字母改成大写
7.5、count(str):统计str在字符串中出现的次数
7.6、replace(str1,str2):把str1替换成str2,如果字符串中不存在str1,不会报错
7.7、endswith(str):字符串是否以str结尾
endswith(str,start,end):字符串从start开始,到end-1结束之间的字符串子串中是否以str结尾
7.8、startswith(str):是否以字符串str开头
7.9、split():默认用空格分割字符串
splict(str):根据str分割字符串,返回值是一个list,如果字符串中不存在str,则把整个字符串作为list的一个元素返回
splitlines():以' '分割字符串
7.10、find(str,start,end):检查str是否包含在字符串中,如果start和end指定范围,则检查是否包含在指定范围内,如果是则返回第一个出现的索引值,否则返回-1
7.11、index(str,start,end):跟find()方法一样,只不过如果str不在字符串中会报一个异常
7.12、isalnum():字符串至少有一个字符并且所有字符都是字母或数字则返回 True,否则返回 False
7.13、isalpha():字符串至少有一个字符并且所有字符都是字母则返回 True,否则返回 False
7.14、isdigit():如果是正整数(包含0)则返回 True 否则返回 False
7.15、isspace():如果只包含空格,则返回 True,否则返回 False
7.16、islower():字符串中包含至少一个字母,且所有字符都是小写的,则返回True,否则返回False
isupper():字符串中包含至少一个字母,且所有字符都是大写的,则返回True,否则返回False
7.17、'连接符'.join:把字符串、列表、元组、字典的元素按照连接符组合成字符串,当参数是字典时,只会组合key的值【作用于.split()相反】
7.18、str.zfill(n):将字符串自动填充到n位,前面自动补0
7.19、string类中可以自带[a-zA-Z0-9]的方法:
列表
1、列表是最常用的数据类型,可以作为一个方括号内的逗号分隔值出现,列表的数据项不需要具有相同的类型;索引值从0开始。
2、获取列表的值:
2.1、变量名:获取所有元素
2.2、变量名[下标]:左边下标从0开始,当下标为负值时从右边取值(右边下标从-1开始),当输入的下标不存在
时,脚本执行会报错;
2.3、变量名.count(元素值):查询某个元素在list里面出现的次数;
2.4、变量名.index(元素值):查找元素的下标,如果输入的元素不存在,会报错;
2.5、变量名.reverse():反转list,没有返回值时,显示None
2.6、列表切片:变量名[start:end] 表示从下标start开始,到下标end-1结束之间的元素
备注:1)、当start为空时,表示从下标0开始截取;如果end为空时,表示截取到最后一个元素,注意即使为空,冒号:也不可以省略;
2)、当下标为负数时,表示从右边开始截取,最右边的元素下标为-1,以此类推;
3)、变量名[start:end:步长] 表示从下标start开始,到下标end-1结束之间的元素按照(步长-1)的长度取值
3、添加元素:
3.1、.append(元素):将元素插入到列表的末尾
3.2、.insert(下标,元素):将元素插入到列表指定的位置
备注:insert函数是将原来下标的元素往后移,所以当想把元素插入到列表末尾,只能用append函数
4、删除元素:
4.1、.pop():删除末尾最后一个元素
4.2、.pop(下标):删除列表中指定位置的元素,如果输入的下标不存在会报错并提示下标越界
4.3、.remove(元素):删除列表中指定的元素,当存在多个相同元素时,则删除第一个出现的元素
4.4、del list[下标]:删除列表中指定位置的元素,当下标输入负值时,即从右到左,下标从-1开始
5、修改元素值:list[下标] = 元素
6、清空列表元素:.clear()
7、排序:
7.1)、.sort():升序排序,当列表中存在多种类型的元素时,不能进行排序
7.2)、.sort(reverse=True):降序排序
8、加入另一个列表:
8.1)、list1.extend(list2) :将list2的内容添加到list1中,返回结果为None
8.2)、list_new = list1 + list2
8.3)、list_new = list1 * 3 将list1 重复三次赋值给list_new
9、判断元素是否存在于列表中:in 、not in
10、列表长度:len(list1)
11、枚举,可以同时枚举下标和元素:enumerate(list1)
输出结果:
12、循环删除list元素:同一个list不能在循环中删除元素,会因为下标错位导致结果有误,可以通过定义一个元素一样的list进行删除
13、浅拷贝:将某个列表赋值给另一个变量即为浅拷贝,两个变量指向的是同一个地址
14、深拷贝:一种方法是重新定义一个元素相同的列表,在内存中重新开辟空间保存数据;另一种是使用方法copy.deepcopy(l1)