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

《创造奇迹的编程语言也有黑历史!原来他还有这副面孔?!》

时间:2023-03-26 15:01:58 Python

在下面的示例中,输入和输出由大于号和句点提示符(>>>和...)标记:要重现这些示例,请键入(提示字符)那些不包含迅速的。需要注意的是,练习中遇到的slave提示,表示需要在结尾多输入一个空行,让解释器知道这是一个多行命令的结尾。本手册中的许多示例(包括带有交互式提示的示例)都包含注释。Python中的注释以#字符开始并在行的实际末尾结束注释可以在行的开头开始或跟在空格或代码之后,但不要出现在字符串中。文本字符串中的#字符仅表示#。代码中的注释不会被Python解释,进入示例时可以忽略。以下示例:这是第一条评论spam=1#这是第二条评论#...现在是第三条!text="#Thisisnotacommentbecauseitinsidequotes."3.1.使用Python作为计算器让我们尝试一些简单的Python命令。启动解释器,等待主提示符>>>出现(用不了多久)。3.1.1.数字解释器的行为就像一个简单的计算器:可以将一些表达式输入其中,它会给出一个返回值。表达式语法简单明了:运算符+、-、*和/与其他语言(例如:Pascal或C)相同;括号(())用于分组。示例:2+2450-5*620(50-5*6)/45.08/5#除法总是返回浮点数1.6整数(例如2,4,20)是带有小数部分的int类型(例如,5.0,1.6)是float类型。我们将在本教程的后面看到更多关于数字类型的信息。除法(/)始终返回浮点数。要使用底除法并获得整数结果(丢弃任何小数部分),您可以使用//运算符;计算余数可以使用%17/3#经典除法返回一个float5.66666666666666717//3#底除法丢弃小数部分517%3#%运算符返回除法的余数253+2#结果除数+余数17通过Python,也可以使用**运算符计算幂[1]:5**2#5squared252**7#2的7128次方等号('=')用于赋值到变量。赋值后,直到下一个提示才显示结果:width=20height=5*9width*height900变量在使用前必须“定义”(赋值),否则会报错:trytoaccessanundefinedvariable...nTraceback(最近调用最后一次):文件“”,第1行,在NameError:name'n'isnotdefined完全支持浮点数;在整数和浮点数的混合计算中,整数会被转换为浮点数:3*3.75/1.57.57.0/23.5在交互模式下,将最后一个表达式的值赋值给变量_。这样我们就可以把它当作桌面计算器来使用,非常方便连续计算,例如:tax=12.5/100price=100.50price*tax12.5625price+_113.0625round(_,2)113.06这个变量是为了用户只读。不要试图给它赋值——你只会创建一个单独的同名局部变量,它掩盖了系统内置变量的魔力。除了int和float之外,Python还支持其他数字类型,例如Decimal和Fraction。Python还内置了对复数的支持,使用后缀j或J表示虚部(例如3+5j)。3.1.2.字符串与数字相反,Python还提供了可以用多种不同方式表示的字符串。它们可以通过单引号('...')或双引号("...")[2]来标识。\可用于转义引号:'spameggs'#单引号'spameggs''doesn\'t'#使用\'转义单引号..."doesn't""doesn't"#...或者用双引号代替“不”'“是的,”他说。''“是的,”他说。““不是,”她说。“”“不是,”她说。在交互式解释器中,输出字符串用引号括起来,特殊字符用反斜杠转义。虽然看起来可能和输入的不一样,但两个字符串是相等的。如果字符串中只有单引号但没有双引号,使用双引号,否则使用单引号。print()函数通过省略引号和打印转义的特殊字符来生成更具可读性的输出:'"Isn\'t,"shesaid.''"Isn\'t,"shesaid.'print('"Isn\'t,”她说。')“不是,”她说。s='第一行。\n第二行。'#\n表示换行#没有print(),\n包含在输出'第一行。\n第二行。'print(s)#使用print(),\n产生新行第一行。第二行。如果前面有\的字符被视为特殊字符,则可以通过在第一个引号前加上r:print('C:\some\name')#这里的\n表示换行符来使用原始字符串!C:\someameprint(r'C:\some\name')#注意引号前的rC:\some\name字符串文字可以分成多行。一种方法是使用三重引号:"""..."""或'''...'''。行尾换行符会自动包含在字符串中,但可以通过在行尾添加\来避免这种行为。下面的例子:反斜杠可以作为行尾的连续字符串,表示下一行在逻辑上就是这一行的后续内容:print("""\Usage:thingy[OPTIONS]-hDisplaythisusagemessage-HhostnameHostnametoconnectto""")将生成以下输出(注意,第一行没有开头):Usage:thingy[OPTIONS]-hDisplaythisusagemessage-HhostnameHostnametoconnectto字符串可以通过+符号连接(粘在一起)来操作,可以通过*:3次'un'重复,后面是'ium'3*'un'+'ium''unununium'两个相邻的字符串文本自动连接在一起。:'Py''thon''Python'它只用于两个字符串文字,不用于字符串表达式:prefix='Py'prefix'thon'#can'tconcatenateavariableandastringliteral...SyntaxError:invalidsyntax('un'*3)'ium'...SyntaxError:invalidsyntax如果你想连接多个变量或者连接一个变量和一个字符串文字,使用+:prefix+'thon''Python'这个特性特别有用当你想拆分一个长字符串时:text=('Putseveralstringswithinparentheses'''tohavethemjoinedtogether.')text'Putseveralstringsintheparenthesestohavethemjoinedtogether.'字符串也可以被截断(检索)。与C一样,字符串的第一个字符的索引为0。Python没有单独的字符类型;一个字符只是一个长度为1的字符串。:word='Python'word[0]#位置0的字符'P'word[5]#位置5'n'的字符索引也可以为负数,会导致从右开始计算。例如:>>>word[-1]#最后一个字符'n'>>>word[-2]#倒数第二个字符'o'>>>word[-6]'P'注意-0实际上是0,所以不会导致从右开始计数。除了索引之外,还支持切片。索引用于获取单个字符,切片让您获取子字符串:>>>word[0:2]#charactersfromposition0(included)to2(excluded)'Py'>>>word[2:5]#位置2(包括)到5(不包括)的字符'tho'注意包括开头的字符,不包括结尾的字符。这使得s[:i]+s[i:]总是等于s:>>>word[:2]+word[2:]'Python'>>>word[:4]+word[4:]'Python'Slice索引有非常有用的默认值;省略的第一个索引默认为零,省略的第二个索引默认为切片字符串的大小。:>>>word[:2]#从头到位置2的字符(不包括)'Py'>>>word[4:]#从位置4(包括)到结束的字符'on'>>>word[-2:]#从倒数第二个(包括在内)到结尾'on'的字符有一种方法很容易记住切片是如何工作的:切片时的索引在两个字符之间。左边第一个字符的索引为0,长度为n的字符串的最后一个字符在右边的索引为n。例如:+---+---+---+---+---+---+|磷|是|吨|小时|o|?|+---+---+---+---+---+---+0123456-6-5-4-3-2-1第一行数字文本给出了字符串…6中的索引点0。第二行给出了相应的负指数。切片是两个数字指示边界之间从i到j的所有字符。对于非负索引,如果顶部和底部都在边界内,则切片长度是两个索引之间的差值。例如,word[1:3]是2。尝试使用太大的索引会导致错误:>>>word[42]#thewordonlyhas6charactersTraceback(mostrecentcalllast):File"",line1,inIndexError:stringindexoutofrangePython可以优雅地处理那些无意义的切片索引:索引值过大(即下标值大于字符串的实际长度)将被替换为字符串的实际长度,当上边界大于下边界(即左值大于右值的切片)返回空字符串:>>>word[4:42]'on'>>>word[42:]''Python字符串不能改变了——它们是[不可变的]。因此,对字符串索引的位置赋值会导致错误:>>>word[0]='J'...TypeError:'str'objectdoesnotsupportitemassignment>>>word[2:]='py'...TypeError:'str'objectdoesnotsupportitemassignment如果你需要一个不同的字符串,你应该创建一个新的:>>>'J'+word[1:]'Jython'>>>word[:2]+'py''Pypy'内置函数[len()]返回字符串长度:>>>s='supercalifragilisticexpialidocious'>>>len(s)34另见[TextSequenceType—str]stringissequence支持此类型通用操作的类型示例。【字符串方法】字符串和Unicode字符串都支持大量的基本转换和查找方法。[StringFormatting]此处描述了有关使用[str.format()]进行字符串格式化的信息。[字符串格式化操作]这描述了当字符串和Unicode字符串是%运算符的左操作数时调用的旧式字??符串格式化操作。你是不是也想试试,用Python测试一下你和女神的颜值差距(仅供娱乐,请勿胡思乱想)如果真的遇到了好同事,那你就走运了,加油,赶紧学起来吧。添加微信(谐音):762459510用于python和爬虫技能资源分享,包括python、pythonweb、爬虫、数据分析等Python技能,以及人工智能、大数据、数据挖掘、办公自动化等学习方法。打造从零基础到实际项目开发的全方位解析!3.1.3.列表Python有几种复合数据类型,用于表示其他值。最一般的是列表(list),可以写成方括号之间的逗号分隔值的列表。列表的元素不必是同一类型:>>>squares=[1,4,9,16,25]>>>squares[1,4,9,16,25]就像字符串(和所有其他内置[Sequence]类型),列表可以被索引和切片:>>>squares[0]#索引返回item1>>>squares[-1]25>>>squares[-3:]#切片返回一个新列表[9,16,25]所有切片操作都返回一个包含请求元素的新列表。这意味着以下切片操作返回列表的新(浅)副本:>>>squares[:][1,4,9,16,25]列表还支持像连接这样的操作:>>>squares+[36,49,64,81,100][1,4,9,16,25,36,49,64,81,100]与不可变字符串不同,列表是可变的,允许修改元素:>>>cubes=[1,8,27,65,125]#这里有问题>>>4**3#4的立方是64,不是65!64>>>cubes[3]=64#替换错误的值>>>cubes[1,8,27,64,125]也可以使用append()方法(后面会详细介绍list方法)将新元素添加到列表的末尾:>>>cubes.append(216)#添加6的立方体>>>cubes.append(7**3)#和7的立方体>>>cubes[1,8,27,64,125,216,343]也可以给切片赋值,这样可以改变列表的大小,或者清空它:>>>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[]built-infunction[len()]也适用于列表:>>>letters=['a','b','c','d']>>>len(letters)4允许嵌套列表(创建一个包含其他列表的列表),例如:>>>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'3.2。编程的第一步当然,我们可以使用Python来完成比相加两个更复杂的任务。例如,我们可以编写一个生成Fibonacci子序列的程序,如下所示:>>>#Fibonacciseries:...#两个元素的和定义下一个...a,b=0,1>>>whileb<10:...print(b)...a,b=b,a+b...112358这个例子引入了几个新特性。第一行包含一个多重赋值:变量a和b同时得到新值0和1,最后一行再次使用。在此演示中,在分配变量之前首先评估右侧。右边的表达式从左到右计算。[while]循环在条件(此处b<10)为真时执行。在Python中,与C一样,任何非零整数都为真;0为假。条件也可以是字符串或列表,实际上是任何序列;所有非零长度为真,空序列为假。示例中的测试是一个简单的比较。标准比较运算符与C中的相同:<、>、==、<=、>=和!=。循环体是缩进的:缩进是Python组织语句的方式。Python(还)不提供集成的行编辑,因此您必须为每个缩进行键入TAB或空格。在实践中,建议大家找一个文本编辑器来输入复杂的Python程序。大多数文本编辑器都提供自动缩进。交互式输入复合语句时,必须在末尾输入一个空行来标记结束(因为解释器没有办法猜测你输入的哪一行是最后一行)。需要注意的是,同一个语句块中的每一行必须缩进相同的空格数。为了帮助大家在学习python的路上少走弯路和走弯路,可以听听python高手的课程。每晚8点,他都会有免费的在线直播课。他会讲python,讲的很通俗易懂,也很风趣幽默。既能从知识层面深入浅出,又能从思维的角度让我们知道如何学习python。师从大师最大的价值在于听其所言胜于读十年书,自学的价值在于自学半年多不如别人有大师学习一天,一年365天,他每天晚上都会讲课,如果有喜欢听的同学可以去他的微信*(读音一样):前排是:762,中排是:459,后排是:510,把以上三组字母按顺序组合起来就可以了。这很简单。牛顿曾说过,站在别人的肩膀上,才能看得更高更远,海纳百川,去征服蟒蛇世界的星辰大海。关键字[print()]语句打印给定表达式的值。它控制多个表达式和字符串输出到您想要的字符串(就像我们之前在计算器示例中所做的那样)。字符串打印时不带引号,每两个子项之间插入空格,这样可以使格式更漂亮,像这样:>>>i=256*256>>>print('Thevalueofiis',i)Thevalueofi是65536以逗号结尾可以禁止输出换行:>>>a,b=0,1>>>whileb<1000:...print(b,end=',')...a,b=b,a+b...1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,脚注[[1]](http://www.pythondoc.com/pyth...因为**比-具有更高的优先级,-3**2将被解释为-(3**2)并导致-9。为了避免这种情况并得到9,您可以使用(-3)**2.[[2]](http://www.pyndoc.com/pyth...与其他语言不同,\n等特殊字符用单引号('...')括起来,双引号("...")。两者之间的唯一区别是,在单引号内,您不需要转义"(但您必须转义'),反之亦然。[下一步]"4.深入Python流控制")"2.使用Python解释器")\