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

Python基础:数字字符串和列表

时间:2023-03-26 11:16:38 Python

简介Python的主要应用是科学计算,而科学计算的基础是数字、字符串和列表。本文将详细介绍这三种数据类型的使用。数字数字在任何科学计算中都是非常重要的类型,Python中最常见的数字类型是int和float。看几个基本的数字运算:In[8]:1+1Out[8]:2In[9]:3*2+10Out[9]:16In[10]:(65+23)/4Out[10]:22.0上面我们可以看到int类型是没有小数的,float类型是有小数的。除法运算(/)始终返回float类型。如果您想进行底除法以获得整数结果(忽略小数部分),您可以使用//运算符;如果要计算余数,可以使用%In[11]:54/4Out[11]:13.5In[12]:54//4Out[12]:13In[13]:54%4Out[13]:2**可以表示幂运算:In[14]:4**3Out[14]:64我们可以把数字运算赋值给一个特定的变量,这个变量可以用于后续的计算。In[15]:a=12In[16]:b=14In[17]:a*bOut[17]:168在交互环境中,_表示之前的输出:In[17]:a*bOut[17]:168In[18]:100+_Out[18]:268除了int和float,Python还支持其他数据类型,比如Decimal和Fraction,甚至还有复数。字符串Python中字符串的三种表示形式,可以用单引号、双引号和三引号来表示。In[19]:site1='www.flydean.com'In[20]:site2="www.flydean.com"In[21]:site3="""www.flydean.com"""三个引号主要用于跨行输出,字符串中的回车和换行会自动包含在字符串中。如果您不想包含它,只需在该行的末尾添加一个\。如下:print("""\Usage:thingy[OPTIONS]-h显示这个用法信息-HhostnameHostnametoconnectto""")如果需要转义,可以使用反斜杠\In[22]:site4="www.\"flydean\".com"In[23]:site4Out[23]:'www."flydean".com'如果不希望\前面的字符转义成特殊字符,可以使用原始字符String方式,只需在引号前加r即可:在[24]中:print(r"www.\"flydean\".com")www.\"flydean\".com字符串可以通过+连接使用*复制:In[25]:"www"+"flydean.com"Out[25]:'wwwflydean.com'In[26]:"www.flydean.com"*3Out[26]:'www.flydean.comwww.flydean.comwww.flydean.com'两个或多个相邻的字符串文字(用引号括起来的字符)将被自动连接起来。In[27]:"www""flydean.com"Out[27]:'wwwflydean.com'注意上面的自动连接操作只对两个字面量有效,如果是变量会报错。一个字符串会被看作一个字符数组,所以可以通过string[index]的形式来访问。在[28]中:site5="www.flydean.com"在[29]中:site5[3]Out[29]:'.'如果索引为负数,则从右开始计数:In[30]:site5[-3]Out[30]:'c'因为-0与0相同,负数从-1开始。除了索引,字符串还支持切片。索引可以获取单个字符,而切片可以获取子字符串:In[31]:site5[1:5]Out[31]:'ww.f'请注意,切片的开头始终包含在结果中,但结尾不包括在内。这使得s[:i]+s[i:]始终等于sIn[33]:site5[:4]+site5[4:]Out[33]:'www.flydean.com'切片索引具有默认值,当起始索引被省略时默认为0。如果索引超出字符串的边界,则会发送越界错误。在[34]:site5[100]-----------------------------------------------------------------------IndexErrorTraceback(最近调用最后)in()---->1site5[100]IndexError:stringindexoutofrange然而,自动处理切片中超出范围的索引:In[36]:site5[:100]Out[36]:'www.flydean.com'因为字符串是不可变的,我们不能通过索引修改字符串:In[37]:site[2]="A"-----------------------------------------------------------------------()---->1site[2]="A"中的TypeErrorTraceback(mostrecentcalllast)TypeError:'str'objectdoesnotsupportitemassignmentlenisusedtocountingthelengthofthestring:In[38]:len(site5)Out[38]:15字符串对象str的本质是一个字符串对象str。str的基本方法可以看一下:在[39]:site5。capitalize()encode()format()isalpha()islower()istitle()lower()replace()rpartition()splitlines()title()casefold()endswith()format_map()isdecimal()isnumeric()isupper()lstrip()rfind()rsplit()startswith()translate()center()expandtabs()index()isdigit()isprintable()join()maketrans()rindex()rstrip()strip()upper()count()find()isalnum()isidentifier()isspace()ljust()partition()rjust()split()swapcase()zfill()有兴趣的同学可以自己研究。列表列表是由方括号表示的数据集合。列表中的数据可以是多种数据类型,但一般情况下,我们在列表中使用同一种数据类型。In[40]:ages=[10,14,18,20,25]In[41]:agesOut[41]:[10,14,18,20,25]和字符串一样,列表也支持索引和切片。其实只要是序列类型的数据类型,都支持索引和切片。In[42]:ages[3]Out[42]:20In[43]:ages[:2]Out[43]:[10,14]In[44]:ages[:]Out[44]:[10,14,18,20,25]请注意,切片列表会返回一个新列表。但是这个新列表是一个浅拷贝,意味着新列表的元素是对原始列表中元素的引用。列表也支持拼接操作:In[45]:ages+[9,11]Out[45]:[10,14,18,20,25,9,11]不同于String的不变性,列表是可变的,这意味着我们可以通过索引修改列表的值:In[46]:ages[0]=100In[47]:agesOut[47]:[100,14,18,20,25]列表的底层类型是一个列表,我们可以看看列表中的方法:[51]中:ages.append()count()insert()reverse()clear()extend()pop()sort()copy()index()remove()我们可以使用append追加列表的值,或者使用count来统计列表中元素的个数,等等。上面我们提到,列表的切片是对原列表的引用,所以我们可以通过给切片赋值来修改原列表的值:>>>letters=['a','b','c','d','e','f','g']>>>字母['a','b','c','d','e','f','g']>>>#替换一些值>>>letters[2:5]=['C','D','E']>>>letters['a','b','C','D','E','f','g']>>>#现在删除它们>>>letters[2:5]=[]>>>letters['a','b','f','g']>>>#通过用空列表替换所有元素来清除列表>>>letters[:]=[]>>>letters[]列表也可以嵌套以构建一个多层列表:>>>a=['a','b','c']>>>n=[1,2,3]>>>x=[a,n]>>>x[['a','b','c'],[1,2,3]]>>>x[0]['a','b','c']>>>x[0][1]'b'本文已收录于http://www.flydean.com/03-python-number-list-string/最流行的解读,最深刻的干货,最简洁的教程,很多小技巧你不知道的等着你去发现!欢迎关注我的公众号:《程序那些事儿》,懂技术,更懂你!