字符串索引Python Tutorial(三):一个对Python的非正式介绍 字符串索引

新手发帖,很多方面都是刚入门,有误错的地方请大家见谅,欢迎批评指正

    在接下来的例子中,入输和输出将通过是不是有示提符(>>>和...)来行进辨别。要重做示例,当示提符涌现后,你入输有所的容内都必须在示提前面。是凡不以示提符开始的行都是从解释器输出的容内。如果一行只有一个第二示提符本身,意味着你必须入输一个空行,这是用来束结一个多行令命。

    这个手册面里含包多许例子,还有注释。注释在Python面里以#字符开始,直到本行束结。注释可以涌在现一行的开始处,或者跟在空格和代码前面,不在字符串字面量值面里。字符串字面量值面里的#字符就是一个#字符。因为注释使代码更加清晰,其实不被Python解释,当你重做这些示例时可以省略它们。

    一些示例:

    

    

3.1 应用Python作为一个盘算器

    让我们实验一些简略的Python令命。启动解释器并等待主示提符(>>>)。

    

3.1.1 数字

    解释器就像一个盘算器,你可以入输一个表达式,它会盘算出值。表达式法语较比直白,操纵符+ - * /和其它大多数语言中的一样。括号可以用来组分。例如:

    

    意注:你可能看到的并非这个结果。浮点数结果在不同的器机上可能不同。稍后我们将会分析更多关于控制浮点数输出表现的容内。

    为了现实整数想除,弃丢小数分部,取得整数结果,应用另一个操纵符//:

    

    等号(=)是用来把一个值赋给一个变量,然后,在下一个示提符之前没有结果表现:

    

    一个值可以同时赋给多个变量:

    

    变量在应用前必须定义(赋给一个值),否则错出:

    

    操纵符完整支撑浮点运算,当混合型类的操纵数同时涌现会把整型转化为浮点型:

    

    单数一样被支撑,虚部带一个缀后j或J,带有一个非零实部的单数表示为(real+imagj),或者被建创为complex(real,imag)函数。

    

    单数是总被表示为两个浮点数,实部和虚部,从单数z中抽出这两分部应用z.real和z.imag。

    

    浮点型和整型的转换函数对于单数其实不实用,把一个单数转换为一个实数并非一个确正的做法。应用abs(z)取得它的数量值或z.real取得它的实部:

    

    在交互式模,最后一个打印的表达式的值将被赋给_(下划线)。这意味着当你把Python用作面桌盘算器时,在某种程度上使得续继盘算变得更加易容,例如:

    

    这个变量应该被作当读只的,不要给它式显值赋,你可以建创一个同名的地本变量遮住建内的变量和其魔力行为。

    

