python_为什么没有DO WHILE和switch

http://bbs.chinaunix.net/thread-1763180-1-1.html

DO WHILE实现

  1. do

  2.       input = get_input()
  3. } while( input != something )
复制代码
while if 應該滿足到你需要吧.
  1. while True:
  2.       input = get_input()
  3.       if input == something:
  4.             break;
复制代码


switch实现



python还没有switch case,要么用最朴实的if elif else要么不嫌麻烦自己实现switch case
 
或者用dict实现

def add_category(request,id):
    f = CategoryForm(initial={'parent':id})
    f.base_fields['parent'].widget = HiddenInput()
    f.base_fields['language'].widget = RadioSelect(choices=settings.LANGUAGES) 

categoryAction = {
    "a": add_category,
    "e": edit_category,
    "l": list_category,
    "v": view_category,
    "s": save_category,
    "d": delete_category
}

#
def category(request,op='',id=0):
    return categoryAction.get(op)(request,id)

关于python的三元运算符实现

正常的三元运算符是这么使用的
布尔表达式 ? A : B
如果布尔表达式为true,则返回A,否则返回B,比如下面:
String a = 1==1 ? "true" : "false";

Python下有两种方式模拟。

第一种:布尔表达式 and A or B
   比如 print( (1==1) and 'true' or 'false' )
   但是注意如果A为''时,始终返回B。所以这种方法是有缺陷的。

第二种:A if 布尔表达式 else B
   比如print( 'true' if (1==1) else 'false' )
   这种是正确方案。


另外Python是动态强类型语言,所以A和B的类型不一定要相同,比如:
var result = 'a' if (1==1) else 2






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值