从C#到Python:2 运算符、表达式和流程控制
2010-09-30 22:36:47 来源:WEB开发网在Python中,提供了专门的逻辑分支表达式来模拟C系中的三元运算,我们也可以在一行语句中完成三元运算,例如
print '偶数' if x % 2 == 0 else '奇数'
2.1.6 运算符的优先级
你期待我列一个很长的表嘛?自己去查好伐,我就不浪费博客园的存储空间了。总之一句话:搞不清楚用括号!
2.2 流程控制语句2.2.1 条件语句
Python用if,elif,else三个关键字进行条件判断,与C#唯一的区别就是用elif取代了else if,少打两个字,其它都一样。此外别忘了在if等语句后加 : 哦!
如果一个流程控制分支下不做任何事情,记得写一句pass语句,不然Python会报错。例如:
1 if 0:
2 pass #神经啊!这种例子用来说明什么?
在Python中没有switch语句,你可以使用if..elif..else语句来完成同样的工作。如果你觉得繁琐,可以试试dict实现方式,下边是个例子,分别对比了两种实现方式。
1 # 类C#伪码,根据输入的不同参数选择程序的不同行为
2 switch(x):
3 case "1":
4 print 'one'; break;
5 case "2":
6 print 'two'; break;
7 default:
8 print 'nothing!'
9
10 # 使用 if 替代
11 if x =='1':
12 print 'one'
13 elif x=='2':
14 print 'two'
15 else:
16 print 'nothing!'
17
18 # 使用dict
19 numtrans = {
20 1: 'one',
21 2: 'two',
22 ...
23 }
24 try:
25 print numtrans[x]
26 except KeyError:
27 print 'nothing!'
28
29 # 也可以在分支中使用方法(函数)
30 def print_one():
31 print 'one'
32 def print_two():
33 print 'two'
34 numtrans = {
35 1:print_one,
36 2:print_two,
37 }
38
39 try:
40 numtrans[x]() #注意名字+括号就可以执行方法了,这个实际上很牛X的。
41 except KeyError:
42 print 'nothing!'
更多精彩
赞助商链接