3.1.2 字符串

    除了数字外,Python也可以操纵字符串,有几种表示式方。可以被单引号或双引号括住:

    

    解释器以和入输一样的式方打印出字符串操纵的结果,在引号面里,包含引号和其它趣有的被反斜线义转的字符,来表现确精的值。如果一个字符串面里含包单引号但不含包双引号,那这个字符串就用双引号包含,相反就用单引号来包含。print()函数为这些入输字符串发生一个更加可读的输出结果。

    字符串字面量值可以应用几种式方来跨横多行。续继行可以被应用,行在的末端加一个反斜线来指示下一行在逻辑上是这一行的续继:

    

    意注,新行仍然需要被嵌入到字符串中,应用\n,行在末反斜线前面的新行将被弃丢(敲回车时发生的换行符)。示例输出一下容内:

    

    或者字符串也可以被一对匹配的三个引号围包,"""或'''(三个双引号或单引号),行束结符不需要义转,但是它们会被含包在字符串中。所以面下示例应用一个义转来防止一个不希望的初始空白行。

    

    发生一下输出:

    

    如果我们把字符串字面量值作为“原始”字符串,\n将不再被转化为新行,行末的反斜线,换行符都将作为数据被含包在字符串中。因此,示例:

    

    将打印出:

    

    字符串可以应用+来接连,*来重复:

    

    两个相邻的字符串字面量值将主动被接连;面上示例中的第一行也可以被写成 word = 'Help' 'A';只有在两个字面量时才起作用,其它意任的字符串表达式都不行:

    

    字符串可以通过下标行进索引,第一个字符的下标是0。没有独自的字符型类,一个字符就是长度为一的字符串。就像在符图编程语言中,子字符串可以通过片切的标法记来指定,被冒号分割的两个索引。

    

    片切索引有具有效的默许值,第一个索引被疏忽时默许为0,第二个索引被疏忽时默许是字符串的长度。

    

    Python字符串不能被转变,向一个指定索引位置值赋会致导误错:

    

    然而,应用结合的容建内创一个字符串是简略和有效的:

    

    这是一个有效的变不的片切操纵,s[:i] + s[i:] 即是 s。

    

    不正常的片切索引可以被很好的处置,一个索引如果太大会被替换为字符串的长度,如果上界比下界小的话返回空字符串。

    

    索引可是以数负。这样是从侧右开始计数。例如:

    

    但是-0其实就是0,所以它其实不从侧右开始计数。

    

    越界的数负片切索引会被截断,但是这类情况在只有一个元素(非片切)的索引时是误错的:

    

    一种住记片切如何作工的式方是把索引作当字符面里的点,第一个字符的左缘边被标记为数字0,一个长度为n的字符串的最后一个字符的右缘边有具的索引是n,例如:

    

    第一行的数字给出了索引0..5在字符串中的位置。第二行给出了响应的数负索引。从i到j的片切由标记为i和j缘边之间的有所字符构成。

    对于非负索引,片切的长度就是索引的差值,如果它们都在边界内之。例如,word[1:3]的长度是2。

    建内函数len()返回字符串长度:

    

    

3.1.3 关于Unicode

    从Python3.0开始,有所的字符串都支撑Unicode。

    Unicode的处好就是为在现和从前的每个脚本面里的每个文本字符都供提一个序数。之前,对于脚本字符只有256个可能的序数。文本被界限在一个代码页,它把序数映射到脚本字符。这致导多许乱混尤其是谈到软件国际化的时候。Unicode处理了这些问题,通过为有所的脚本只定义一个代码页。

    如果你想在字符串面里含包一个特别的字符,你可以应用Python的Unicode义转编码来实现它。面下的示例表现如何做:

    

    义转序列\u0020表示在指定位置插入一个Unicode字符,它的序值数是0x0020(空格)。

    其它的字符应用它们各自的序值数直接作为Unicode序值数来行进解释。如果你有一些字符串字面量值是应用多许西方国家的Latin-1编码的,你会现发它非常便利,因为Unicode的低256个字符和Latin-1的256个字符一样。

    除了这些标准编码外,Python供提了一个全部的以一个已知编码为基础建创Unicode字符串的其它式方的集合。

    把字符串应用指定的编码转换为字节序列,字符串对象供提了一个encode()方法,带有一个参数,是编码的名字。编码名称最好应用小写。

    

    

3.1.4 列表

    Python有多许复合数据型类,用来对其它的值行进组分。用途最多的是列表。它可以表示为写在中括号面里被逗号分割的项。列表面里的项不需要都是相同型类。

    

    和字符串的索引一样,列表的索引从0开始,可以被片切,接连等:

    

    有所的片切操纵返回一个新的含包请求元素的列表。这意味着面下的片切返回一个列表a的浅拷贝:

    

    字符串的值不可转变,不同的是列表的元素可以单个的转变:

    

    也可以对一个片切行进值赋,这样可以转变列表的长度或将其整个清空:

    

    建内的len()函数一样实用于列表:

    

    列表可以嵌套(列表含包其它列表),例如:

    

    可以在列表的尾部添加元素:

    

    意注:最后一个示例中,p[1]和q引用同一个对象。

    

3.2 迈向编程的第一步

    当然,我们可以应用Python来实现比把两个东西相加更复杂的任务。例如,我们可以初始化一个斐波那契数列。如下:

    

    这个示例含包几个新的特性。

    

  • 第一行含包一个多个值赋,变量a和b同时取得新值0和1。最后一行再次应用,演示了在任何一个值赋操纵发生前右边的有所表达式首先被盘算。右边的表达式的盘算顺序是从左到右。

  • 只要条件(这里是b < 10)仍然是true,while循环就执行。在Python里,就像C语言,一个非零的整值数为true,零是false。条件也可是以字符串或列表,事实上,对于任何序列,只要长度不是零就都是true,空的序列是false。示例面里的测试是一个简略的较比。标准较比操纵符的写法和C里的一样,<(小于)>(大于)==(即是)<=(小于即是)>=(大于即是)!=(不即是)。

  • 循环体是缩进的,缩进是Python用来组分语句的式方。在交互示提符,对于缩行进你不得不键入一个tab或几个空格。在实际操纵中,你需要一个文本编辑器来准备更加复杂的入输。有所的较比好的文本编辑器都有主动缩进的功能。当一个复合的语句被交互式的入输时,必须后跟一个空行来指示实现(因为解析器无法猜测你什么时候入输最后一行)。住记,一个基本块里的每一行都必须缩进相同的数量。

  • print()函数输出传递给它的表达式的值。它不同于你希望输出表达式的式方,它处置多个表达式,浮点数,字符串。字符串输出是不带引号,但包含字符之间的空格,你可以很好的格式化字符串。像这样:

    关键字end可以用来在输出之后防止发生新行,或以一个不同的字符串束结输出:

    本文是对官方网站容内的翻译,原文地址:http://docs.python.org/3/tutorial/introduction.html

文章结束给大家分享下程序员的一些笑话语录: N多年前,JohnHein博士的一项研究表明:Mac用户平均IQ要比PC用户低15%。超过6000多的参加者接受了测试,结果清晰的显示IQ比较低的人会倾向于使用Mac。Mac用户只答对了基础问题的75%,而PC用户却高达83%。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
智慧校园整体解决方案是响应国家教育信息化政策,结合教育改革和技术创新的产物。该方案以物联网、大数据、人工智能和移动互联技术为基础,旨在打造一个安全、高效、互动且环保的教育环境。方案强调从数字化校园向智慧校园的转变,通过自动数据采集、智能分析和按需服务,实现校园业务的智能化管理。 方案的总体设计原则包括应用至上、分层设计和互联互通,确保系统能够满足不同用户角色的需求,并实现数据和资源的整合与共享。框架设计涵盖了校园安全、管理、教学、环境等多个方面,构建了一个全面的校园应用生态系统。这包括智慧安全系统、校园身份识别、智能排课及选课系统、智慧学习系统、精品录播教室方案等,以支持个性化学习和教学评估。 建设内容突出了智慧安全和智慧管理的重要性。智慧安全管理通过分布式录播系统和紧急预案一键启动功能,增强校园安全预警和事件响应能力。智慧管理系统则利用物联网技术,实现人员和设备的智能管理,提高校园运营效率。 智慧教学部分,方案提供了智慧学习系统和精品录播教室方案,支持专业级学习硬件和智能化网络管理,促进个性化学习和教学资源的高效利用。同,教学质量评估中心和资源应用平台的建设,旨在提升教学评估的科学性和教育资源的共享性。 智慧环境建设则侧重于基于物联网的设备管理,通过智慧教室管理系统实现教室环境的智能控制和能效管理,打造绿色、节能的校园环境。电子班牌和校园信息发布系统的建设,将作为智慧校园的核心和入口,提供教务、一卡通、图书馆等系统的集成信息。 总体而言,智慧校园整体解决方案通过集成先进技术,不仅提升了校园的信息化水平,而且优化了教学和管理流程,为学生、教师和家长提供了更加便捷、个性化的教育体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值