刚开始学习Python,积淀点自己的见解。教材:《Python核心编程》

 

从零开始:

1.基本语法:

  • 井号(#)表示之后的字符为 Python 注释
  • 换行 (\n) 是标准的行分隔符(通常一个语句一行)
  • 反斜线 ( \ ) 继续上一行
  • 分号 ( ; )将两个语句连接在一行中
  • 冒号 ( : ) 将代码块的头和体分开
  • 语句(代码块)用缩进块的方式体现
  • 不同的缩进深度分隔不同的代码块
  • Python 文件以模块的形式组织

2.合法的Python标识符

  • 第一个字符必须是字母或下划线(_)
  • 剩下的字符可以是字母和数字或下划线
  • 大小写敏感

3.模块结构和布局

  • # (1) 起始行(Unix)
  • # (2) 模块文档
  • # (3) 模块导入
  • # (4) 变量定义
  • # (5) 类定义
  • # (6) 函数定义
  • # (7) 主程序

  起始行通常在类Unix环境下才使用,有起始行就能够仅仅输入脚本名称来执行脚本,无需直接调用解释器。

 

(1) 起始行
通常只有在类Unix 环境下才使用起始行,有起始行就能够仅输入脚本名字来执行脚本,无
需直接调用解释器。
比如:#!/usr/bin/python

(2)模块文档
  简要介绍模块的功能及重要全局变量的含义,模块外可通过 module.__doc__ 访问这些内容。

(3)模块导入
  导入当前模块的代码需要的所有模块;每个模块仅导入一次(当前模块被加载时);函数内部的模块导入代码不会被执行, 除非该函数正在执行。

(4)变量定义
  这里定义的变量为全局变量,本模块中的所有函数都可直接使用。从好的编程风格角度说,除非必须,否则就要尽量使用局部变量代替全局变量,
如果坚持这样做,你的代码就不但容易维护,而且还可以提高性能并节省内存。

(5)类定义语句
  所有的类都需要在这里定义。当模块被导入时class 语句会被执行, 类也就会被定义。类的文档变量是class.__doc__。

(6)函数定义语句
  此处定义的函数可以通过module.function()在外部被访问到,当模块被导入时 def 语句会被执行, 函数也就都会定义好,函数的文档变量是function.__doc__。

(7) 主程序
  无论这个模块是被别的模块导入还是作为脚本直接执行,都会执行这部分代码。通常这里不会有太多功能性代码,而是根据执行的模式调用不同的函数。

 

  时刻记住一个事实,那就是所有的模块都有能力来执行代码。最高级别的Python 语句--
也就是说, 那些没有缩进的代码行在模块被导入时就会执行, 不管是不是真的需要执行。由
于有这样一个“特性”,比较安全的写代码的方式就是除了那些真正需要执行的代码以外, 几
乎所有的功能代码都在函数当中。再说一遍, 通常只有主程序模块中有大量的顶级可执行代码,
所有其它被导入的模块只应该有很少的顶级执行代码,所有的功能代码都应该封装在函数或类
当中。

 

4.和C不一样的变量名定义

    • 变量无须事先声明
    • 变量无须指定类型 程序员不用关心内存管理 变量名会被“回收”

del 语句能够直接释放资源

 1 #!/usr/bin/env python
 2 
 3 'makeTextFile.py -- create text file'
 4 
 5 import os
 6 ls = os.linesep
 7 
 8 # get filename
 9 while True:
10 
11 if os.path.exists(fname):
12 print "ERROR: '%s' already exists" % fname
13 else:
14 break
15 
16 # get file content (text) lines
17 all = []
18 print "\nEnter lines ('.' by itself to quit).\n"
19 
20 # loop until user terminates input
21 while True:
22 entry = raw_input('> ')
23 if entry == '.':
24 break
25 else:
26 all.append(entry)
27 
28 # write lines to file with proper line-ending
29 fobj = open(fname, 'w')
30 fobj.writelines(['%s%s' % (x, ls) for x in all])
31 fobj.close()
32 print 'DONE!'

 以上例子是书中的原版,不过有错误(弱弱的说下)

测试无误的例子:

#!/usr/bin/python

'maek text file pythou -- create text file'

import os
ls = os.linesep

# get filename
fname = raw_input('Enter file name')
while True:
    if os.path.exists(fname):
       print "ERROR: '%s' already exists" % rname
    else:
        break

# get file content lines
all =[]
print "\nEnter lines ('.'by iself to quit).\n"
while True:
    entry = raw_input('>')
    if entry == '.':
        break
    else:
        all.append(entry)

# write lines to file with proper line-ending
fobj = open(fname, 'w')
fobj.writelines(['%s%s' % (x, ls) for x in all])
fobj.close()
print 'DONE !'

 我修改过的例子是自己按照C语言的习惯缩进的,不敢说一定对,但我运行后没有出现错误。

 

 

 

posted on 2012-09-01 11:12  深蓝工作室  阅读(2766)  评论(0编辑  收藏  举报