python_为什么没有DO WHILE和switch

时间:2022-12-13 14:50:18

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