Source:
#!/bin/env python
# coding=gb2312
# -*- coding: gb2312 -*-
from __future__ import division
#### if-else ####
print '#### if-else ####'
a = input("a: ") # 12 or 10+2
b = input("b: ")
if(a>b):
print "max: ", a
else:
print "max: ", b
#### if-elif-else ####
print '#### if-elif-else ####'
score = raw_input("score: ") # string
score = int(score)
if(score>=90) and (score<=100):
print "A"
elif(score>=80 and score<90):
print "B"
elif(score>=60 and score<80):
print "C"
else:
print "D"
#### switch I ####
print '#### switch ####'
x = 1
y = 2
operator = "/"
result = {
"+": x+y,
"-": x-y,
"*": x*y,
"/": x/y
}
print result.get(operator)
#### switch II ####
print '#### switch II ####'
class switch(object):
def __init__(self, value): # init value
self.value = value
self.fall = False # no break, then fall=False
def __iter__(self):
yield self.match # match method to create
raise StopIteration # exception to check loop
def match(self, *args):
if self.fall or not args:
return True
elif self.value in args: # successful
self.fall = True
return True
else: # fail
return False
operator = "+"
x = 1
y = 2
for case in switch(operator):
if case('+'):
print x+y
break
if case('-'):
print x-y
break
if case('*'):
print x*y
break
if case('/'):
print x/y
break
if case():
print 'NULL'
Result:
[work@db-testing-com06-vm3.db01.baidu.com python]$ python if_else.py
#### if-else ####
a: 12 + 8
b: 30
max: 30
#### if-elif-else ####
score: 88
B
#### switch ####
0.5
#### switch II ####
3
================================================================
中文注释参考:
一个极小的问题。在python代码中,用了中文注释,不能被python解释器理解(python 2.5)。解决方案是:
# coding=gb2312
print 'ok' #中文注释没问题
或者:
# -*- coding: gb2312 -*-
print 'ok' #这样也行
代码详解参考: