一,打印

Print语句可以用来打印由逗号隔开的多个值。如果语句以逗号结尾,后面的语句会在同一行内被继续打印,这一点和VB的语法有点像

name = 'this'

name_1 = 'is'

name_2 = 2

print name,name_1,'not',name_2

输出:

  this is not 2

二,导入

有些时候,你可以将import ….as….语句进行函数的局部重命名,和.net 的using ….. as 一样 重命名包。

三,赋值。

通过序列解包链式赋值功能,多个变量赋值可以一次性赋值,通过增量赋值可以改变原地改变变量。

#like list
name_list = 'bruce','Jim','Kay'
print name_list

#
name_1,name_2 = 1,2
print name_1,name_2

#simply do the swap value
name_1,name_2 = name_2,name_1
print name_1,name_2

结果:

  ('bruce', 'Jim', 'Kay')
1 2
2 1
[Finished in 0.0s]

这种赋值的方式优雅而简洁,比如第三种的赋值方式,对于交换变量来看,方便而简单。

四,块(代码缩进),块是通过缩排语句组成的一种方法。它们可以在条件以及循环语句中使用,以块来分割代码段,和C#或者JAva的{}一样

五,条件 。条件语句可以根据条件(或者bool表达式)执行或者不执行一个语句块。几个条件可以串联if/elif/else.这里有一些有意思的点

1.下面的一些值作为布尔表达式的时候,会被解释器看作假(值为0):

  False None 0 "" () [] {}

以后得到对象,直接用

if 变量名 就可以直接判断了,这点比C# 下的string.IsNullOrEmpty()方法要方便的多。

便进一步,如果某个表达式的值计算为0或1,它实际的意思是返回True or False。

2.断言

assert 关键字,这个关键字就 可以类比C# 下的 Throw Exception 抛出异常。

用法:assert 0<age<11

判断整个条件表达式是否为真。

3.列表推导式 。

在列表中进行进一步的操作,这个比相当的方便。

print [x*2 for x in xrange(10)]

输出:
[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]

4.pass ,del,exec 和eval语句。

pass语句什么也不作,完全可以当作是一个占位符使用。

del语句用来删除变量,或者数据结构的一部分,但是不能用来删除值。

exec语句用来执行python程序相同的方式执行字符串。内建的eval函数对写在字符串的表达式计算并且返回结果。

相信用过sql或者javascript的同学都exec和eval都不会陌生

5.逻辑短路和条件表达式

我们知道Javascrpt里面有这样的表达式

a = 1 ; a== 1 && alert(1);
 >> 弹出窗口1
a= 1; b = a==1 || 2 ; console.log(b)
 >> true
a= 2; b = a==1 || 2 ; console.log(b)
 >> 2

这个和JavaScript类似,就是给懒人准备的,少写代码,不过在正式的项目中不建议这样写,代码的可读性太差了(当然给值赋上默认值的时候相当有用)

a = 1
b = a==2 or 2
print b
b = a ==2 and 1
print b

输出结果:

2
False
[Finished in 0.0s]