一. 可变类型与不可变类型
不可变类型: 值改变的情况下,ID也随之改变。
可变类型 :值改变的情况下,ID不变。
有序:凡是有索引的数据都有序。
二.int类型
用途:用于记录年龄、号码、身份证号等等。
定义方式:age=18 # age = int(18)
十进制对其他进制的转换
print(bin(14)) # 十进制转二进制 print(oct(14)) # 十进制转八进制 print(hex(2)) # 十进制转16进制
其他进制转十进制
print(int("110",2)) # 二进制转十进制 print(int("77",8)) # 八进制转十进制 print(int("39",16)) # 十六进制转十进制
ps:int()强制转换时只能识别数字。
三.float类型
用途:用于记录描述身高、薪资、体重等状态。
定义方式:salary = 3.1 # salary = float(3.1)
ps:float()强制转换时除了能识别数字外还能识别字符.小数点。
int和float统称为数字类型,数字类型只能存一个值,无序且属于不可变类型。
四.str类型
用途:用于描述记录事物的状态。
定义:通过使用单双引号及三引号来定义。
name = 'stone' # name = str('stone')
常用操作及内置方法
1.按索引取值
str1 = "hello world! " print(str1[4]) # 正数代表方向从左到右,正数索引从0开始 print(str1[-2]) # 负数代表方向从右到左,负数索引从-1开始
2.切片(顾头不顾尾步长)
str1 = "hello world!" print(str1[0:7:1]) # 第一个数代表开始索引,第二个数代表结束索引,第三个数代表步长 print(str1[5:0:-1]) # 索引为0代表第一个字符,-1代表最后一个字符 print(str1[5::-1]) #步长为负数代表方向从右向左执行 print(str1[-1::-1]) #字符串倒序输出 print(str1[::]) #空切片代表遍历一遍字符串 print(str1[::-1]) #字符串倒序输出
3.长度len
str1 = "hello world!" print(len(str1)) # 显示字符串中字符的个数
4.成员运算in和not in
作用: 判断一个子字符串是否存在于一个大的字符串中
str1 = "wanglei is dsb!" print("wanglei" in str1) print("wanglei" not in str1)
5.strip
作用: 用来去除字符串左右两边的字符,可以指定字符,不指定默认去除的是空格
str1 = " wanglei is dsb! " str2 = "*******wanglei is dsb!****" print(str1.strip()) print(str2.strip("*"))
6 split
作用:针对按某种分隔符组成的字符,可以用split将其切成列表
str1 = "wanglei:is:dsb! " res = str1.split(":") print(res,type(res))
7 循环
str1 = "wanglei:is:dsb!" for item in str1 : print(item)
8 需要掌握的
#strip,lstrip,rstrip # 默认去除字符是空格 print('$$$$$$$egon$$$$$$'.lstrip('$')) #去除左边的选中字符 print('$$$$$$$egon$$$$$$'.rstrip('$')) #去除右边的选中字符 print('$$$$$$$egon$$$$$$'.strip('$')) #去除两边的选中字符 #lower,upper msg='aABBBBb' print(msg.lower()) #字母全部变为小写 print(msg.upper()) #字母全部变为大写 #startswith,endswith msg='alex is dsb' print(msg.startswith('alex')) # 判断字符串是否是指定字符开头 print(msg.endswith('b')) # 判断字符串是否是指定字符结束 #format的三种玩法 print('my name is %s my age is %s' %('egon',18)) print('my name is {name} my age is {age}'.format(age=18,name='egon')) # 给括号里的变量命名,通过大括号加变量名来实现 # 了解 print('my name is {} my age is {}'.format(18,'egon')) # format括号后的数,要大于等于大括号的个数 print('my name is {0} my age is {1}{1}'.format(18,'egon')) # 通过index来进行读取 #split,rsplit msg='get|a.txt|333331231' print(msg.split('|',1)) #从左向右切割,切割符为'|',切割1次 print(msg.rsplit('|',1)) #从右向左切割,切割符为'|',切割1次 #选择默认切割次数,split,rsplit返回结果一致 #join msg='get|a.txt|333331231' l=msg.split('|') print(l) src_msg='|'.join(l) # 选定列表之间的连接符号,通过.join来连接变成str print(src_msg,type(src_msg)) #replace msg='alex say i have one tesla,alex is alex hahaha' print(msg.replace('alex','sb',1)) # 三个参数 (被替换字符,替换字符,替换个数) #isdigit # 判断字符串中包含的是否为纯数字 print('123'.isdigit()) # 如果字符串是由纯数字组成的,则返回True不是为False
9需要了解的内置方法
#find,rfind,index,rindex,count s = 'qweqwRWEFW is dsb o and kevin is sb' print(s.find('weq')) # 返回的是w字符所在的索引值 print(s.find('xxx')) # 找不到的时候不报错返回的是-1 print(s.rfind('W',0,25)) # 还可以通过索引来限制查找范围,不包括两边 print(s.index('o')) # 返回所传字符所在的索引值 print(s.count('q')) # 统计字符出现的次数 # find比index有更加良好的容错性,加入index没有查找到相应结果会报错,而find不会 #center,ljust,rjust,zfill s9 = 'wefwgfen' print(s9.center(20,'*')) # 长度为20,字符个数不够两边填充指定字符 print(s9.ljust(40,'$')) # 长度为40,字符个数不够右边填充指定字符 print(s9.rjust(40,'$')) # 长度为40,字符个数不够左边填充指定字符 print(s9.zfill(40)) # 长度为40,左边填充0 #expandtabs s10 = 'a bc' print(s10.expandtabs(100)) # 把制表符扩展成指定长度 #captalize,swapcase,title s12 = 'hElLo WoRLD!12434' print(s12.capitalize()) # 首字母大写 print(s12.swapcase()) # 大小写交换 print(s12.title()) # 每个单词的首字母大小 #is数字系列 num1=b'4' #bytes num2=u'4' #unicode,python3中无需加u就是unicode num3='壹' #中文数字 num4='Ⅳ' #罗马数字 # ''.isnumeric(): unicode,中文数字,罗马数字 只要是表示数字都识别 print(num2.isnumeric()) print(num3.isnumeric()) print(num4.isnumeric()) # ''.isdecimal(): unicode 只识别普通的阿拉伯数字 print(num2.isdecimal()) # ''.isdigit() :bytes,unicode 通常情况下使用isdigit就已经满足需求了 print(num1.isdigit()) print(num2.isdigit())
ps:str类型能存一个值,有序,是不可变类型。
四.list类型
用途:按照位置来记录值,通过索引来取值。
定义:在[]内用逗号把多个值分开。friends=['alex','wupeiqi'] # friends=list([...])
优先掌握操作
1.按索引取值
l = [1,2,3,4] print(l[0],l[-1])
2.切片(顾头不顾尾步长)
l = [1,2,3,4] print(l[0:4:1]) print(l[4:0:-1])
3.长度
len()获取列表元素个数
4. in 和not in
5.添加长度的三种方法
l = [11,22,33,44,55] l1 = [99,88,77,66] # 1.尾部添加一个66 l.append(66) # 注意append值能将被添加的数据当作列表的一个元素 print(l) # 2.任意位置添加元素 l.insert(2,96) # 通过索引在任意位置添加元素 print(l) # 注意insert值能将被添加的数据当作列表的一个元素 # 3.添加容器类型数据 l.append(l1) l.insert(-1,l1) l.extend(l1) # 内部原理for循环l1一个个追加到列表的尾部 l.extend([1,2]) print(l)
6.删除元素的三种方法
l = [1,2,3,33,4] del l[2] # del适用于所有的删除操作 res1 = l.pop() # 尾部弹出 res1 = l.pop(0) # 可以指定索引 按照索引弹出元素 res = l.remove(33) # 指定要删除的元素的值
7.循环
l = [1,2,3,4] for item in l: print(item)
ps:list类型能存多个值,有序,是可变类型
clear方法可以清空列表.