if-else与if-elif-else

Source:
[python] view plain copy
#!/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:
$ 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'  #这样也行
 

if-else 多种用法
[python] view plain copy
#!/usr/bin/python  
# -*- coding:utf8 -*-   
#  
# blog.ithomer.net  
  
  
a, b, c = 1, 2, 3  
  
# 常规  
def test1():  
    if a>b:  
        c = a  
    else:  
        c =b  
    print c  
  
# 表达式  
def test2():  
    c = a if a>b else b  
    print c  
  
# 二维列表  
def test3():  
    c = [b,a][a>b]  
    print c  
  
# 黑客用法  
def test4():  
    c = (a>b and [a] or [b])[0]  
    print c  
  
if __name__ == "__main__":  
    test1()  
    test2()  
    test3()  
    test4()  
运行结果:
2
2
2
2



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值