边学边看一
Python 是一种容易学习的强大语言。它包括了高效的高级数据结构,提供了一个简单但很有有效的方式以便进行面向对象编程。Python 优雅的语法,动态数据类型,以及它的解释器,使其成为了大多数平台上应用于各领域理想的脚本语言以及开发环境。 Python的解释器很容易通过C或C++(或者其它可以由C来调用的语言)来实现功能和数据结构的扩展。因些Python 也很适于做为定制应用的一种扩展语言。
ps:解释语言:向对于编译的语言。解释语言通过解释器来执行,早期的basic,现在的各种脚本语言(php,javascript等),perl等均是解释语言。解释器比编译器更加容易设计,可以在边执行边调试等,但是效率问题是最大的问题。因此各种脚本语言,都不同程度的向编译语言进发,java的bytecode,php的编译引擎等都有了很大的发展。
通常,解释型语言都被认为是易学的,比如basic,因为几乎这些语言的变量都不需要定义,但是这些造成了很大的问题。
Python是一门解释型语言,因为不需要编译和链接的时间,它可以帮你省下一些开发时间。解释器可以交互式使用,这样就可以很方便的测试语言中的各种功能,以便于编写发布用的程序,或者进行自下而上的开发。还可以当它是一个随手可用的计算器。
Python可以写出很紧凑和可读性很强的程序。用Python写的程序通常比同样的C或C++程序要短得多,这是因为以下几个原因:
· 高级数据结构使你可以在一个单独的语句中表达出很复杂的操作;
· 语句的组织依赖于缩进而不是begin/end块;
· 不需要变量或参数声明。
ps
:任何的易用性,都代表着性能的流失,效率的底下,最终是折中的表现。
顺便说一下,这个语言的名字来源于BBC的“Monty Python's Flying Circus”节目,和凶猛的爬虫没有任何关系。在文档中引用Monty Python典故不仅是允许的,而且还受到鼓励!
ps:
好像外国的计算机的学者们都挺搞笑的,比如java
的nut
,可以参考java
历史
调用解释器
ps
:我用的windows
下的2
。3
,没有任何的问题,就可以写程序了,因此建议大家都在windows
下写程序哦!!?(别打我)。
安装后,直接可以写程序了,linux
下你可能需要配一些东西。
从tty读取命令时,我们称解释器工作于交互模式。这种模式下它根据主提示符来执行,主提示符通常标识为三个大于号(“
>>> ”);继续的部分被称为从属提示符,由三个点标识(“... ”)。在第一行之前,解释器打印欢迎信息、版本号和授权提示:
python
Python 2.3 (#1, Jul 30 2003, 23:22:59)
[GCC 3.2 20020927 (prerelease)] on cygwin
Type "help", "copyright", "credits" or "license" for more information.
>>>
ps:
主提示符通常标识为三个大于号(“>>> ”
)
继续的部分被称为从属提示符,由三个点标识(“... ”
)
错误处理
有错误发生时,解释器打印一个错误信息和栈跟踪(监视)器?。交互模式下,它返回主提示符,如果从文件输入执行,它在打印栈跟踪器后以非零状态退出。(异常可以由try语句中的except子句来控制,这样就不会出现上文中的错误信息)有一些非常致命的错误会导致非零状态下退出,这由通常由内部矛盾和内存溢出造成。所有的错误信息都写入标准错误流;命令中执行的普通输出写入标准输出。
在主提示符或附属提示符输入中断符(通常是Control-C or DEL)就会取消当前输入,回到主命令行。2.1执行命令时输入一个中断符会抛出一个 KeyboardInterrupt 异常,它可以被 try句截获。
ps
:我由于长期的写java
,所以很多的东西都和java
做比较。其实异常处理真的是一直好的做法,不然程序得自己手动得处理异常,但是有得时候很难想到那么多得东西。导致了有很多得小bug
,其实几乎所有得语言得异常处理模型差不错,都是基于抓-抛模型得,
比如
//java
try{//do
something~~~}
catch(Exception ex){//catch }
finally{//do somting}
语言很多得层次是相通的,要抓住共性。
源程序编码
Python的源文件可以通过编码使用 ASCII 以外的字符集。 最好的做法是在 #! 行后面用一个特殊的注释行来定义字符集。
# -*- coding: iso-8859-1 -*-
根据这个声明,Python会将文件中的字符尽可能的从指定的编码转为Unicode,在本例中,这个字符集是 iso-8859-1 。在
Python 库参考手册中可以找到可用的编码列表(根据我的实验,中文似乎只能用cp-936或utf-8,不直接支持GB,GBK,GB-18030或ISO-10646--译者注)。
如果你的文件编辑器支持UTF-8格式,并且可以保存UTF-8标记(aka BOM - Byte Order Mark),你可以用这个来代替编码声明(看来至少Jext还不支持这样做,而Vim,我还没找到它的编码设置在哪里,还是老老实实的用注释行指定源代码的编码吧--译者注)。IDLE可以通过设定Options/General/Default Source
Encoding/UTF-8来支持它。需要注意的是旧版Python不支持这个标记(Python 2.2或更早的版本),也同样不能使操作系统支持#!文件。
使用UTF-8内码(无论是用标记还是编码声明),我们可以在字符串和注释中使用世界上的大部分语言。标识符中不能使用非 ASCII 字符集。为了正确显示所有的字符,你一定要在编辑器中将文件保存为UTF-8格式,而且要使用支持文件中所有字符的字体。
ps
:关于码的问题,真的令人头痛,我认为做的最好的是php
,php+mysql
,很少有问题,但是tomcat
+mysql
,甚至weblogic,jboss
等高端的服务器,都有不同的中文问题,长期跟这些东西打交道,所以有很多的心得,但是这里不能说远了,关于java
的中文问题,有空跟大家聊聊。
交互式环境的启动文件
使用Python解释器的时候,我们可能需要在每次解释器启动时执行一些命令。你可以在一个文件中包含你想要执行的命令,设定一个名为PYTHONSTARTUP 的环境变量来指定这个文件。这类似于Unix shell的.profile文件。
这个文件在交互会话期是只读的,当Python从脚本中解读文件或以终端做为外部命令源时则不会如此(尽管它们的行为很像是处在交互会话期。)它与解释器执行的命令处在同一个命名空间,所以由它定义或引用的一切可以在解释器中不受限制的使用。你也可以在这个文件中改变sys.ps1和sys.ps2指令。
如果你想要在当前目录中执行附加的启动文件,你可以在全局启动文件中加入类似以下的代码:“if os.path.isfile('.pythonrc.py'): execfile('.pythonrc.py')”。 如果你想要在某个脚本中使用启动文件,必须要在脚本中写入这样的语句:
import os
filename = os.environ.get('PYTHONSTARTUP')
if filename and os.path.isfile(filename):
execfile(filename)
ps
:其实就是执行个小程序,读了一下文件。
今天先到这里,以后在跟大家慢慢聊,大家新年快乐!!