首页 > 其他 > 详细

基本的语法

时间:2014-06-08 05:36:02      阅读:315      评论:0      收藏:0      [点我收藏+]

2 基本的语法

在学习Python其它知识之前,先理解几个基本语法概念,这样才可以理解它的代码是怎么样排列组合的,否则编辑出来的文本文件并不能叫做程序,因为Python的运行环境并不能对它进行解释执行,没有正确的结果输出。

2.1 大小写区分

在Python程序中,对于每一个变量的名称都是大小写区分的,比如My和my是两个不同的变量。

2.2 空格和制表符

在编写程序时,都需要对程序进行排版,否则看起来不清楚,不明白,不容易理解。但在Python里,排版不仅仅是为了好看,还当作一种语法来看待。这样看来,它是语法,如果不按它的排版来做,意味着程序运行不了,或者运行结果不对。每一行代码的缩进,都认为是一个新的作用域开始,都是一个代码块的开始,具有相同缩进的代码是同一个代码块。如果都使用空格来缩进,那么相同空格的代码行表示在同一个作用域里。如果使用制表符来对齐,也是相同制表符的代码行表示为同一个作用域。既然空格和制表符都可以排版作用,是否就可以在同一个程序里混合使用呢?答案是否定的。虽然在一些编辑器里空格和制表符显示出来的效果一样,但实际在处理程序上有差别。比如制表符定义为一个制表符就缩进两个空格,那么两个制表符与四个空格在排版上是一样的结果,但实际上在代码分析里难以判断出来。因为制表符是两个字符,而空格是四个字符,这样就不知道这两行代码在缩进上是否属于同一个作用域了。因此,在Python的程序永远不要混合制表符与空格对齐的代码。在编写程序之前,把所有制表符转换为输出相应的空格来替代, 这样在程序编码里永远只有空格,没有制表符了。由于Python是一种强制缩进代码的语言,它的排版是非常好看的,代码层次感更加好。不像其它语言,排版不作为语法,导致每个人使用不一样的规则,编写出来的程序,还需要使用其它工具来检查程序是排版一致性,还需要规定代码排版的规则。也许有人说,这样代码不紧凑,占用过多的屏幕空间。如果放在电脑刚发明的时候,也许是正确的,因为那时的显示器没有多大,能一屏里多看些代码是有优势的。但在今天,显示器都已经普及24寸了,在这方面已经没有物理上的限制了。优点就更加显现出来,作为Python的程序员,热烈地拥抱这个伟大的优点吧!

2.3 对象

对象何物也?对象是指对面的大象吗?显示不是,那么对象又是指热恋中的情人吗?也不是。对象在编程的世界里,有着特别的意义。它是指客观世界里的人、物、事等直接在计算机逻辑中的映射。在编程史中,最有名的等式是:

程序 = 数据结构 + 算法

在没有发明面向对象编程之前,都是使用上在这个等式来指导编写程序的,比如碰到一个问题,就先寻找表示这个物体的结构,再思考对这个结构的操作算法,这样在C语言代表里,就声明有很多结构,然后再写很多很多函数,这样就完成程序的功能。如果想把这个程序的结构修改一下,所有与这个相关的函数都需要修改,但因为它们之间没有明确的关联,修改起来就需要一个一个地查找,比较容易有一些函数没有修改到。后来人们发现把数据结构与算法写到一起,就更加容易维护和明白了。这样程序就会变成下面这样的等式:

程序 = 对象 + 对象

对象 = 数据结构 + 算法

在这一种思路的转变之下,程序维护更加方便了,封装得更完善。因为不同的数据结构对应着不同的算法,但同一种数据结构可能算法有很多种,比如刚开始时,编写的算法可能是尽量简单,开发速度尽量快,而不是算法有多少优秀,减少多少的CPU运行。在项目初期,大家都不清楚那些代码运行最多,那些代码是关键代码,那些代码是需要优化的,只有在测试和客户试用之后,才会了解到那些代码需要优化了,这时就可以对原来的算法进行改写,但又不是影响原来的代码,这样使用对象来编程,就显得非常方便了。有这么大的优点,在Python里所有东西都是对象,就连数据的基本类型都是由对象组成的。比如字符串对象,列表对象。这样使用起来,就很方便了,但也带来一点坏处,就是占用内存会有点大,速度也会变慢一点。

2.4 作用域

在编写一个大规模的软件里,有几百万行代码,有数万人开发的情形,在这种情况这下,要保证所有人编写的名称不重复,使用传统的语言显然是有点难度的。那么近代的语言都会使用作用域来限制变量的访问的局限性。像Python使用函数和模块的作用域,在函数里使用的变量只能在函数里使用,而不能函数外面使用。或者变量在某个模块里使用,就不能在别的模块里直接使用了,当然要在别的模块里使用,就得采用显式说明的方式才可以。比如A模块里使用的变量count,在B模块里也使用的变量count,在C模块里要访问A和B模块里的变量,就要采用如下的方式:

A.count和B.count

通过这样的方式,无论在A或B模块的变量,都不会相互干扰,达到变量作用域的限制。因此,在Python里,模块也是一个对象,不同的模块就是不同的对象。

 

 

 

基本的语法,布布扣,bubuko.com

基本的语法

原文:http://blog.csdn.net/caimouse/article/details/29213525

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!