(04)流程控制

■ 继续 (\)  主要用于一行太长换行
          有两种例外情况一个语句不使用反斜线也可以跨行。在使用闭合操作符时,单一语句可以
          跨多行,例如:在含有小括号、中括号、花括号时可以多行书写。另外就是三引号包括下的字
          符串也可以跨行书写

          如果要在使用反斜线换行和使用括号元素换行作一个选择,我们推荐使用括号,这样可读
          性会更好。
         

■ if else
    if expression:
       statement(s)
    4个空格代替缩进

     if expression:
         statement(s)
     else:
         statements(s)
    
      if expression:
          statement(s)
     elif expression:
          statements(s)
     else:
          statements(s)

     条件表达 ,结合 and or not

■ for 循环
     for iteration_var in sequence:
           statements(s)

      range(i,j, 步长)  可能快速生成一个序列
  
     d={1:11,2:22}
     for k,v in d.items():
         print k
         print v
     else:                             # 正常结束会执行
         print "ending"

       for x in range(1,111):
            print x
            if x==3:
                pass      # 占位
            if x==2:
                 print "helllo"
                 continue # 跳过后面语句,进入下一次循环
             if x==5:
                exit()    终止后所有的操作
             if x==6:
                  break   # 跳出循环
             print "#"*60
          else:            #正常结事执行模块
             print "ending"

■ while 循环
       while expression:
             statement(s)

        while x!='q':
              print "hello"
              x=raw_input("please input something, q for quit:")
              if not x :
                 break
              if x=="c":
                 continue
              print "one more time ~~~~~"
          else:
                print "ending...."
   
■ switch语句
    ●python本身没有这个语句,是借助字典来完成的
      字典可以调用函数

      from __future__ import division   解决除法输入整数时,得到的结果只有整数
      def jia(x,y):
          return x+y

      def jian(x,y):
          return x-y

      def cheng(x,y):
          return x*y

      def chu(x,y):
          return x/y

      operator={"+":jia,"-":jian,"*":cheng,"/":chu}
      def f(x,o,y):
           print operator.get(o)(x,y,*args,**kwargs)
======================
简化:
      from __future__ import division
      x=1
      y=2
      operator="/"
      result={
              "+":x+y,
              "-":x-y,
              "*":x*y,
              "*":x*y,
              }
      print result.get(operator)
======================================
{1:case1,2:case2}.get(x,lambda *arg,**key:)()
======================================
提示:很多时候,可以把判断转为元组实现

posted @ 2016-02-18 10:29  toby2chen  阅读(196)  评论(0编辑  收藏  举报