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

天天见闻 天天见闻 2023-03-20 科技 阅读: 103
摘要:

1.数字类型

(1).int整型

用途:整数数字的数据,如:年龄,号码等

定义方式:

a = 18 # 本质是age = int(18) print(a) b = int('18') print(b) c = int('1.8') print(c)

注意的是int只能将整型的数字或者纯整型数字组成的字符串转化为整型数据,不能转化浮点型的数据

进制转化

print(bin(12)) # 十进制转化为二进制 print(int('1100',2)) # 二进制转化为十进制 print(oct(12)) # 十进制转化为八进制 print(int('14',8)) # 八进制转化为十进制 print(hex(12)) # 十进制转化为十六进制 print(int('c',16)) # 十六进制转化为十进制

注意:0b代表的是二进制,0o代表的是八进制,0x代表的是十六进制

该类型总结:

存一个值

只有一个值,没有有序无序的说法

不可变

(2).float浮点型

用途:定义小数类型的数据,如身高,体重,薪资等

定义方式:

a = 1.8 # 本质是 a = float(1.8) print(a) b = float('1.8') # 也可以转化存储小数数据的字符串 print(b)

注意:float类型可以转化存储小数数据的字符串

该类型总结:

存一个值

只有一个值,没有有序无序的说法

不可变

2.字符串类型

str字符串类型

作用:存储描述性数据的

定义方式:单引号' ',双引号' ',多引号''' ''' , '' ''

a = 'sxc' # 本质是 a = str('sxc') print(a) b = str([1,2,3,4]) print(b) c = str({'name':'sxc','age': 18}) print(c)

注意:字符串可以把列表,字典类型转化为字符串类型

优先掌握的操作

1、按索引取值(正向取+反向取) :只能取

a = 'hello world' print(a[1]) # 正向取 print(a[-1]) # 反向取 a[1] = 'x' # 报错

2、切片(顾头不顾尾,步长)

a = 'hello world' print(a[0:8]) print(a[0:10:2]) # 步长为2,即隔一个取一个 print(a) # 没有改变原值 print(a[8:0:-2]) # 可以反向取值 print(a[5::2]) # 空代表取到最后一个值

3、长度len

a = 'abcdefg' print(len(a))

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 ' print(user) print(user.strip(' ')) user1 = '********s*x*c*********' print(user1.strip('*')) # 需要注意strip只能去除左右两边连续的字符,不能去除中间的字符 print(user1.lstrip('*')) # 去掉左边的* print(user1.rstrip('*')) # 去掉右边的* username = input('请输入用户名>>>:').strip(' ') print(username)

注意:strip只能去除左右两边连续的字符,不能去除中间的字符

6、切分split:针对按照某种分隔符组织的字符串,可以用split将其切分成列表,进而进行取值

a = '123/456/789' print(a.split('/')) # 切分出来的是一个列表 print(a.split('/')[1]) # 可以用列表的取值方式取值 print(a.split('/',1)) # 只去掉第一个分隔符 print(a.rsplit('/',1)) # 从右往左去掉分隔符 first_pwd,second_pwd,third_pwd = a.split('/') # 可以用变量一一对应列表中的值 print(first_pwd) print(second_pwd) print(third_pwd)

注意:切分出来的是列表,可以用列表的一切方法操作

7、循环

a = 'hello world' for i in a: print(i)

需要掌握的操作

1、lower,upper(全部改为大小写的操作)

a ='aBcDeFg' print(a.lower()) print(a) # 原值不变 print(a.upper())

2、startswith,endswith判断字符在不在开头或者结尾

a = 'hello world' print(a.startswith('h')) print(a.startswith('xxx')) print(a.startswith('hello world')) # 只要是开头,可以是多个字符 print(a.endswith('d')) print(a.endswith('world'))

3、format的三种玩法(Python推荐使用)

# 第一种,按位置占位,原理跟%s一样 a = 'my name is %s,my age is %s,my hobby is %s.'%('sxc',18,'sing') # 不能增加超过占位符数量的值 print(a) a = 'my name is {},my age is {},my hobby is {}.'.format('sxc',18,'sing','jump') # 可以增加超过占位数量的值,但是只会选取优先对应的值 print(a) # 第二种,按索引占位 a = 'my name is {2},my age is {0},my hobby is {3}.'.format('sxc',18,'sing','jump') print(a) # 第三种,指名道姓占位,按照关键字传参数(关键字传参) a = 'my name is {name},my age is {age},my hobby is {hobby}.'.format(name ='sxc',age = 18,hobby = 'sing') print(a) 4、replace,替代 a = 'my name is sxc ,sxc is a good boy' print(a.replace('sxc','sss')) print(a.replace('sxc','xxx',1)) print(a) # 不改变原值

