一,打印
Print语句可以用来打印由逗号隔开的多个值。如果语句以逗号结尾,后面的语句会在同一行内被继续打印,这一点和VB的语法有点像
1 2 3 4 5 6 7 |
name = 'this' name_1 = 'is' name_2 = 2 print name,name_1,'not',name_2 |
输出:
1 |
this is not 2 |
二,导入
有些时候,你可以将import ….as….语句进行函数的局部重命名,和.net 的using ….. as 一样 重命名包。
三,赋值。
通过序列解包链式赋值功能,多个变量赋值可以一次性赋值,通过增量赋值可以改变原地改变变量。
1 2 3 4 5 6 7 8 9 10 11 |
#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 |
结果:
1 2 3 4 |
('bruce', 'Jim', 'Kay') 1 2 2 1 [Finished in 0.0s] |
这种赋值的方式优雅而简洁,比如第三种的赋值方式,对于交换变量来看,方便而简单。
四,块(代码缩进),块是通过缩排语句组成的一种方法。它们可以在条件以及循环语句中使用,以块来分割代码段,和C#或者JAva的{}一样
五,条件 。条件语句可以根据条件(或者bool表达式)执行或者不执行一个语句块。几个条件可以串联if/elif/else.这里有一些有意思的点
1.下面的一些值作为布尔表达式的时候,会被解释器看作假(值为0):
1 |
False None 0 "" () [] {} |
以后得到对象,直接用
if 变量名 就可以直接判断了,这点比C# 下的string.IsNullOrEmpty()方法要方便的多。
便进一步,如果某个表达式的值计算为0或1,它实际的意思是返回True or False。
2.断言
assert 关键字,这个关键字就 可以类比C# 下的 Throw Exception 抛出异常。
用法:assert 0<age<11
判断整个条件表达式是否为真。
3.列表推导式 。
在列表中进行进一步的操作,这个比相当的方便。
1 2 3 4 |
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里面有这样的表达式
1 2 3 4 5 6 |
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类似,就是给懒人准备的,少写代码,不过在正式的项目中不建议这样写,代码的可读性太差了(当然给值赋上默认值的时候相当有用)
1 2 3 4 5 |
a = 1 b = a==2 or 2 print b b = a ==2 and 1 print b |
输出结果:
1 2 3 |
2 False [Finished in 0.0s] |