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

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

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-4-26 08:27:20 | 显示全部楼层 |阅读模式
  在接下来的例子中,输入和输出将通过是否有提示符(>>>和...)来进行区分。要重做示例,当提示符出现后,你输入所有的内容都必须在提示后面。凡是不以提示符开始的行都是从解释器输出的内容。如果一行只有一个第二提示符本身,意味着你必须输入一个空行,这是用来结束一个多行命令。
  这个手册里面包含许多例子,还有注释。注释在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

运维网声明 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-60721-1-1.html 上篇帖子: [工具推荐]pynpp 下篇帖子: Python 代码覆盖率统计工具 coverage.py
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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