1.数字类型
1).int整型
用途:整数数字的数据,如:年龄,号码等
定义方式:
a = 18 # 本质是age = int18) printa) b = int'18') printb) c = int'1.8') printc)
注意的是int只能将整型的数字或者纯整型数字组成的字符串转化为整型数据,不能转化浮点型的数据
进制转化
printbin12)) # 十进制转化为二进制 printint'1100',2)) # 二进制转化为十进制 printoct12)) # 十进制转化为八进制 printint'14',8)) # 八进制转化为十进制 printhex12)) # 十进制转化为十六进制 printint'c',16)) # 十六进制转化为十进制
注意:0b代表的是二进制,0o代表的是八进制,0x代表的是十六进制
该类型总结:
存一个值
只有一个值,没有有序无序的说法
不可变
2).float浮点型
用途:定义小数类型的数据,如身高,体重,薪资等
定义方式:
a = 1.8 # 本质是 a = float1.8) printa) b = float'1.8') # 也可以转化存储小数数据的字符串 printb)
注意:float类型可以转化存储小数数据的字符串
该类型总结:
存一个值
只有一个值,没有有序无序的说法
不可变
2.字符串类型
str字符串类型
作用:存储描述性数据的
定义方式:单引号’ ‘,双引号” “,多引号”’ ”’ , “” “”
a = 'sxc' # 本质是 a = str'sxc') printa) b = str[1,2,3,4]) printb) c = str{'name':'sxc','age': 18}) printc)
注意:字符串可以把列表,字典类型转化为字符串类型
优先掌握的操作
1、按索引取值正向取+反向取) :只能取
a = 'hello world' printa[1]) # 正向取 printa[-1]) # 反向取 a[1] = 'x' # 报错
2、切片顾头不顾尾,步长)
a = 'hello world' printa[0:8]) printa[0:10:2]) # 步长为2,即隔一个取一个 printa) # 没有改变原值 printa[8:0:-2]) # 可以反向取值 printa[5::2]) # 空代表取到最后一个值
3、长度len
a = 'abcdefg' printlena))
4、成员运算in和not in: 判断一个子字符串是否存在于一个大的字符串中
a ='I have a apple , i have a pen ,boom , apple pen' print'apple' in a) print'ap' in a) print'sss' in a) print'sss' not in a)
注意:结果是一个布尔类型的值
5、去掉字符串左右两边的字符strip,不管中间的lstrip,rstrip)
user = ' sxc ' printuser) printuser.strip' ')) user1 = '********s*x*c*********' printuser1.strip'*')) # 需要注意strip只能去除左右两边连续的字符,不能去除中间的字符 printuser1.lstrip'*')) # 去掉左边的* printuser1.rstrip'*')) # 去掉右边的* username = input'请输入用户名>>>:').strip' ') printusername)
注意:strip只能去除左右两边连续的字符,不能去除中间的字符
6、切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值
a = '123/456/789' printa.split'/')) # 切分出来的是一个列表 printa.split'/')[1]) # 可以用列表的取值方式取值 printa.split'/',1)) # 只去掉第一个分隔符 printa.rsplit'/',1)) # 从右往左去掉分隔符 first_pwd,second_pwd,third_pwd = a.split'/') # 可以用变量一一对应列表中的值 printfirst_pwd) printsecond_pwd) printthird_pwd)
注意:切分出来的是列表,可以用列表的一切方法操作
7、循环
a = 'hello world' for i in a: printi)
需要掌握的操作
1、lower,upper全部改为大小写的操作)
a ='aBcDeFg' printa.lower)) printa) # 原值不变 printa.upper))
2、startswith,endswith判断字符在不在开头或者结尾
a = 'hello world' printa.startswith'h')) printa.startswith'xxx')) printa.startswith'hello world')) # 只要是开头,可以是多个字符 printa.endswith'd')) printa.endswith'world'))
3、format的三种玩法Python推荐使用)
# 第一种,按位置占位,原理跟%s一样 a = 'my name is %s,my age is %s,my hobby is %s.'%'sxc',18,'sing') # 不能增加超过占位符数量的值 printa) a = 'my name is {},my age is {},my hobby is {}.'.format'sxc',18,'sing','jump') # 可以增加超过占位数量的值,但是只会选取优先对应的值 printa) # 第二种,按索引占位 a = 'my name is {2},my age is {0},my hobby is {3}.'.format'sxc',18,'sing','jump') printa) # 第三种,指名道姓占位,按照关键字传参数关键字传参) a = 'my name is {name},my age is {age},my hobby is {hobby}.'.formatname ='sxc',age = 18,hobby = 'sing') printa)
4、replace,替代
a = 'my name is sxc ,sxc is a good boy' printa.replace'sxc','sss')) printa.replace'sxc','xxx',1)) printa) # 不改变原值
5、isdigit # 判断字符串中包含的是否为纯数字
while True: age = input'请输入你的年龄>>>:') if age.isdigit): age = intage) if age <= 30: print'美女你好') else: print'阿姨好') else: print'请输入数字')
判断输入的年龄是不是整数类型
需要了解的内置方法
1、find,rfind,index,rindex,count
a = '1,2,3,sxc,xxx,$' printa.find'sxc')) # 查找sxc在字符串中的索引 printa.find'sxc',1,10)) # 查找sxc在索引为0-9中的位置 printa.find'sxc',1,3)) # 查找sxc在索引为1-2中的位置,找不到时返回-1,不会报错 printa.rfind'$',10,15)) # 从右向左查找$在索引为10-13中的位置 printa.index'xxx')) # 查找xxx在字符串中的索引 printa.index'$',1,15)) # 查找$在索引为1-14中的位置 # printa.index'xxx',1,3)) # 查找xxx在索引为1-2中的位置,找不到时会报错 printa.rindex'xxx',8,14)) # 从右想做查找xxx在索引为8-13中的位置 printa.count'x')) # 统计x在字符串中的个数 printa.count'x',0,9)) # 统计x在字符串索引为0-8中的个数
2、center,ljust,rjust,zfill
print'sxc'.center10,'$')) # 以sxc为中心,两边分别补$,直至总共10位为止 print'sxc'.ljust10,'★')) # 以sxc为最左边,后边补★,直至总共10位为止 print'sxc'.rjust10,'☆')) # 以sxc为最右边,前面补☆,直至总共10位为止 print'158655'.zfill10)) # 将158655补成10位数字,不足用0填充
3、expandtabs
print'a b'.expandtabs5)) # 空5格
4、captalize,swapcase,title
print'heLLo WoRlD'.capitalize)) # 第一个字母大写,其他全部小写 print'heLLo WoRlD'.swapcase)) # 大小写转换 print'heLLo WoRlD'.title)) # 每个单词的首字母大写,其余小写
5、is数字系列,isnumeric),isdecimal),isdigit)
num1=b'4' #bytes num2=u'4' #unicode,python3中无需加u就是unicode num3='壹' #中文数字 num4='Ⅳ' #罗马数字 # isnumeric): 只能判断unicode,中文数字,罗马数字 printnum2.isnumeric)) printnum3.isnumeric)) printnum4.isnumeric)) # isdecimal): 只能判断unicode printnum2.isdecimal)) printnum3.isdecimal)) printnum4.isdecimal)) # isdigit) : 只能判断bytes,unicode printnum1.isdigit)) printnum2.isdigit)) printnum3.isdigit)) printnum4.isdigit))
6、is其他
print'zzj 123'.isalpha)) # 是否只存在字母,空格也不行 print'zzjsxc'.isalpha)) # 是否只存在字母 print'1356sss唱'.isalnum)) # 是否是字母,数字或者中文字符 print'1356sss唱*'.isalnum)) # 符号不行
该类型总结:
存一个值
有序
不可变
3 列表类型
list列表类型
作用:存储多个数据,可以按照索引取值
定义方式:在[]内用逗号分开各个值
优先掌握的操作
1、按索引存取值正向存取+反向存取):即可存也可以取
a = [1,2,3,4,5,6] printa) printa[1]) a[1] = 99 # 修改列表中的值 printa) printa[-1]) # 反向取值
2、切片顾头不顾尾,步长)
a = [1,2,3,4,5,6] printa[0:6:2]) # 在索引为0-5中,步长为2取值,即隔一个取一个 printa[::1]) # 都为空时全部都取 printa[6:0:-1]) # 反向取
注意:顾头不顾尾
3、长度len
a = [1,2,3,4,5,6] printlena))
4、成员运算in和not in
a = [1,222,3,4,'*','sxc'] print1 in a) print'*' in a) print'sxc' not in a) print'xxx' not in a)
5、往列表中添加元素(******)
1)追加append
a = [11,22,33,44,55] printa) a.append66) a.append77) printa)
2)任意位置添加元素insert
a = [11,22,33,44,55] printa) a.insert2,999) printa)
3)一次性添加多个元素extend
a = [11,22,33,44,55] b = [66,77,88,99] print'a列表是:',a) print'b列表是:',b) a.extendb) # 本质是for循环b列表中的值,并一个个添加到a列表中 print'ab列表合起来:',a) # 新列表还是a列表
6、删除
方式1:del单纯的删除
a = [11,22,33,44,55] printa) del a[1] # 通用删除,可以删除任意值 printa) del a # 甚至可以删除整个列表 printa)
因为a列表已删除,所以最后打印操作会报错
方式2:remove指定要删除的值
a = [11,22,33,44,55] printa) printa.remove55)) #删除,返回的是none printa)
删除操作返回的是none值
方式3: pop按照索引从列表中取走一个值默认从末尾取值)
a = [11,22,33,44,55] printa) printa.pop3)) # 按照索引取走值,返回的是取走的值 printa.pop1)) # 按照索引取走值,返回的是取走的值 printa)
pop与del和remove的不同是取走一个值,这个取走的值后面还是可以用的
8、循环
a = [11,22,33,44,55] for i in a: # 循环取值 printi)
循环打印列表中的每个值
需要掌握的操作
1、count和index
a = [1,2,3,3,5,3] printa.count3)) # 计算3在列表中一共有多少个 printa.index5,0,6)) # 查找元素5在索引为0-5中的索引 printa.index5,0,3)) # 查找元素5在索引为0-2中的索引,找不到,报错
2、reverse把列表中的值反向输出
a = [1,2,3,3,5,3] printa.reverse)) printa) b = [1,2,3,4,5,6] printb.reverse)) # reverse不返回值 printb)
2、sort从小到大排列
nums=[3,-1,9,8,11] nums.sort) # 将列表中的元素从小到大排列 printnums) nums.reverse) # 取反列表中的元素 printnums)
该类型总结:
存多个值
有序
可变
补充:队列与堆栈
队列:先进先出
l=[] # 入队 l.append'first') l.append'second') l.append'third') printl) # 出队 printl.pop0)) printl.pop0)) printl.pop0))
堆栈:先进后出
l=[] # 入栈 l.append'first') l.append'second') l.append'third') printl) # 出栈 printl.pop)) printl.pop)) printl.pop))
5