数据类型的常用内置方法(数字,字符串和列表)

 

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

Published by

风君子

独自遨游何稽首 揭天掀地慰生平