基础知识:数字、字符串、列表 的类型及内置方法
阅读目录
今日学习内容:
- 基本数据类型及内置方法
1、数字类型
2、字符串类型
3、列表类型
今天学习的内容比较细比较杂,需要一点一点嚼烂慢慢消化,别急,加油!ヾ(◍°∇°◍)ノ゙
=============================================================
一、可变不可变类型:
可变类型:值改变,id不变,也就是说在不改变id的情况下可以改变值,id地址不变。就是可变类型。
不可变类型:值改变,id也会随着改变,证明就是产生了新值,开辟了新的id空间存放新值。这种就是不可变类型,在id原值的基础上对应值不可改变,只能另辟新的id空间存放新值,而不能在原id地址上对对应值进行变更。
--------------------------------------------------------------------注:如果你对python感兴趣,我这有个学习Python基地,里面有很多学习资料,感兴趣的+Q群:895817687
-------------------------------------------------------------------x = 1
print(id(x))
x = 2
print(id(x))>>>>>>结果是2个值的对应id不同,发生了改变。x = [1, 2]
print(id(x))
x[0] = 'A' # 将列表索引0的数值改变替换为A,我们会发现列表的id值仍然不变
print(id(x))
二、数字类型:
1 int整型:int只能将纯数字的类型转成整型。
age = 10 # age = int(10)
a = '1234' # int(a),会把字符串类型a转换成整型1234
b = '1234 ' # int(b)会报错,int无法转换为整型
c = '123abc' # int(c)会报错,int无法转换为整型
# int只能转换纯数字类型的字符串
2 float浮点型:float只能将纯带小数的字符串类型数据转换成浮点型。
总结:int和float类型统称为数字类型,该类型数据为不可变类型,只能存一个值。
三、字符串类型:
当我们定义一个字符串的时候其实是这样的
msg = ‘hello’ # msg = str(‘hello’),也就是将hello数据变成字符串类型,然后关联给msg。
由于字符串属于一种记录描述性质状态的类型,所以,任何类型的变量都能转换成字符串类型。
a = 1
b = 1.1
c = ['a', 'b']
d = {'c': 'sgt', 'd': 18, 'dd': 'tea'}
A, B, C, D = [str(a), str(b), str(c), str(d)]
print(A, B, C, D)
print(type(A), type(B), type(C), type(D))1 1.1 ['a', 'b'] {'c': 'sgt', 'd': 18, 'dd': 'tea'}
<class 'str'> <class 'str'> <class 'str'> <class 'str'>
常用操作+内置的方法(*****):
3.1按索引取值(正向、反向取值)
# ---->正向: 0 1 2 3 4
# h e l l o
# -5 -4 -3 -2 -1 反向<-------
msg = 'hello'
print(msg[0],msg[4],msg[-1],msg[-4])结果是:h o o e
正向取值从索引0开始,反向取值从索引-1开始
注意:字符串取出的值,只能当做变量值,不可作为变量名。
3.2切片(顾头不顾尾,步长)
msg = 'hello world'
print(msg[2:4:1]) # 起始索引位置2,结束索引位置,顾头不顾尾,步长1,所以结果:ll
print(msg[0:5]) # 起始索引位置0,结束索引位置5,顾头不顾尾,步长没有默认为1,所以结果:hello
print(msg[:]) # hello world
print(msg[::2]) # hlowrd
print(msg[::-1]) # 反向切片,dlrow olleh
print(msg[-1::]) # 起始位置最右边d,默认步长为1,所以结果只有 d
print(msg[-1::-1]) # dlrow olleh
3.3长度len()
msg = 'hello world'print(len(msg)) # 结果11
计算字符串内索引总个数。
3.4成员运输in 、not in 判断小字符串是否存在于一串大字符串中。
msg = 'egon is my fantastic person'
print('fan'in msg)
print('rs' not in msg)
print(not 'egon' not in msg)
# True
# False
# True
3.5 .strip 移除空白
用来去除字符串左右两边的字符,不指定的话,默认移除空格。
print(' message '.strip())
print(' messa ge '.strip())
print('abc dmessage dxyz h'.strip('abcdxyzh '))
# message
# messa ge
# message
strip可用于用户交互输入数据时,如果数据中包含了无用的空格,这时就得进行去除空格处理
name = input('your username:').strip()
pwd = input('your key:').strip()
if name == 'sgt' and pwd == '123':print('登陆成功')
else:print('登陆失败')
3.6切分 .split
按照某种分隔符,切分成列表。
info = 'a:b:c:d'
print(info.split(':'))
print(info.split(':',2))# ['a', 'b', 'c', 'd']
# ['a', 'b', 'c:d']
#jion使用:':'.jion(msg1) 用冒号(冒号可替换字符)作为连接符,将纯字符串的列表拼接成一个新的字符串
msg1 = ['my', 'age', 'is', '18']
msg2 = ':'.join(msg1)
print(msg2, type(msg2))# my:age:is:18 <class 'str'>
切分的列表必须是纯字符串列表
3.7循环(取值)
for x in 'hello'print(x)
'''
h
e
l
l
o
'''
3.8以下是需要掌握的操作:
① .strip .lstrip .rstrip 两边去*,左边去*,右边去*
print('*******login*******'.strip('*'))
print('*******login*******'.lstrip('*'))
print('*******login*******'.rstrip('*'))# login
# login*******
# *******login
② .lower .upper 将字母全部变为小写,或者大写
print('Ab2cD'.lower())
print('Ab2Cd'.upper())
# ab2cd
# AB2CD
③ .startswith .endswith 判断是否以某种字符开头或者结尾。
info = 'egon alex sgt'
print(info.startswith('egon'))
print(info.startswith('e'))
print(info.endswith('gt'))
print(info.endswith('t'))
# True
# True
# True
# True
④ .format的玩法:
通常我们用到format会先说说以前学的格式化输出:
name = 'egon'
age = '18'
print('my name is %s,i am %s .' %(name,age))
然而这种输出有一种局限就是必须是按照前后循序依次对号入座,那么有没有一种不需要按顺序来,直接就能快速入座的输出呢?
format就可以做到:
print('my name is {name},i am {age} .'.format(name='egon',age='18'))
还有另外2种表达:
print('my name is {},i am {} .'.format('egon','18'))
print('my name is {0}{1},i am {1}{1} .'.format('egon', '18'))# my name is egon,i am 18 .
# my name is egon18,i am 1818 .
运用.format快速格式化输入:
name = input('请输入您的姓名:')
age = input('请输入您的年龄:')
job = input('请输入您的工作:')
sex = input('请输入您的性别:')
print('''
---------------info {a}---------------
Name : {a}
Age : {b}
Sex : {c}
Job : {d}
---------------end---------------''' .format(a=name, b=age, c=sex, d=job))
⑤ .split . rsplit 切分成列表(0默认从左开始),右切分
info = 'a:b:c:d'
print(info.rsplit(':'))
print(info.rsplit(':',2))
# ['a', 'b', 'c', 'd']
# ['a:b', 'c', 'd']
⑥ .replace
用法:info.replace('被替换的字符串’,‘替换成的字符串’,替换个数)
info = 'a fantastic man is sgt'
print(info.replace('sgt','yl',1))# a fantastic man is yl
⑦ .isdigit判断
如果字符串由纯数字组成则返回True
print('12345'.isdigit())
print('1234 5'.isdigit())
print('12345 '.isdigit())
print('12345abc'.isdigit())
# True
# False
# False
# False
while True:score = input('>>>>:').strip()if score.isdigit():score=int(score)if score > 90:print('great!')else:print('rubbish!')breakelse:print('请输入纯数字')
可以用于用户交互界面,首先将输入字符串取空白,然后转成数字类型,然后判断是否输入的是数字,如果是可进行下一步判断,如果不是,重新输入
⑧需要了解的操作:
#1find rfind index rindex count
print('123 ke123ke'.find('ke')) #4
print('123 ke123ke'.rfind('ke')) # 9
print('123 ke123ke'.index('ke')) #4
print('123 ke123ke'.rindex('ke')) #9
print('123 ke123ke'.count('ke',0,6)) #1find和index的区别是找不到的时候,find结果是-1,二index结果是报错
print('123 ke123ke'.find('xxxx')) #-1
print('123 ke123ke'.index('xxxx')) #报错print('123 ke123ke'.count('ke',0,6)) #1
#计数,寻找计数字符串,从索引0开始到索引6如果找到一个ke就计1,如果找到2个就计2,以此类推。
#2center ljust rjust zfill
print('egon'.center(11,'*')) # 将egon放到总数为11个字符中间(50个字符包含egon的数量),其他用*号填充。****egon***
print('egon'.ljust(11,'*')) # 将egon放到总数为11个字符中,左对齐,其余字符用*号填充,egon*******
print('egon'.rjust(11,'*')) # 将egon放到总数为11个字符中,右对齐,其余字符用*号填充,*******egonprint('egon'.rjust(11,'0')) # 0000000egon
print('egon'.zfill(11)) #总共11个字符,除egon以外其余从左边开始用0填充。0000000egon
#3captalize swapcase title
print('abcdef dddddd'.capitalize()) #字符串的首字母大写Abcdef dddddd
print('abcAef dddddd'.swapcase()) #字符串内字母大小写反转ABCaEF DDDDDD
print('abcAef dddddd'.title()) #字符串内每个单词的首字母大写,其他都小写Abcaef Dddddd
#is数字系列
nums1 = b'2' # bytes
nums2 = '2' # 字符串数字
nums3 = '四' # 大写数字
nums4 = 'Ⅵ' # 罗马数字print(nums1.isdigit())
print(nums2.isdigit())
print(nums3.isdigit())
print(nums4.isdigit())
# True
# True
# False
# False
isdigit可以判断bytes和字符串数字为数字。# 阿拉伯数字组成的字符串
# print(num2.isdecimal())
# print(num3.isdecimal())
# print(num4.isdecimal())# 阿拉伯数字\中文\罗马组成的字符串
# print(num2.isnumeric())
# print(num3.isnumeric())
# print(num4.isnumeric())
字符串类型总结
存一个值,有序,不可变类型
四、列表类型
list数据类型转换:但凡能够被for循环遍历的数据类型都可以给list转换成列表类型
res = list('hello')
print(res)
#['h', 'e', 'l', 'l', 'o']res = list(123) #数字类型不能被for i in 123
#报错
常用操作+内置方法
优先掌握的操作:
4.1按索引取值(正向存取+反向存取):
l = ['a', 'b', 'c', 'd', 'e']
print(l[1])
print(l[-2])
print(id(l))
l[4] = 'E'
print(l, id(l))
Tip:对不存在的索引会报错!列表中的字符可以被替换,但是无法新增
但是字典可以新增:
dic = {'a':11}
dic['b'] = 22
print(dic)
# {'a': 11, 'b': 22}
4.2切片(顾头不顾尾,步长)
#切片,顾名思义,将列表内的数据按照索引的特征,切取一部分形成新的列表
#例:
l = ['x', 'y', 'z', 'm', 'n']
print(l[1:3]) #这里完整的应该是print(l[1:3:1]),最后那个1是步长,不写:1的话默认为1.从索引1开始到索引3的数据切出来组成新的列表
print(l[::-1] #这里是反向切片,前面两个冒号代表默认,从-1到-5全部切出来结果为:
['y', 'z', 'm']
['n', 'm', 'z', 'y', 'x']
4.3长度len
l=['a','b','c','d','e']
print(len(l))
#5
4.4成员运算in 和 not in, 判断数据在不在列表里。
l = ['x', 'y', 'z', 'm', 'n']
print('z' in l) #Ture
print('a' not in l) #Ture
4.5 [].append()追加,每次只能一个字符(多个的话会报错)。
[]insert(插入位置紧跟其后的索引值,插入的字符) 插入 ,每次只能插入一个字符
前面说过,列表按索引取值时候,只能替换,不能新增,现在我们用append和insert来对列表进行新增数据,
l = ['x', 'y', 'z', 'm', 'n']
l.append('o')
print(l)
l.append('q')
print(l)#['x', 'y', 'z', 'm', 'n', 'o']
#['x', 'y', 'z', 'm', 'n', 'o', 'q']
这里的append只能在列表最后面添加数据,不能在任意位置添加。
而insert就可以:
l = ['x', 'y', 'z', 'm', 'n']
l.insert(0,'xoxo') # 在索引号为0的位置前添加数据。
print(l)
l.insert(6,'xxoo') #l最大索引是4,如果要想在l最后插入数据,就得将起始索引设为大于最大索引的数。
print(l)
#['xoxo', 'x', 'y', 'z', 'm', 'n']
#['xoxo', 'x', 'y', 'z', 'm', 'n','xx00']
4.6 删除del和remove和pop
#del:
l = ['x', 'y', 'z', 'm', 'n']
del l[2]
print(l)
#['x', 'y', 'm', 'n']
#del是一种删除通用的操作,没有返回值字典也可以删除
dic = {'a':1}
del dic['a']
print(dic)#{}
#remove:
l = ['x', 'y', 'z', 'm', 'n']
res = l.remove('m')
print(l)
print(res)#['x', 'y', 'z', 'n']
#None, 提示:remove删除的那个元素没有返回值。
#pop
#指定要删除的那个元素的索引,返回刚删掉的元素。
l=['a','bbb','c','d','e']
l.pop(-1) #删除‘e’
res = l.pop(1)
print(l)
print(res)#['a', 'c', 'd']
#bbb
小练习:队列:先进先出,后进先出的表达:(需要用到列表的新增append,然后用到列表的删除并得到返回值;pop)
#先进先出:
l = []
l.append('first')
l.append('second')
l.append('third')
print(l)
print(l.pop(0))
print(l.pop(0))
print(l.pop(0))
# ['first', 'second', 'third']
# first
# second
# third# 后进先出
l = []
l.append('first')
l.append('second')
l.append('third')
print(l)
print(l.pop(-1))
print(l.pop(-1))
print(l.pop(-1))
#['first', 'second', 'third']
# third
# second
# first
4.7 循环
l=['a','b','c','d','e']
for item in l:print(item)结果是:
a
b
c
d
e
4.8.一些需要了解的操作
extend clear reverse sort
# extend
l = []
print(id(l))
l.extend('a')
print(l, type(l))
print(id(l))# 1851073943240
# ['a'] <class 'list'>
# 1851073943240
#extend主要是讲指定字符串、列表加到一个指定的列表当中形成一个更大的列表,extend不能直接添加数字类型,字符串可以。
# clear
l = [12,123,'abc']
l.clear()
print(l)
#[]
# clear
l = [12,123,'abc']
# l.clear()
# print(l)
# #[]
l.reverse()
print(l)
# ['abc', 123, 12]m = [11,22,'cdf']
print(m[::-1]) #reverse的功能和列表的反向切片类似。将列表发现排列
#['cdf', 22, 11]
l = [12, 123, 2]
l1 = ['a', 'b', 'z', 'n']
l.sort()
l1.sort()
print(l)
print(l1)# [2, 12, 123]
# ['a', 'b', 'n', 'z']
#注意:sort只能将全部是同总类型的列表进行排列,而且是升序排列。
基础知识:数字、字符串、列表 的类型及内置方法相关推荐
- Python数字类型及字符串类型的内置方法 ##
数字类型及字符串类型的内置方法 数字类型 数字类型有哪些? 整型和浮点型 有哪些运算符? 平时用的加减乘除.整除.模运算.幂运算,比较运算等 他们的属性? 数字类型没有有序,无序一说.换言之,不存在索 ...
- python的四种内置数字类型_浅析Python数字类型和字符串类型的内置方法
一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...
- python内置类型方法_浅析Python数字类型和字符串类型的内置方法
一.数字类型内置方法 1.1 整型的内置方法 作用 描述年龄.号码.id号 定义方式 x = 10 x = int('10') x = int(10.1) x = int('10.1') # 报错 内 ...
- 全面讲解Python列表数组(三)列表数组类型的内置函数方法
列表数组类型的内置函数方法 这里有一个列表 list1[1,2,3,4,1,5,6,7,8,9] 一, count() list1.count(1) 2 作用是计算列表一个元素出现的次数; 二. in ...
- 7.3 字符串类型及内置方法
str字符串 用途:描述性 定义方式: #单引号 s = 'Hello baby' # 等价于 s = str('Hello baby')#双引号 k = "xxx"#三引号 i ...
- python语言中内置的字符串排版方法_Python14之字符串(各种奇葩的内置方法)
一.字符串的分片操作 其分片操作和列表和元组一样 1 str1 = 'keshengtao' 2 str1[2:6]3 'shen' 4 str1[:]5 'keshengtao' 6 str1[:4 ...
- 风无定,人无常,人生如浮萍,聚散两茫茫——元组类型、字典类型的内置方法,第九天
想想自己混的也是挺糟心的,从一个毫无疑问一定可以毕业的学生到了一个也许只能我一个不能毕业的学生:从一个不需要谁太担心的人,变成一个老头或者小孩?总而言之,如人生如浮萍,聚散两茫茫所说,一切都存在着未知 ...
- python学习笔记:(三)list(列表)常用的内置方法
list(列表)包含一些内置的方法,以下为详细介绍: (方法调用:对象.方法(参数)) 1.append() 在列表的末尾添加新的对象 如: lst=[1,2,3] lst.append(4) --- ...
- python列表存储字符串_Python 基础知识全篇-字符串列表
现在我们已经对列表有了一定的了解.回头看一下字符串,会发现它不过是字符的集合,即包含一系列字符的列表.它们背后的工作原理是如此的相似,接下来让我们一探究竟吧. 作为字符列表的字符串 就像列表一样,我们 ...
最新文章
- [20150608]dbms_random.value.txt
- 尹成python爬虫百度云_Python爬虫实战:抓取并保存百度云资源
- Codeforces Round #663 (Div. 2)
- workerman mysql_workerman/mysql
- Linux 启动mysql提示表不存在
- 物流行业解决方案:聚焦物流行业数据痛点,帮助企业搭建数据平台
- Python笔记-Can’t reconnect until invalid transaction is rolled back
- eric python mysql,python入门教程13-07 (python语法入门之ORM框架SQLAlchemy)
- 北京地铁规划大全(图),买房子可以参考一下
- win10 电脑触摸板不能滑动_用好笔记本的触摸板(win10小技巧)
- Opencv使用cv::matchTemplate进行模板匹配
- 疫情下的创业品牌如何逆风翻盘?
- android仿qq空间、微信朋友圈图片展示
- 世界中英文国家及国家代码
- 9080端口对应服务器文件位置,Filenet更改端口-更改9080 端口到 80 端口
- 软考中级软件设计师该怎么备考
- 自制瀑布流型爬虫(思路适用很多网站)
- 服务器修改传奇道士神兽升级,1.76复古传奇道士玩家快速升级神兽的技巧
- 自动化工具之UIAutomator
- 那些年我们遇到的坑(3)-basePackages和scanBasePackages
热门文章
- 【Java代码】京东商品全部分类数据获取(建表语句+Jar包依赖+树结构封装+爬虫源代码)包含csv和sql格式数据下载可用
- gulp+babel实现es6压缩,并替换es6语法,压缩html,css
- HYSTRIX实现主线程和子线程的THREADLOCAL上下文传递
- oracle中序列号的使用
- 通过过滤器防止用户通过url访问不在权限内的菜单
- 牛客题霸 NC23 划分链表
- 《IBM-PC汇编语言程序设计》(第2版)【沈美明 温冬婵】——第五章——自编解析与答案
- 爱摸鱼的Dillonh
- python 时间序列预测 币价_python时间序列预测股票走势
- shell的学习和命令使用入门