zoukankan      html  css  js  c++  java
  • Python流程控制语句(Control Flow)

    Python用于流程控制的语句包括if,for,while,这些都是从C语言借鉴过来的,然后我们会提到pass语句。

    1,if

    if的语法很简答,我们举一个例子就好,注意关键字if, elif, else,一个if复合语句中可以有多个elif。

    1 x = int(input("input an integer : "))
    2 if x > 0:
    3         print x, " > 0"
    4 elif x < 0:
    5         print x, " < 0"
    6 else:
    7         print x, " = 0"

    2,for

    Python的for语句和C语言中的for语句是有区别的,C语言的for语句有循环变量初始语句,变化语句,以及一个循环结束条件语句,C的for语句很灵活。

    而Python的for语句就是在一个序列(Sequence)上遍历,按照序列中元素的顺序遍历。  [关于序列参考Python基础-序列(Sequence)

    语法:for item in sequence:

    2.1 一个基本的例子

    1 words = ["feelings", "like", "love"]    #输出:8 feelings 
    2 for word in words:                      #     4 like
    3         print len(word), word           #     4 love    

    2.2 深入

    一般情况下不要在for语句的内部去修改被遍历的序列,为什么呢,因为默认情况下for在遍历一个sequence的时候是不会事先复制它的,所以如果我们要修改被遍历的sequence,我们就手动复制一个sequence用于遍历

    如下是一个例子,用words[:]把words给复制下来,结果大家自己实验一下

    1 for word in words[:]:                                                                                                                     
    2 print len(word), word 3 if len(word) > 4: 4 words.insert(0, word) 5 print "words : ", words

    如果我们在for中不用words[:]替换words,会出现什么情况呢,会出现这个循环永远也终止不了,因为每循环一次words的长度就增加1,大家动手试验一下便知。通过这个试验以及更深入的实验我们还可以探索出Python for语句的一些实现机制,后面我会写一篇来探讨这个。

    3,while

    Python的while语句和C语言几乎一样,只是判断条件没有括号围着。

    下面这个例子输出一个Fibonacci数列

    1 a, b = 0, 1
    2 fib = []
    3 while len(fib) < 10:    #循环条件没有括号
    4     a, b = b, a+b
    5     fib.append(b)
    6 print fib

    输出:[1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

    4,关于for和while的更多

    4.1 break 和 continue

    breakcontinue也是从C语言借鉴过来的,而且意义也一样,break跳出当层循环,continue开始执行循环下一轮。

    4.1 属于for和while的else

    循环语句for和while也可以有else,这是当循环完成,也就是没有被break打破循环的情况才会执行的语句块

    一个例子,找出2~19中的质数,体会下for语句中的break和else。

    1 factor = []
    2 for n in range(2, 20):
    3     for x in range(2, n):
    4         if n%x == 0:
    5             print n, "=", x, "*", n/x
    6             break;
    7     else:                  # 这个else是和第3行的for匹配的
    8         factor.append(n)
    9 print factor

    输出结果:

    4 = 2 * 2
    6 = 2 * 3

    ......

    [2, 3, 5, 7, 11, 13, 17, 19]

    5, pass语句

    我们今天看的if,while,for都是复合语句(compound statement), 复合语句就是包含其他语句的语句,除了if,while,for还有with,try以及函数和类定义。

    而在复合语句中,如果我们什么都不需要做,就可以用pass,这就像C语言中只是一个分号的空语句

    一个例子,代码在这个地方等待键盘Ctrl-C来终止。

    1 while True:
    2     pass

    参考:

    1, http://docs.python.org/3.3/tutorial/controlflow.html#if-statements    Python文档

    2, http://docs.python.org/3/reference/compound_stmts.html   Python文档

  • 相关阅读:
    ios UIWebView截获html并修改便签内容(转载)
    IOS获取系统时间 NSDate
    ios 把毫秒值转换成日期 NSDate
    iOS  如何判断当前网络连接状态  网络是否正常  网络是否可用
    IOS开发 xcode报错之has been modified since the precompiled header was built
    iOS系统下 的手机屏幕尺寸 分辨率 及系统版本 总结
    iOS 切图使用 分辨率 使用 相关总结
    整合最优雅SSM框架:SpringMVC + Spring + MyBatis 基础
    Java面试之PO,VO,TO,QO,BO
    Notes模板说明
  • 原文地址:https://www.cnblogs.com/livingintruth/p/3264226.html
Copyright © 2011-2022 走看看