5、isdigit # 判断字符串中包含的是否为纯数字

while True: age = input('请输入你的年龄>>>:') if age.isdigit(): age = int(age) if age <= 30: print('美女你好') else: print('阿姨好') else: print('请输入数字')

判断输入的年龄是不是整数类型

需要了解的内置方法

1、find,rfind,index,rindex,count

a = '1,2,3,sxc,xxx,$' print(a.find('sxc')) # 查找sxc在字符串中的索引 print(a.find('sxc',1,10)) # 查找sxc在索引为0-9中的位置 print(a.find('sxc',1,3)) # 查找sxc在索引为1-2中的位置,找不到时返回-1,不会报错 print(a.rfind('$',10,15)) # 从右向左查找$在索引为10-13中的位置 print(a.index('xxx')) # 查找xxx在字符串中的索引 print(a.index('$',1,15)) # 查找$在索引为1-14中的位置 # print(a.index('xxx',1,3)) # 查找xxx在索引为1-2中的位置,找不到时会报错 print(a.rindex('xxx',8,14)) # 从右想做查找xxx在索引为8-13中的位置 print(a.count('x')) # 统计x在字符串中的个数 print(a.count('x',0,9)) # 统计x在字符串索引为0-8中的个数

2、center,ljust,rjust,zfill

print('sxc'.center(10,'$')) # 以sxc为中心,两边分别补$,直至总共10位为止 print('sxc'.ljust(10,'')) # 以sxc为最左边,后边补,直至总共10位为止 print('sxc'.rjust(10,'')) # 以sxc为最右边,前面补,直至总共10位为止 print('158655'.zfill(10)) # 将158655补成10位数字,不足用0填充

3、expandtabs

print('a b'.expandtabs(5)) # 空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,中文数字,罗马数字 print(num2.isnumeric()) print(num3.isnumeric()) print(num4.isnumeric()) # isdecimal(): 只能判断unicode print(num2.isdecimal()) print(num3.isdecimal()) print(num4.isdecimal()) # isdigit() : 只能判断bytes,unicode print(num1.isdigit()) print(num2.isdigit()) print(num3.isdigit()) print(num4.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] print(a) print(a[1]) a[1] = 99 # 修改列表中的值 print(a) print(a[-1]) # 反向取值

2、切片(顾头不顾尾,步长)

a = [1,2,3,4,5,6] print(a[0:6:2]) # 在索引为0-5中,步长为2取值,即隔一个取一个 print(a[::1]) # 都为空时全部都取 print(a[6:0:-1]) # 反向取

注意:顾头不顾尾

3、长度len

a = [1,2,3,4,5,6] print(len(a))

4、成员运算in和not in

a = [1,222,3,4,'*','sxc'] print(1 in a) print('*' in a) print('sxc' not in a) print('xxx' not in a)

5、往列表中添加元素(******)

(1)追加append
a = [11,22,33,44,55] print(a) a.append(66) a.append(77) print(a)
(2)任意位置添加元素insert a = [11,22,33,44,55] print(a) a.insert(2,999) print(a) (3)一次性添加多个元素extend a = [11,22,33,44,55] b = [66,77,88,99] print('a列表是:',a) print('b列表是:',b) a.extend(b) # 本质是for循环b列表中的值,并一个个添加到a列表中 print('ab列表合起来:',a) # 新列表还是a列表

6、删除

方式1:del单纯的删除 a = [11,22,33,44,55] print(a) del a[1] # 通用删除,可以删除任意值 print(a) del a # 甚至可以删除整个列表 print(a)

因为a列表已删除,所以最后打印操作会报错

  方式2:remove指定要删除的值

a = [11,22,33,44,55] print(a) print(a.remove(55)) #删除,返回的是none print(a)

删除操作返回的是none值

  方式3: pop按照索引从列表中取走一个值(默认从末尾取值)

a = [11,22,33,44,55] print(a) print(a.pop(3)) # 按照索引取走值,返回的是取走的值 print(a.pop(1)) # 按照索引取走值,返回的是取走的值 print(a)

pop与del和remove的不同是取走一个值,这个取走的值后面还是可以用的

8、循环

a = [11,22,33,44,55] for i in a: # 循环取值 print(i)

循环打印列表中的每个值

需要掌握的操作

1、count和index

a = [1,2,3,3,5,3] print(a.count(3)) # 计算3在列表中一共有多少个 print(a.index(5,0,6)) # 查找元素5在索引为0-5中的索引 print(a.index(5,0,3)) # 查找元素5在索引为0-2中的索引,找不到,报错

