zoukankan      html  css  js  c++  java
  • A Byte of Python 笔记(4)控制流:if、for、while、break、continue

    第6章  控制流

    3种控制流语句—— if  for  while

    默认pyhon使用ASCII码来解释程序的,默认不支持中文,需要在程序的第一行或者第二行声明编码。官方参考
    具体参考以下三种方式:
    1、在文件头部添加注释码
    # coding=<encoding name>

    2、在文件头部添加两行注释码
    #!/usr/bin/python
    # -*- coding: <encoding name> –*-

    3、在文件头部添加如下两行注释码
    #!/usr/bin/python
    # vim: set fileencoding=<encoding name> :

    if 语句

    if 语句用来检验一个条件, 如果 条件为真,运行一块语句(称为 if-块 ), 否则 处理另外一块语句(称为 else-块 )。 else 从句是可选的。

    # -*- coding:utf-8 -*-
    
    number = 23
    guess = int(raw_input('请输入一个整数:'.decode('utf-8').encode('gbk')))
    
    print guess
    
    if guess == number:
        print u"恭喜,你猜对了!!!"
    elif guess < number:
        print u"你输入了一个较小的数"
    else:
        print u"你输入了一个比较大的数"
    
    print 'Done'

    image

    内建函数 raw_input 函数提供一个字符串,这个字符串被打印在屏幕上,然后等待用户的输入。

    一旦输入一些东西,按回车,函数返回输入。

    嵌套的 if 语句:在一个 if 块中使用另外一个 if 语句。

    记住,elif 和 else 部分是可选的。一个最简单的有效 if 语句是:

    if True:
         print 'Yes, it is true'

    在 Python 执行完一个完整的 if 语句以及与它相关联的 elif 和 else 从句之后,它移向 if 语句块的下一个语句。在这个例子中,这个语句块是主块。程序从主块开始执行,而下一个语句是print 'Done' 语句。在这之后,Python看到程序的结尾,简单的结束运行。

    给C/C++程序员的注释
    在Python中没有switch语句。你可以使用if..elif..else语句来完成同样的工作。

    while 语句

    只要在一个条件为真的情况下,while 语句允许你重复执行一块语句。while 语句是所谓循环语句的一个例子。while 语句中有一个可选的 else 从句。

    # -*- coding: utf-8 -*-
    
    number = 23
    running = True
    
    while running:
        guess = int(raw_input('请输入一个整数:'.decode('utf-8').encode('gbk')))
    
        if guess==number:
            print u'恭喜你猜对了'
            running = False
        elif guess < number:
            print u'你输入了一个较小的数'
        else:
            print u'你输入了一个较大的数'
    else:
        print u'结束程序!'

    image

    首先,我们检验变量 running 是否为 True,然后执行后面的 while-块 。在执行了这块程序之后,再次检验条件,在这个例子中,条件是 running 变量。如果它是真的,我们再次执行 while-块,否则,我们继续执行可选的 else-块,并接着执行下一个语句。
    当while循环条件变为False的时候,else-块才被执行——这甚至也可能是在条件第一次被检验的时候。如果while循环有一个 else 从句,它将始终被执行,除非你的 while 循环将永远循环下去不会结束!

    给C/C++程序员的注释
    记住,你可以在while循环中使用一个else从句。

    # while加else,只有在while正常结束循环时才执行else语句
    # 如果用非自然中断循环,比如用break跳出,则不执行
    # 如果不加else,while循环不管怎么样结束,后边的语句都执行

    for 循环

    for..in 是另外一个循环语句,它在一序列的对象上 递归  即逐一使用队列中的每个项目。

    # -*- coding: utf-8 -*-
    
    for i in range(1,5):
        print i
    else:
        print u'程序结束!'

    image

    内建函数 range() 返回一个序列的数,这个序列从第一个数开始到第二个数为止。例如,range(1,5) 给出序列 [1, 2, 3, 4]。range 第三个参数为步长,默认步长为1。例如,range(1,5,2) 给出 [1, 3]。 range 向上延伸到第二个数,但不包含第二个数。

    range(start, end, step) 三个参数,第一个和第三个可以省略默认为1

    for循环在这个范围内递归——for i in range(1,5)等价于for i in [1, 2, 3, 4],这就如同把序列中的每个数(或对象)赋值给i,一次一个,然后以每个i的值执行这个程序块。

    记住,else部分是可选的。如果包含else,它总是在for循环结束后执行一次,除非遇到break语句。

    给C/C++/Java/C#程序员的注释
    Python的 for 循环从根本上不同于C/C++的for循环。
    C#程序员会注意到 Python 的 for 循环与C#中的foreach循环十分类似。
    Java程序员会注意到它与Java 1.5中的for (int i : IntArray)相似。
    在C/C++中,如果你想要写for (int i = 0; i < 5; i++),那么用Python,你写成for i in range(0,5)。你会注意到,Python的for循环更加简单、明白、不易出错。

    break 语句
    break语句是用来 终止 循环语句的,即哪怕循环条件没有称为 False 或序列还没有被完全递归,也停止执行循环语句。
    一个重要的注释是,如果你从 for 或 while 循环中 终止 ,任何对应的循环 else 块将不执行。

    # -*- coding: utf-8 -*-
    
    while True:
        s = raw_input('请输入一个字符串:'.decode('utf-8').encode('gbk'))
        if s == 'quit':
            break;
        print u'输入字符串的长度为:', len(s)
    print u'程序结束!'

    image

    在这个程序中,我们反复地取得用户地输入,然后打印每次输入地长度。我们提供了一个特别的条件来停止程序,即检验用户的输入是否是'quit'。通过 终止 循环到达程序结尾来停止程序。
    记住,break语句也可以在for循环中使用。

    continue 语句

    continue 语句被用来告诉 python 跳过当前循环块中的剩余语句,然后 继续 进行下一轮循环。

    # -*- coding: utf-8 -*-
    
    while True:
        #s = raw_input('请输入一个字符串:'.decode('utf-8').encode('gbk'))
        s = raw_input(unicode('请输入一个字符串:','utf-8').encode('gbk'))
        if s == 'quit':
            break
        if len(s) < 3:
            continue
        print u'输入字符串长度有意义'
    print u'程序结束!'

    image

    在这个程序中,我们从用户处取得输入,但是我们仅仅当它们有至少3个字符长的时候才处理它们。所以,我们使用内建的len函数来取得长度。如果长度小于3,我们将使用continue语句忽略块中的剩余的语句。否则,这个循环中的剩余语句将被执行,我们可以在这里做我们希望的任何处理。

    注意,continue 语句对于 for 循环也有效。

  • 相关阅读:
    Linux IO接口 监控 (iostat)
    linux 防火墙 命令
    _CommandPtr 添加参数 0xC0000005: Access violation writing location 0xcccccccc 错误
    Visual Studio自动关闭
    Linux vsftpd 安装 配置
    linux 挂载外部存储设备 (mount)
    myeclipse 9.0 激活 for win7 redhat mac 亲测
    英文操作系统 Myeclipse Console 乱码问题
    Linux 基本操作命令
    linux 查看系统相关 命令
  • 原文地址:https://www.cnblogs.com/blueskylcc/p/5333595.html
Copyright © 2011-2022 走看看