Python 使用行缩进 代替传统的 {...} 和 Begin ... End
对大小写敏感
行尾使用 作为块开始,个人习惯以一个空行做为块结束
支持非ASCII字符,在页首加与 #-*- coding:utf-8 -*-
Python所有元素基本上全是对象
help(对象) 显示对象帮助
字符串,单或双引号是完全一样的,使用重复三个引号表示多行字符'''
使用 \ 转义字符
自然字符串在前面加 r|R 如 r"I want to see \n",常在正则表达式下使用
Unicode字符串,前面加 u|U 如 u"中国字"
如果你把两个字符串按字面意义相邻放着,他们会被Python自动级连。例如,'What\'s' 'your name?'会被自动转为"What's your name?"。
在Python中没有专门的char 数据类型
使用变量时只需要给它们赋一个值。不需要声明或定义数据类型。
一物理行多逻辑行在行尾使用 ; 一逻辑行多物理行在行尾使用 \ 另外像[] ,()中的内容自动支持多物理行
运算符:+,-,*,** 返回x的y次幂,/,// 返回商的整数部分,%,<<,>>,&,|,^,~,<,>,<=,>=,==,!=,and,or,not
可使用 a = b = c
控制流:if,for,while 注意没有 switch ,可使用字典

if

while

for

自定义函数

函数通过def 关键字定义

要使用global 语句访问函数外的变量
使用关键参数 (假设其他参数都有默认值,我们可以只给我们想要的那些参数赋值)

return xx #返回值,并跳出函数

DocStrings 文档字符串,一般用来描述对象或函数功能,是个很实用的功能
可在Python发行版附带的pydoc命令,与help()类似地使用DocStrings
惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。

模块

使用sys模块

字节编译的.pyc文件

pyc是一种二进制文件,是由py文件经过编译后,生成的文件.
compile函数原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要编译的py文件的路径
cfile 表示编译后的pyc文件名称和路径,默认为直接在file文件名后加c 或者 o,o表示优化的字节码
dfile 错误日志保存的路径
doraise 可以是两个值,True或者False,如果为True,则会引发一个PyCompileError,否则如果编译文件出错,则会有一个错误,默认显示在sys.stderr中,而不会引发异常

批量生成pyc文件

compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])
dir 表示需要编译的文件夹位置
maxlevels 表示需要递归编译的子目录的层数,默认是10层,即默认会把10层子目录中的py文件编译为pyc
ddir 错误日志保存的路径
force 如果为True,则会强制编译为pyc,即使现在的pyc文件是最新的,还会强制编译一次,pyc文件中包含有时间戳,python编译器会根据时间来决定,是否需要重新生成一次pyc文件
rx 表示一个正则表达式,比如可以排除掉不想要的目录,或者只有符合条件的目录才进行编译
quiet 如果为True,则编译后,不会在标准输出中,打印出信息

from..import 语句直接输入argv变量到程序中(避免在每次使用它时打sys.)
from sys import argv
输入所有sys模块使用的名字
from sys import *
输入mod_python中apacche
from mod_python import apache
一般说来,应该避免使用from..import而使用import语句
模块的__name__ 每个模块都有一个名称,在模块中可以通过语句来找出模块的名称。这在一个场合特别有用——就如前面所提到的,当一个模块被第一次输入的时候,这个模块的主 块将被运行。假如我们只想在程序本身被使用的时候运行主块,而在它被别的模块输入的时候不运行主块,我们该怎么做呢?这可以通过模块的__name__属 性完成。


dir()函数 :列出模块定义的标识符。标识符有函数、类和变量。为dir()提供一个模块名的时候,它返回模块定义的名称列表。如果不提供参数,它返回当前模块中定义的名称列表。
del() 语句删除当前模块中运行时的变量/属性


数据结构

  • 列表
  • 元组
  • 字典
  • 序列
  • 参考

列表 (列表不同于元组它是一种可变数据类型的结构)


元组 (元组通过圆括号中用逗号分割的项目定义。元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。 )


含有0个或1个项目的元组。 myempty = () 与 myone = (9,)
元组最通常的用法是用在打印语句中,下面是一个例子


字典
键值对在字典中以这样的方式标记:d = {key1 : value1, key2 : value2 }。 这点像 json,偶喜欢


  • dic.clear():请空字典
  • dic.copy():复制字典
  • dic.get(key):获取key所代表的值,相当于dic[key]
  • dic.has_key(key):判断是否包含key
  • dic.items():获取由键和值组成的列表,列表的每一个元素对应于字典的每一个数据元素,列表中每一个元素的数据类型是元组类型,元组中有两个元素,一个是键,一个是值。
  • dic.keys():获取键的列表
  • dic.pop(key):返回key代表的值,并删除key代表的数据元素
  • dic.update(key,value):更新key的value,如果不存在key,则在字典中计入key和value,相当于 dic[key]=value
  • dic.values():获取值的列表
  • key in dic: in操作用于判断key是否存在于dic 反之是 not in
  • del dic[key]:删除key所代表的数据元素

关键字参数与字典。如果换一个角度看待你在函数中使用的关键字参数的话,你已经使用了字典了!只需想一下——你在函数定义的参数列表中使用的键/值对。当你在函数中使用变量的时候,它只不过是使用一个字典的键(这在编译器设计的术语中被称作 符号表 )。
序列
列表、元组和字符串都是序列,但是序列是什么,它们为什么如此特别呢?序列的两个主要特点是索引操作符和切片操作符。索引操作符让我们可以从序列中抓取一个特定项目。切片操作符让我们能够获取序列的一个切片,即一部分序列。

参考 (类似指针)