Python学习总结(一)
2010-09-06 02:46 onm 阅读(313) 评论(0) 收藏 举报最近对Python产生了兴趣,就借了本书学习了一下。看的是《Python学习手册》第三版,这个很适合编程新手学习Python的书,所以里面重复的话比较多。但作为Python新手,我还是学到了很多知识,和很多有意思的事情。
概要
首先说Python的彩蛋,这个很有意思,一首小诗,介绍了Python的设计理念。输入import this命令,在交互模式下会自动列出Python的设计原则,从此就了解了Python的个性。其中比较经典的一个英文缩写“EIBTI”——“明了胜于晦涩”。
摘录一段Wiki上的话:Python([KK] 英语发音: /'paɪθɑn/, [DJ] 英语发音: /ˈpaiθən/),是一种面向对象、直译式计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定。这种语言具有非常简捷而清晰的语法特点,适合完成各种高级任务,几乎可以在所有的操作系统中运行。
Python的分支
CPython是默认的Python(从官网下载的就是这个),还有Jython,IronPython分别是Java平台和.NET平台下的实现。
Python运行
Python是动态语言,Python先将源代码转化为字节码,然后字节码在Python虚拟机中运行。
运行这里还涉及一系列的优化,如实时编译,转换为本地代码的转换器,冻结二进制文件等。
Python对象类型
Python核心数据类型:数字(常量),字符串(常量),列表,字典,元组(常量),文件,其它(集合,布尔,None)等。
由于Python是动态语言,所以不需要类型声明,但是变量必须赋初值,否则会出错。
常量拥有不可变性,所以不能修改。Python中存在边界检查,列表的嵌套可实现多维数组。
Python语句和语法
elif,是else if,与类C语言不同的地方。
while循环可以有else,else内是循环正常退出时执行的代码。通过break或其他跳出时,不会执行。
print语句,打印语句。在Python3中被取消,改为函数。
pass空占位符。什么也不干。
for循环也不是C语言中的那样,这个是元素迭代,类似于C#中的foreach。
try except,不是try catch
raise 替代throw
等一些语法细节。
Python if语句不需要加括号,还有Python中没有;(分号),还有强制缩进
代码示例
If x > y:
X = 1
Y = 1
(题外话:分号打习惯了,一条语句最后容易不自主的打个分号;,如果Python搞习惯了,会不会以后总忘记打分号呢?)
当然()括号也可以打,不过不建议打,因为没括号更Python,不然就是个外行……我觉得强制缩进这事,对于编程新手挺管用,不然代码都是一坨……
赋值,引用之类的事,和别的语言都差不多,记住什么是不变的常量,什么是变量,什么是引用,什么时候拷贝就行了。了解C#中值类型,和引用类型类推一下就差不多了。
Python中没有++,--这样的自增,自减。
与或非是英文字符(and or not)表示了,不是符号(&& || !)
range,zip,map等
函数
def语句实际上是一个可执行语句:当它运行的时候,它创建并将一个新的函数对象赋值给一个变量名。(Python中的所有语句都是实时运行的,没有像独立的编译时间这样的流程);
由于def是一个语句,所以一个def可以出现在任一语句可以出现的地方。
作用域和参数(一些细节)
Lambda表达式 示例:
f = lambda x, y : x + yf(2, 3, 4)
类似于
def func(x, y,): return x + y
模块
用于,构建大型应用和更好的组织工程。
模块导入:导入即执行,因为导入的开销较大,所以不允许多次导入。除非调用reload。
语句:Import
类和OOP
构造函数
Class C1(C2, C3): #注释用#号,括号内的是基类,类继承,支持多重继承
def __init__(self, who):
Self.name = who
异常
与其它语言类似
总结
第一篇只是个概要,不涉及过多细节。
备注:由于所学尚浅,所以可能有部分细节不是特别准确。
浙公网安备 33010602011771号