设为首页 收藏本站
查看: 1429|回复: 0

[经验分享] 字符串索引Python Tutorial(三):一个对Python的非正式介绍 字符串索引

[复制链接]

尚未签到

发表于 2017-5-5 12:39:12 | 显示全部楼层 |阅读模式
  新手发帖,很多方面都是刚入门,有误错的地方请大家见谅,欢迎批评指正
  在接下来的例子中,入输和输出将通过是不是有示提符(>>>和...)来行进辨别。要重做示例,当示提符涌现后,你入输有所的容内都必须在示提前面。是凡不以示提符开始的行都是从解释器输出的容内。如果一行只有一个第二示提符本身,意味着你必须入输一个空行,这是用来束结一个多行令命。
  这个手册面里含包多许例子,还有注释。注释在Python面里以#字符开始,直到本行束结。注释可以涌在现一行的开始处,或者跟在空格和代码前面,不在字符串字面量值面里。字符串字面量值面里的#字符就是一个#字符。因为注释使代码更加清晰,其实不被Python解释,当你重做这些示例时可以省略它们。
  一些示例:
DSC0000.png

3.1 应用Python作为一个盘算器
  让我们实验一些简略的Python令命。启动解释器并等待主示提符(>>>)。
3.1.1 数字
  解释器就像一个盘算器,你可以入输一个表达式,它会盘算出值。表达式法语较比直白,操纵符+ - * /和其它大多数语言中的一样。括号可以用来组分。例如:
DSC0001.png

  意注:你可能看到的并非这个结果。浮点数结果在不同的器机上可能不同。稍后我们将会分析更多关于控制浮点数输出表现的容内。
  为了现实整数想除,弃丢小数分部,取得整数结果,应用另一个操纵符//:
DSC0002.png

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

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

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

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

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

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

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

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

  这个变量应该被作当读只的,不要给它式显值赋,你可以建创一个同名的地本变量遮住建内的变量和其魔力行为。
3.1.2 字符串
  除了数字外,Python也可以操纵字符串,有几种表示式方。可以被单引号或双引号括住:
DSC00011.png

  解释器以和入输一样的式方打印出字符串操纵的结果,在引号面里,包含引号和其它趣有的被反斜线义转的字符,来表现确精的值。如果一个字符串面里含包单引号但不含包双引号,那这个字符串就用双引号包含,相反就用单引号来包含。print()函数为这些入输字符串发生一个更加可读的输出结果。
  字符串字面量值可以应用几种式方来跨横多行。续继行可以被应用,行在的末端加一个反斜线来指示下一行在逻辑上是这一行的续继:
DSC00012.png

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

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

  发生一下输出:
DSC00015.png

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

  将打印出:
DSC00017.png

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

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

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

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

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

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

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

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

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

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

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

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

  第一行的数字给出了索引0..5在字符串中的位置。第二行给出了响应的数负索引。从i到j的片切由标记为i和j缘边之间的有所字符构成。
  对于非负索引,片切的长度就是索引的差值,如果它们都在边界内之。例如,word[1:3]的长度是2。
  建内函数len()返回字符串长度:
DSC00030.png

3.1.3 关于Unicode
  从Python3.0开始,有所的字符串都支撑Unicode。
  Unicode的处好就是为在现和从前的每个脚本面里的每个文本字符都供提一个序数。之前,对于脚本字符只有256个可能的序数。文本被界限在一个代码页,它把序数映射到脚本字符。这致导多许乱混尤其是谈到软件国际化的时候。Unicode处理了这些问题,通过为有所的脚本只定义一个代码页。
  如果你想在字符串面里含包一个特别的字符,你可以应用Python的Unicode义转编码来实现它。面下的示例表现如何做:
DSC00031.png

  义转序列\u0020表示在指定位置插入一个Unicode字符,它的序值数是0x0020(空格)。
  其它的字符应用它们各自的序值数直接作为Unicode序值数来行进解释。如果你有一些字符串字面量值是应用多许西方国家的Latin-1编码的,你会现发它非常便利,因为Unicode的低256个字符和Latin-1的256个字符一样。
  除了这些标准编码外,Python供提了一个全部的以一个已知编码为基础建创Unicode字符串的其它式方的集合。
  把字符串应用指定的编码转换为字节序列,字符串对象供提了一个encode()方法,带有一个参数,是编码的名字。编码名称最好应用小写。
DSC00032.png

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

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

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

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

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

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

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

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

  意注:最后一个示例中,p[1]和q引用同一个对象。
3.2 迈向编程的第一步
  当然,我们可以应用Python来实现比把两个东西相加更复杂的任务。例如,我们可以初始化一个斐波那契数列。如下:
DSC00041.png

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

  •   第一行含包一个多个值赋,变量a和b同时取得新值0和1。最后一行再次应用,演示了在任何一个值赋操纵发生前右边的有所表达式首先被盘算。右边的表达式的盘算顺序是从左到右。
  •   只要条件(这里是b < 10)仍然是true,while循环就执行。在Python里,就像C语言,一个非零的整值数为true,零是false。条件也可是以字符串或列表,事实上,对于任何序列,只要长度不是零就都是true,空的序列是false。示例面里的测试是一个简略的较比。标准较比操纵符的写法和C里的一样,<(小于)>(大于)==(即是)<=(小于即是)>=(大于即是)!=(不即是)。
  •   循环体是缩进的,缩进是Python用来组分语句的式方。在交互示提符,对于缩行进你不得不键入一个tab或几个空格。在实际操纵中,你需要一个文本编辑器来准备更加复杂的入输。有所的较比好的文本编辑器都有主动缩进的功能。当一个复合的语句被交互式的入输时,必须后跟一个空行来指示实现(因为解析器无法猜测你什么时候入输最后一行)。住记,一个基本块里的每一行都必须缩进相同的数量。
  •   print()函数输出传递给它的表达式的值。它不同于你希望输出表达式的式方,它处置多个表达式,浮点数,字符串。字符串输出是不带引号,但包含字符之间的空格,你可以很好的格式化字符串。像这样:
    DSC00042.png

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

  本文是对官方网站容内的翻译,原文地址:http://docs.python.org/3/tutorial/introduction.html
  文章结束给大家分享下程序员的一些笑话语录: N多年前,JohnHein博士的一项研究表明:Mac用户平均IQ要比PC用户低15%。超过6000多的参加者接受了测试,结果清晰的显示IQ比较低的人会倾向于使用Mac。Mac用户只答对了基础问题的75%,而PC用户却高达83%。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-373493-1-1.html 上篇帖子: python 在小于2.7.5版本中 re模块出现 nothing to repeat 错误 下篇帖子: Python版支付宝集成插件源代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表