应用办公生活信息教育商业
投稿投诉
商业财经
汽车智能
教育国际
房产环球
信息数码
热点科技
生活手机
晨报新闻
办公软件
科学动态
应用生物
体育时事

Python数据结构详解(二)

  学习一门语言,了解其数据结构是基础。由于Python是动态编程语言,所以在定义变量时并不需要事先指定变量的数据类型,变量的声明和初始化是同时进行的。
  Python有如下五大数据结构类型:
  1、Number类型
  2、字符串类型
  3、列表,元组
  4、字典
  5、集合
  下面我们逐一来了解一下
  本篇主要介绍字符串类型,是数据结构类型介绍的第二篇。
  第一篇关于Number类型的介绍,可以点这儿。二、字符串类型
  字符串类型,一般也称String类型,是各个语言中最常用到的数据结构类型。1。1字符串表达方式1。1。1单引号与双引号
  在python语言中,字符串可以用单引号(hello)或双引号(hello)来表示,2种表示方式基本没啥区别str1hellostr2world输出结果:helloworldprint(str1,str2)1。1。2转义符
  如果需要输出带引号的字符串,就会用到转义符()了
  首先,输出单引号的字符串,可以用双引号包起来:str1Itsme!输出结果:Itsme!print(str1)
  再来,输出双引号的字符串,可以用单引号包起来:str1他说:好的输出结果:他说:好的print(str1)
  最后,如何输出既有单引号又有双引号的字符串:str1他说:Itsmeprint(str1)str2他说:Itsmeprint(str2)
  运行报错,这是因为python解释器无法判断字符串中间的引号是正常的字符,还是多余的单引号,所以抛出语法错误!
  那么如何同时输出既有单引号又有双引号的字符串呢?转义符()闪亮登场:str1他说:Itsme输出结果:他说:Itsmeprint(str1)
  转义符的作用就是告诉python解释器,反斜杠()后面的字符是字符串的一部分,而非用于表达字符串。
  附上转义符()的常见用法
  转义字符
  描述
  (处于行尾位置)
  续行符
  反斜杠
  单引号
  双引号
  a
  响铃
  b
  退格
  换行
  v
  纵向制表符
  横向制表符
  r
  回车
  f
  换页1。1。3保持字符串原始含义
  有时候,我们并不想转义符起作用,就是想输出一段介绍转义符的文字,结果被python解释器转义了。
  看个栗子str1在python中,字符用于换行print(str1)
  可以看到,被当成换行了,这与我们的初衷相悖,怎么办呢?
  有三种解决方法:使用反斜杠将反斜杠转义,有点拗口使用repr()函数在字符串前加rstr1在python中,n字符用于换行print(str1)str2在python中,字符用于换行print(repr(str2))str3r在python中,字符用于换行print(str3)
  可以看到,都能完整的输出字符串,不再进行转移了,其中repr()函数还将引号也一并输出。1。1。4三引号
  在python中,我们还会见到一种特殊的字符串表达方式,用三引号表示,既可以是三个单引号,也可以是三个双引号。
  三引号在python中有2种使用方式
  1、用于字符串跨行,不必使用拼接符或换行符str1hello,world!hello,world!hello,world!print(str1)str2hello,world!hello,world!hello,world!print(str2)str3hello,world!hello,world!hello,world!print(str3)
  2、用于注释desc:计算两个数的和parama:加数aparamb:加数bdefsum(a,b):returnabprintsum(1,2)1。2字符串格式化1。2。1格式化基础
  什么叫字符串格式化,百度百科给出了定义:
  格式化字符串(FormatString)是在编程过程中,允许编码人员通过特殊的占位符,将相关对应的信息整合或提取的规则字符串。
  简单来说,字符串格式化相当于定义一个模板,其中有一部分是固定不变的,另一部分是动态变化的。这些动态变化的部分在python中使用操作符进行替换。strtemplateHello,mynameiss,Imdyearsold输出结果:Hello,mynameisLiLei,Im14yearsoldprint(strtemplate(LiLei,14))
  从上面例子可以看出,不仅模板中的格式化参数要用(s、d),格式化操作时候也要用到
  常用的字符串格式化符号如下表所示:
  符号
  描述
  c
  格式化字符及其ASCII码
  s
  格式化字符串
  d
  格式化整型
  u
  格式化无符号整型
  o
  格式化无符号八进制
  x
  格式化无符号十六进制
  X
  格式化无符号十六进制(大写)
  f
  格式化浮点数字,可以指定精度值,比如。4f
  e
  用科学计数法格式化浮点数
  百分号
  常用格式化辅助符号:
  辅助符号
  描述
  m。n
  m是显示的最小总宽度,n是小数位数
  左对齐
  正数前面显示加号
  八进制前显示0o,十六进制前显示0x0X
  0hr显示的数字前面填充0取代空格
  学了这么多,不动手写一写全白搭print(c97)print(shelloworld)print(d97)print(o97)print(x97)print(X97)print(e100000000000)print(())print(8。3f97。4567)print(8。3f97。4567)print(08。3f97。4567)
  1。2。2模板字符串
  在string模块中,有个Template的类,可批量替换所有相同的格式化参数,与上面不同的是,格式化参数用符号templateTemplate(str1isstr1,notstr2)输出结果:oneisone,nottwoprint(template。substitute(str1one,str2two))1。2。3format()方法
  字符串本身也有一个format()方法用于格式化自身,字符串自身的格式化参数与上面2种又不一样(抓狂!!!),用的是{}占位符。
  format()方法常用的匹配方法有三种:不带编号,即{};带数字编号,可调换顺序,如{0}、{1}等;带关键字,如{name}、{age}等。输出结果:123print({},{},{}。format(1,2,3))输出结果:321print({2},{1},{0}。format(1,2,3))输出结果:132print({a},{b},{c}。format(a1,c2,b3))
  format()方法功能很强大,远不止上面这些,下面例子输出结果:我,我,我print({str1!s},{str1!r},{str1!a}。format(str1我))
  除此之外,format()方法还支持很多其他控制符,比如,将整数按浮点数输出、进制之间转换、控制字符宽度与精度、对齐方式、0填充等。print({:f}。format(10))print({:o}。format(10))print({:x}。format(10))print({:X}。format(10))print({:10。4f}。format(10))print({:010。4f}。format(10))print({:。5}。format(hello,world))print({:,}。format(1010))print({:10。4f}。format(10))print({:10。4f}。format(10))print({:10。4f}。format(10))
  1。2。4f字符串
  python3。6版本以后,引入了f字符串,可以很方面的直接引用外部变量。str1hellostr2world输出结果:hello,world!print(f{str1},{str2}!)1。3字符串方法
  字符串方法太多了,这里主要介绍一些常见的方法,可以完成日常大部分字符串操作,其他的感兴趣的可以自行查阅字符串连接:join()join()方法用于连接列表中的元素l〔1,2,3〕输出结果:123print(。join(l))字符串连接还可以用字符串连接符print(123)字符串连接还可以用格式化方法print(sss(1,2,3))字符串查找:find()find()方法用于在字符串中寻找字串,如果找到,返回字串的索引,如未找到,返回1输出结果:9print(helloworld。find(ld))输出结果:1print(helloworld。find(xx))字符串分割:split()split()方法是join()方法的逆操作,将字符串分割为列表输出结果:〔hello,world〕print(helloworld。split())默认以空格分隔输出结果:〔hello,world〕print(helloworld。split())输出结果:〔1,2,3〕print(123。split())字母大小写转换:upper()、lower()输出结果:HELLOWORLDprint(HeLloWOrld。upper())输出结果:helloworldprint(HeLloWOrld。lower())字符串替换:replace()replace()方法用于在字符串中替换指定的子串,如果未找到子串,则不替换输出结果:hiworldprint(helloworld。replace(hello,hi))输出结果:helloworldprint(helloworld。replace(hi,hoho))字符串截取:strip()strip()方法用于截取字符串前后指定字符,默认是空格str1{:12。4f}。format(10)输出结果:10。0000print(str1)输出结果:10。0000print(str1。strip())输出结果:str1print(str1。strip())索引和切片
  字符串在python中本质上是字符列表,既然是列表,就有索引概念,索引编号默认是从0开始的,并且在python中,还支持反向索引,用负数表示:str1helloworld输出结果:hprint(str1〔0〕)输出结果:lprint(str1〔2〕)
  切片操作可以从列表中根据指定的开始索引与结束索引来获取一个新的子列表,切片有如下几个特点:
  (1)切片截取的是左开右闭区间,s〔1:3〕取的是s〔1〕与s〔2〕
  (2)结束索引若为0,会获取一个空列表
  (3)结束索引在列表中的位置若小于等于开始索引在列表中的位置,也会返回一个空列表
  (4)切片默认步长是1,也可以手动指定,但步长不能为0,否则会抛出异常str1helloworld输出结果:hellprint(str1〔0:4〕)结束索引为0,输出结果:(空列表)print(str1〔4:0〕)输出结果:oworlprint(str1〔4:1〕)结束索引在列表中的位置小于等于开始索引在列表中的位置,输出结果:(空列表)print(str1〔4:7〕)省略开始索引,表示从0开始,输出结果:hellprint(str1〔:4〕)省略结束索引,表示截取到列表结尾,输出结果:helloworldprint(str1〔0:〕)省略开始与结束索引,表示复制整个列表,输出结果:helloworldprint(str1〔:〕)指定步长为2,输出结果:hlowrdprint(str1〔::2〕)指定反向步长为1,输出结果:dlrowollehprint(str1〔::1〕)
  下篇开始介绍列表与元组,如果觉得小编写的不错的话,麻烦给个关注,点赞、转发
  更多的Python学习资料,可以到这儿获取,持续不间断地免费更新Python资料
  头条创作挑战赛

