简介有兴趣可以看看: 解释性语言+动态类型语言+强类型语言交互模式:(主要拿来试验,可以试试 ipython)
代码如下:
$python>>> print ‘hello world’
脚本
代码如下:
#!/usr/bin/env pythonprint ‘hello world’
环境:
建议python2.7 + easy_install + pip + virtualenv + ipython
缩进python 函数没有明显的 begin 和 end,没有标明函数的开始和结束的花括号。唯一的分隔符是一个冒号 (:),接着代码本身是缩进的。
例子:
代码如下:
#函数def func(value): print value #缩进
if value == 1: value += 1 elif value == 2: pass else: value += 10
标识符变量是标识符的例子。 标识符 是用来标识 某样东西 的名字。在命名标识符的时候,你要遵循这些规则:
1.python中的标识符是区分大小写的。
2.标示符以字母或下划线开头,可包括字母,下划线和数字,大小写敏感
3.以下划线开头的标识符是有特殊意义的。
以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(foo)代表python里特殊方法专用的标识,如init()代表类的构造函数。
4.标识符不能是保留字
代码如下:
and elif global or yieldassert else if passbreak except import printclass exec in raisecontinue finally is returndef for lambda trydel from not while
变量
赋值语句
1、赋值语句建立对象引用值2、变量名在首次赋值时会被建立3、变量名在引用前必须先赋值,不能引用未声明赋值的变量
赋值方式
简单赋值variable(变量)=value(值)
代码如下:
s = ‘spam’
多变量赋值
python中原始的元组和列表赋值语句形成,最后已被通用化,以接受右侧可以是是任何类型的序列,只要长度相等即可。注意,长度一定相等variable1,variable2,…=value1,value2,…
代码如下:
s,h = ‘a’,’b’ 元组赋值,位置性 【常用】[s,h] =[‘a’,’b’] 列表赋值,位置性a,b,c,d = ‘spam’ 序列赋值,通用性a,*b = ‘spam’ 拓展序列解包(python3)
多目标赋值
代码如下:
a=b=variable
s = h = ‘spam’ 多目标赋值
注意:多个变量内存中指向同一对象,对于可变类型需要,修改一个会对其他造成影响
自变赋值
代码如下:
如+=,-=,*=等。
在自变赋值中,python仅计算一次,而普通写法需计算两次;
自变赋值会修改原始对象,而不是创建一个新对象。
代码如下:
s +=42 增强赋值x += y
优点:
代码如下:
左侧只需计算一次,优化技术自动原处修改,更快l +=[] 原处修改l = l+[] 复制,生成新的对象
运算符一个表达式可以分解为运算符和操作数
运算符 的功能是完成某件事,它们由如+这样的符号或者其他特定的关键字表示
运算符需要数据来进行运算,这样的数据被称为 操作数
运算符优先顺序列表(从最高到最低)
代码如下:
运算符 描述’expr’ 字符串转换{key:expr,…} 字典[expr1,expr2…] 列表(expr1,expr2,…) 元组function(expr,…) 函数调用x[index:index] 切片x[index] 下标索引取值x.attribute 属性引用~x 按位取反+x,-x 正,负x**y 幂x*y,x/y,x%y 乘,除,取模x+y,x-y 加,减xy 移位x&y 按位与x^y 按位异或x|y 按位或xy 比较x is y,x is not y 等同测试x in y,x not in y 成员判断not x 逻辑否x and y 逻辑与x or y 逻辑或lambda arg,…:expr lambda匿名函数
结合规律
运算符通常由左向右结合,即具有相同优先级的运算符按照从左向右的顺序计算
计算顺序
默认地,运算符优先级表决定了哪个运算符在别的运算符之前计算。然而,如果你想要改变它们的计算顺序,你得使用圆括号。好的做法:默认对复杂的运算加括号,而不是依赖于默认结合和计算顺序
真值真值测试
1、任何非零数字或非空对象都为真2、数字零,空对象以及特殊对象none都为假3、比较和相等测试都会递归地运用到数据结构中4、比较和相等测试会返回true或false
真值表
代码如下:
对象/常量 值”” 假”string” 真 0 假2>=1 真-2>> print range(1, 5)[1, 2, 3, 4]>>> print xrange(1, 5)xrange(1, 5)
在上面语句中,range返回了一个普通list,而xrange返回了一个特定的xrange类型的对象。由于 xrange 方法也创建整数 list(其使用相同参数),所以它与 range 方法非常相似。但是,xrange 方法仅在需要时才在 list 中创建整数。当需要迭代大量整数时,xrange 方法更适用,因为它不会创建极大的 list,那样会消耗大量计算机内存。
while
与if语句类似,含一个条件测试语句,循环,允许重复执行一个语句块。
可选else语句块,同for的else块。
格式:
代码如下:
while : if : break if : continue else:
说明:
while循环条件变为false的时候,else块才被执行若是使用break结束循环,while可选的else块不执行python没有do while或do until循环语句break & continue & passbreak,终止循环语句,停止循环,若是for/while循环中终止,其else不执行
continue,结束当前,进入下一轮循环 – 跳到最近所在循环的开头处(来到循环首行)
pass 什么事也不做,只是空占位语句,它用于那些语法上必须要有什么语句,但程序什么也不做的场合
循环else块 :只有循环正常离开时才会执行,即
如果你从for或while循环中break终止 ,任何对应的循环else块将不执行。记住,break语句也可以在for循环中使用
其他
编写循环的技巧:在迭代过程中修改迭代序列不安全(只有在使用链表这样的可变序列时才会有这样的情况)。如果你想要修改你迭代的序列(例如,复制选择项),你可以迭代它的复本。使用切割标识就可以很方便的做到这一点
>>>
代码如下:
for x in a[:]: # make a slice copy of the entire list… if len(x) > 6: a.insert(0, x)
在字典中循环时,关键字和对应的值可以使用 iteritems() 方法同时解读出来
代码如下:
>>> knights = {‘gallahad’: ‘the pure’, ‘robin’: ‘the brave’}>>> for k, v in knights.iteritems():… print k, v…gallahad the purerobin the brave
在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到。
代码如下:
>>> for i, v in enumerate([‘tic’, ‘tac’, ‘toe’]):… print i, v