当前位置: 首页 > 后端技术 > Python

初识python【今天开始写代码】第6课

时间:2023-03-26 17:00:40 Python

参考来源:Vitu.AI在前面的课程中,我们逐渐了解了不同类型的值(字符串、整数和浮点数)和两批数据结构(列表和元组)存储数值。那么这节课,我们就来仔细看看我们一直在说的字符(字符串)是什么,以及字典(dict),这是另一种批量存储值的方式。什么是字符串?处理字符串是Python也为人所知的强大功能之一。作为一名数据科学家,您每天都必须处理文本处理。下面简单回顾一下上节课学习的字符串的应用。#将字符串赋给变量x='Plutoisaplanet'y="Plutoisaplanet"#使用运算符确定字符串的布尔值x==y如果我们要引用的文本包含单引号,然后我们选择使用双引号来包含这段文字;同样,如果我们要引用的文本内容包含双引号,那么我们选择使用单引号来包含这段文字。我们看下面这个具体的例子:print("Pluto'saplanet!")print('我的狗叫“Pluto”')如果我们尝试用单引号来引用包含单引号的文本,那么就不是很聪明的蟒蛇会感到困惑。比如python会认为下面只需要显示'Pluto',就会对后面的'是行星!'产生怀疑!并报错。print('Pluto'saplanet!')当然,如果我们坚持使用单引号,那么我们还是可以使用反斜杠()来解决python报错的问题。让我们看看下面的解决方案:print('Pluto\'saplanet!')或者,我们可以使用三重引号来解决这个问题。简单的说,只要在你要引用的文本前后加上三个单引号,python就会识别文本中包含的是单引号还是双引号。print('''冥王星是一颗行星!''')让我们更进一步。对于print()函数,值得一提的是它带有一个换行函数。除非,我们通过参数end特别强调不需要换行。我们来看下面这个例子:print("hello")print("world")print("hello",end='')print("pluto",end='')那么,关于print()的时候函数中的参数需要换行,怎么解决呢?自然是刚学了反斜杠(),也就是转义来解决。我们来看下面这个例子:hello="hello\nworld"print(hello)再总结一下,关于反斜杠()的用法。whatyoutype...whatyougetexampleprint(example)'''What'sup?'What'sup?"""那是"酷""那是"酷"\\"看,一座山:/\"看,一座山:/\nnewline"1n23"123stringsaresequence字符串可以认为是字符序列。在上一课中,我们了解到我们可以用列表做的所有事情,我们也可以用字符串做。#索引(indexing)planet='Pluto'planet[0]#切片(slicing)planet[-3:]#字符串有多长?len(planet)#是的,我们也可以循环这个字符串[char+'!'forcharinplanet]但是,字符串有一个明显不同于列表的属性,字符串和元组一样,不能被修改。#当我们想改变一个现有字符的值时,python会报错planet[0]='B'#当我们想添加一个新字符的值时,python也会报错planet.append('s')characterStringMethods在前面的课程中,我们介绍过方法(method)是一个对象(object)本身可以调用的函数。那么,对于一个字符串,可以调用哪些方法呢?让我们看一些例子。#将整个句子改为大写claim="Plutoisaplanet!"claim.upper()#然后把整个句子改成小写claim.lower()#找到字符串中某个字母的索引位置claim.index('o')#判断一个字符串是否以某个单词开头#我们defined`planet='Pluto'`claim.startswith(planet)#判断一个字符串是否以某个词结尾claim.endswith('dwarfplanet')接下来,我们介绍两种新的方法,分别针对字符串和列表。str.split()可以将字符串转换为较小字符串的列表,除非另有说明,否则以空格分隔。这对于将我们从一个大字符串拆分为一个单词列表非常有用。words=claim.split()words如果我们想处理其他格式的字符串,可以给split()函数传入参数。我们来看一个例子:datestr='1956-01-31'year,month,day=datestr.split('-')print(year)print(month)print(day)str.join()是一个总和str.split()的相反函数,可以将一串字符串拼接成一个长字符串。具体来说,两个函数使用相同的参数,只是排列位置不同:str.join(seperator)seperator.join(str)'/'.join([month,day,year])#我们可以使用任意字符串作为我们要连接的节点。'?'.join([word.upper()forwordinwords])在第一课中,我们说过加号(+)和乘号(*)在python中被赋予了特殊的魔力。我们可以直接使用它们来操作字符串。让我们看一个例子:planet+',我们想你。但是,值得注意的是,加号(+)仅适用于同一类型的事物。#当我们混合`str`和`int`的值时,pyhton会报错position=9planet+",youllalwaysbethe"+position+"thplanettome."#我们需要把所有的东西都转换成`str`planet+",你将永远是我的"+str(position)+"thplanet."上面的代码看起来有点乱,str.format()函数可以帮助我们让这一行代码看起来更整洁。像“{},对我来说你永远是第{}个星球”这样的代码是不是看起来更整洁?str.format()函数可以帮助我们自动调整事物的格式为字符串。其中,花括号{}用来放置我们要插入值的地方。format()函数可以做的更多,我们来看一个例子:pluto_mass=1.303*(10**22)earth_mass=5.9722*(10**24)population=52910390"{}重约{:.2}公斤({:.3%}ofEarth'smass).它是{:,}Plutonians的家园。".format(planet,pluto_mass,pluto_mass/earth_mass,population,)让我们按顺序一一解读大括号{的内容}:{:.2}表示保留两位小数{:.3%}表示保留三位小数,形式为百分号{:,}表示使用千位分隔符#同样,`格式()`也可以通过索引赋值。#我们同样使用三个单引号来引用文本s='''Pluto'sa{0}.No,it'sa{1}.{0}!{1}!'''.format('planet','dwarfplanet')print(s)str.format()这个函数可以以多种不同的方式使用。如果您仍然感兴趣,可以在pyformat.info或官方文档中查看更多介绍。字典字典(Dict)是python内置的一种数据结构,用于将键(keys)映射到值(values)。我们来看一个例子:numbers={'one':1,'two':2,'three':3}在这个例子中,“one”、“two”和“three”是键,1、2和3是它们对应的值。字典对于获取值非常友好,可以通过方括号的语法访问,类似于列表和字符串的索引。让我们看看下面的例子:numbers['one']值得一提的是,字典和列表一样是可以编辑的。#让我们添加一个新的键和值的映射numbers['eleven']=11numbers#让我们用相应的值替换现有的键numbers['one']='Pluto'numbers字典理解类似于列表理解,字典数据结构还具有字典理解的性质。让我们看一个例子:planets=['Mercury','Venus','Earth','Mars','Jupiter','Saturn','Uranus','Neptune']planet_to_initial={planet:planet[0]forplanetinplanets}planet_to_initialin也可以用在字典中判断当前字典是否有这个key:'Mercury'inplanet_to_initial'Moon'inplanet_to_initial一般来说,字典的keys可以用来循环:foriinplanet_to_initial:print("{}={}".format(i,planet_to_initial[i]))对于字典,我们可以使用dict.keys()和dict.values()来访问所有键或者所有值的集合在这本词典中,分别。我们来看一个比较有趣的操作:#从字典`planet_to_initial`中获取所有行星的首字母,并用空格组合起来''.join(sorted(planet_to_initial.values()))之前说过,字典中的keys可以用来循环,通过dict.items()函数,可以将字典的key和value进行相应的循环。让我们一起来了解一下:#还记得反斜杠的用法和含义吗?forplanet,initialinplanet_to_initial.items():print("{}beginswith\"{}\"".format(planet.rjust(10),initial))原文地址:initialpython【今天开始写代码】无.六节课