广东7大怪菜,都是本地人的心头爱,外地人直呼真敢吃广东,云山珠水,珠水夜韵。卓越的自然条件养育了广东人,也在历史的长河中不断丰富了当地的美食。广东的美食有很多种类,最有名的就是广式早茶。像家喻户晓的煲仔饭、肠粉、虾……技术人员必看!企业级数字孪生应用开发平台操作指南图解面向前端技术团队的强大易用的能力开放平台;支持原生JavaScript,主流前端框架Vue、React、Angular的平台能力开放;帮助客户快速获得数字孪生场景的交互能力。……颜值即正义三款超高颜值手机推荐一款比一款好看价格不超过369目前这个社会就是一个看脸的时代,颜值即正义,有一部好看的手机会带给你好的心情,今天我就推荐三款超高颜值的手机,一款比一款好看价格不超过3699元,颜值即正义,看看你喜欢哪款?华……海参先生收入曝光!媒体坦言限薪令影响有限,国足仍看不见希望大年初一晚,国足在客场遭到了越南队31痛击,吃下一场耻辱性的败仗,在世预赛还剩两轮的情况下,国足提前无缘世界杯。而此前,中超联赛的多支球队相继爆雷,一半以上的球队出现了欠薪的情……科技与颜值兼得绿联100W智充魔盒Pro让你体验桌面新美学多功能排插相信还是有不少人使用过,但是在充电兼容性上能做到很全面的却不多,今天推荐的这款绿联智充魔盒家族的第三位成员绿联100W智充魔盒Pro,不论上班、居家、出差都非常适用。……最牛造车新势力!特斯拉第300万辆车下线,目标8年达到2008月5日,特斯拉在得州超级工厂举办了年度股东大会,特斯拉CEO埃隆马斯克出席并发表了演讲。马斯克表示,特斯拉在上周达成了全球第300万辆的新车下线,而在10年前,该公司仅……中国足球要振兴,破除陋习在比拼踢球不行纹身行,个个认为己球星,本事用在球场上,踢出成绩当球星。纹身能算啥爱好?一种变相的炫耀,在跟风模仿西方,此种行为很不好。……吃得多却不长身体,这种占肚子的食物少给孩子吃腿抽筋,医学上称为腿痛性痉挛,表现为腿部一组或几组肌肉突然、剧烈、不自主地收缩。抽筋虽然仅持续几分钟,但是发作过后肌肉的不适感或触痛可以持续几个小时。临床上多见的是老年人小腿腓……体操皇后刘璇不嫁豪门嫁爱情,40岁生2胎,风光背后有泪水作为一位体操运动员,21岁已经算是高龄了。但在2000年,刘璇依旧凭借着对体操的钟爱,站上了悉尼奥运赛场上。结果,这次比赛,刘璇出乎意料地取得了最高分,……恭喜皇马!第3签浮现,武磊队友重返老东家,34岁巨星迎最合替由于阿扎尔在季前赛在中锋表现表现一般,加上约维奇和马约拉尔离开,以及马里亚诺也被摆上货架的情况下,皇马有意在夏窗重新引进一位新的中锋承担本泽马的替补。根据西班牙阿斯报透露,效力……再刷一把天之上通关攻略《再刷一把》天之上是游戏中的一个后期关卡,玩家在进行到这个流程的时候基本上就是要打最终boss了,可能有玩家还不知道天之上要怎么才能够通过,下面小编就给大家整理了具体的通关攻略……家长们要会正确的夸孩子和尊重孩子用这几个小技巧套出爱学习的孩子比天天吼骂管用100倍,夸大自律。宝贝你太厉害了,不想写作业还能静下心来快速完成,你是怎么做到的呀?教教我呗!挫折引导。这个事情这么难……
仅2999元,大电池120W快充1亿像素,雷军又发布一款骁龙上个月4号,雷军发布了下半年小米四款重量级新机,也就是小米12S系列,分为小米12S,小米12SPro,小米12SUltra,另外还有一款搭载天玑9000芯片的小米12Pro天……在北京遇见古罗马,503件文物向观众讲述跨度长达500年历史条条大路通罗马。罗马不是一天建成的。这两句励志的谚语,在中华大地流传度极高,近乎妇孺皆知。古罗马人以坚韧、务实之风开创了西方文明的源头,在历史长河中留下浓墨重彩的一笔,与源远流……一家领先的可再生能源公司的品牌识别系统EDP是可再生能源领域的全球领导者。EDP成立于葡萄牙,目前在28个市场开展业务,并在道琼斯指数中上市,是世界第四大风能生产商。Pentagram设计的品牌需要表达EDP……每日一款百元左右的彩宝推荐橄榄石,天然宝石,镁铁硅酸盐,晶体呈粒状。橄榄石是自然界存在的最古老的宝石之一,也是历史上最重要的绿色宝石。它是八月生辰石,橄榄石守护着狮子座,象征和平、幸运等美好意愿。……剩饭不能吃?掌握正确的保存技巧,剩饭依然香喷喷我们常说不要吃剩菜,其实比剩菜更要小心的是剩饭,有研究发现,淀粉类食物,也就是我们的主食,在常温中放置四个小时就可能已经被葡萄球菌寄生了,时间再长点就会发生变质,不能再吃了。而……俄罗斯每天减少供应300万桶石油后,接下来,油价或涨到200王爷说财经讯:就在本周,国际能源署(IEA)发出警告,受到西方制裁的影响,从4月开始,每天可能与300万桶的俄罗斯原油与石油产品可能无法进入石油市场,而这也可能最终演变成数十年……提醒中年女人,秋天穿风衣尽量别配打底裤,今年流行这样穿三四十岁的中年女人偏熟龄女性在穿衣上更注重简洁舒适,但越简洁的搭配越不能敷衍,反而要通过精心把控细节来体现质感。风衣可以说是季节过渡时期具有代表性的单品之一,如此经典的单……朱玲玲儿媳宣布怀孕5个月!1年前曾流产,再度怀孕后一度焦虑7月18日,朱玲玲儿媳Joyce透过个人社交账号宣布怀孕5个月,消息一出,好友们留言恭喜。Joyce分享了多张孕照,照片中的她穿了一袭浅色无袖长裙出镜,头发扎了起来,化了……10换1!马刺追求杜兰特筹码曝光,重建之路何时能走向正轨马刺是NBA历史上唯一的小球市王朝,就是这样一支队伍,在联盟大获成功。但自2016年邓肯退役后,马刺就已经江河日下,不过好在有伦纳德,这是他们未来的基石。本应继续前景光明……勇士战胜独行侠,率先进入总决赛!库里喜提历史第一座mvp奖杯库里、格林和汤普森在大通中心,击掌相庆。这位意味着,时刻三年,勇士铁三角终于又杀回了总决赛。在北京时间5月27日,在大通中心球馆里,坐镇主场的勇士120110战胜独……瞄准新一代家庭游需求60家酒店推出悟空小侠主题体验房图说:悟空小侠主题房将限时登陆上海等60家皇冠假日酒店及度假村采访对象供图新民晚报讯(记者杨玉红)宅酒店微度假需求持续增长,尤其在双减方案出炉后,国内家庭游市场带来了前所……神舟系列飞船(神舟一号到十五号的历程)神舟十四号1992年9月21日,中央政治局常委会议决策实施中国载人航天工程(代号921工程),并确定了中国载人航天三步走的发展战略。第一步,发射载人飞船,建成初步配……
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网