2、reverse把列表中的值反向输出

a = [1,2,3,3,5,3] print(a.reverse()) print(a) b = [1,2,3,4,5,6] print(b.reverse()) # reverse不返回值 print(b)

2、sort从小到大排列

nums=[3,-1,9,8,11] nums.sort() # 将列表中的元素从小到大排列 print(nums) nums.reverse() # 取反列表中的元素 print(nums)

该类型总结:

存多个值

有序

可变

补充:队列与堆栈

 队列:先进先出
l=[] # 入队 l.append('first') l.append('second') l.append('third') print(l) # 出队 print(l.pop(0)) print(l.pop(0)) print(l.pop(0))

 堆栈:先进后出

l=[] # 入栈 l.append('first') l.append('second') l.append('third') print(l) # 出栈 print(l.pop()) print(l.pop()) print(l.pop())

5

其他相关
Stable Diffusion AI绘图-Day24

Stable Diffusion AI绘图-Day24

作者: 天天见闻 时间:2024-03-31 阅读: 1
Arab),因外形酷似船帆,又称迪拜帆船酒店,位于阿联酋迪拜海湾,以金碧辉煌、奢华无比著称。绘图关键参数Lora模型:权重为0.3权重为0.4权重为0.3采样器和采样步数和CFG:7.5图像尺寸高:800px咒语合集索引》...
WE官宣Mystic续约 Mystic续约之后WE成员还有谁

WE官宣Mystic续约 Mystic续约之后WE成员还有谁

作者: 天天见闻 时间:2023-11-27 阅读: 51
WE官续约,此前这位AD选手因为孩子出生,成为第一个奶爸级LOL专业,WE与季后赛无缘后,回到韩国与家人团聚,很多网友猜测不会回到WE,但没想到会续约…。续约后,WE战队还有其他谁?但主力大奖续约,让WE下定了心,不知道后续WE导演能否笑着与优秀打野选手签约。...
索引超出了数组界限。怎么办?

索引超出了数组界限。怎么办?

作者: 天天见闻 时间:2023-07-30 阅读: 95
限制索引的值范围(从0到(数组长度-1))或增加数组长度的数组元素由整个数组的名称和其自身数组中的顺序位置表示,a[0]表示a的名称为a的数组的第一元素,a[1]表示数组a的第二元素。但是,如果超过下标(索引)的最大值(数组长度-1),则访问超出边界的访问,如arr[1]=2。--此数组长度为2。...
微软警告:新推AI工具不得使用必应数据库 否则限制访问!

微软警告:新推AI工具不得使用必应数据库 否则限制访问!

作者: 天天见闻 时间:2023-03-25 阅读: 133
财联社3月25日讯 据媒体周五援引知情人士信息报道,微软对其搜索引擎竞争对手发出警告,称如果对手公司继续将微软的搜索索引数据库作为他们人工智能聊天产品的基础,微软将切断这些公司对其数据的访问。据知情人士透露,微软公司已经告诉至少两名客户,使用必应搜索索引为他们的AI聊天工具提供信息违反了他们的合同条款,微软可能会终止向这些企业提供访问数据库的许可证。...
是时候使用MySQL 8了!

是时候使用MySQL 8了!

作者: 天天见闻 时间:2023-03-02 阅读: 126
数据库有个重要的发展方向就是和硬件紧密集成,存储等方面专门为数据分析做了优化,让MySQL的写入性能提升了2倍,优化写入解决的是MySQL用软件实现的Double Write Buffer的问题,说的是MySQL缓冲区的数据页是16 Kb。当MySQL缓冲区的16 Kb的页需要写入文件系统时,内存中缓冲区的数据在写入真正的数据文件之前,但是可以从那个2M的文件缓冲区找到原始数据进行恢复。...
告诉老默:这47个SQL性能优化技巧,赶紧收藏了!

告诉老默:这47个SQL性能优化技巧,赶紧收藏了!

作者: 天天见闻 时间:2023-02-20 阅读: 137
调用API接口调用存储引擎来查询数据,(1)所有数据库对象名称必须使用小写字母并用下划线分割,(1)所有数据库对象名称禁止使用mysql保留关键字;(5)所有存储相同数据的列名和列类型必须一致,3、所有表必须使用Innodb存储引擎,所有表必须使用Innodb存储引擎(mysql5.5之前默认使用Myisam,(2)不要使用UUID、MD5、HASH、字符串列作为主键(无法保证数据的顺序增长)...
我来说两句

年度爆文