• python教程(二)·循环语句


    计算机程序中常常需要重复执行某些语句,我们总不能将同一语句写上百遍吧?所以在python中,当然其它计算机语言也是,有一种语句可以重复执行相同的操作,这种语句就是 “循环语句”,而被重复执行的一组语句称为 “循环体”

    在python中有两种循环语句,分别是for循环语句,while循环语句,下面来一一介绍。


    for循环

    for循环在上一节中也提到了,可以用来遍历列表、元组、字典,如下代码:

    list1 = ['python', 'c/c++', 'java', 'php']
    tuple1 = tuple(list1) # 将list1转换成list1
    dict1 = {
        'baidu':'https://www.baidu.com',
        'feather':'https://featherl.gitee.io'
    }
    
    # 遍历列表
    for e in list1:
        print(e)
    
    print('-----')
    
    # 遍历元组
    for e in tuple1:
        print(e)
    
    print('-----')
    
    # 遍历字典
    for k in dict1:
        print(k,dict1[k])
    
    

    输出:

    python
    c/c++
    java
    php
    -----
    python
    c/c++
    java
    php
    -----
    baidu https://www.baidu.com
    feather https://featherl.gitee.io
    

    上面的只是基本,现在来详细讲讲。

    for语句和if语句一样,是一种代码块,其基本形式为:

    for 变量 in 可迭代对象:
        循环体
    

    上面的“可迭代对象”暂时理解成列表、元组、字典这些数据类型,for语句会把可迭代对象中的元素赋值给“变量”,执行“循环体”,再把下一个元素赋值给“变量”,再执行“循环体”,这样一直循环下去,直至所有元素都遍历完

    上面讲的是遍历“可迭代对象”,而本节讲的是循环,是不是有点离题?既然是“循环”,是否可以控制代码执行5次或者100次呢?

    学过C语言、java或者其它类似语言的同学会知道,for循环通常会有这样的形式:

    //打印5行数字,分别是0、1、2、3、4
    for(int i=0; i < 5; i++){
        printf("%d
    ", i); //这行代码执行了5次
    }
    

    如果要像上面那样输出5行连续的数字,或者说执行同样的代码5次,在python中该怎么做呢?

    有同学可能这么说:

    “这个不难,可以定义一个列表:[0, 1, 2, 3, 4],然后用for循环遍历输出”

    对于这么想的同学,我只想表示,不如你去试试输出0~1000的 (≧∀≦)ゞ

    开个玩笑而已,不要当真,回到话题上,难不成真的要手动输入成百上千个数字的列表吗?肯定不是,上代码!

    # 输出100行整数,0~100,不包括100
    for i in range(100):
        print(i)
    

    在这里有必要提一下下一节的知识了,这个range是一个函数,100是它的一个参数,range(100)表示调用这个函数,并提供参数100range函数的作用是生成一个类似列表的东西,就当是列表(在python2.x中它就是列表,我们学的是python3.x,不太一样),它返回的这个“列表”含有整数0~99,用数学上的区间表示就是:[0, 100)(x ∈ Z),也就是 整数0到100,不包括100

    好了,点到为止,关于函数的详细讲解会在下一节介绍。

    介绍完range函数后就清楚很多了,上面的代码相当于用for循环遍历了一个列表,这个列表含有整数0~100(不包括100 即0~99),然后输出遍历得到的整数。

    回到根源,我们其实想做的是,将同样的代码重复执行一定次数,所以当我们要重复执行100次同样的代码,可以这么做:

    # 因为range(100)生成整数0~99,有100个整数,所以循环执行100次
    for i in range(100):
       代码块
    

    有时候我们真的只是想得到连续的整数,并且我们不要0~99而要2~10这样不是0开始的连续整数,这时我们调用range函数的方式就要变一变了。下面看代码:

    # range(起点,终点)
    # range(2, 10)中,第一个参数2表示从2开始生成整数,生成的整数小于10
    for i in range(2, 10):
        print(i)
    

    又有时候,我们需要连续的整数,这些整数之间的间隔不是常规的1,而是2或以上,比如偶数和奇数,这时可以用3个参数的调用方法,其中一个参数指定间隔,代码如下:

    # range(起点,终点,间隔)
    # range(1, 10, 2) 生成 1、3、5、7、9 间隔为2,也就是每2步取一个数
    for i in range(0, 10, 2):
        print(i)
    

    又有时候……

    还有 ⊙▽⊙?!

    应该是没有了 ^_^


    while循环

    咳咳~

    我们继续。

    相比for循环,while循环则简单很多,C语言中的while循环是这样的:

    while(条件){
        代码块
    }
    

    C语言的代码块是用花括号标识的{中间是代码块},而python呢,前面也学习到,python使用缩进的方式来标识代码块,所以除了代码块的表示方式不一样外,while循环的形式和C语言是非常相像的:

    while 条件:
        代码块
    

    while语句的工作方式是这样的:首先,判断条件,若条件不成立,则这个while语句执行完毕;若条件成立,则执行代码块;这样为一轮循环,只要条件一直成立,这个while语句也就一直执行下去。

    现在我们来用while循环改写上面for循环输出连续整数的代码:

    # 输出整数0~99
    i = 0
    while i < 100:
        print(i)
        i += 1 # i=i+1 也就是给i加上1
    

    :其实,一般情况下,明确知道循环的次数或者遍历可迭代的对象的时候使用for循环,其它情况下使用while循环,所以上面的代码仅做例子,实际中并不用while来做这种情况,而是用for循环。


    循环控制

    循环的条件是什么?执行到什么时候?

    在某些情况下,我们是无法在一开始就确定上述问题的答案的,我们需要根据实际情况来断定循环是否要中断,或者跳过这一次循环直接开始下一次条件的判断,这时候就需要循环的控制语句。

    循环控制语句只有两种:

    • break
    • continue

    这两种语句也就仅仅两个关键字,breakcontinuebreak终止当前循环,而continue则跳过本次循环直接开始下一轮循环,它们适用于所有循环语句(一共就两种循环语句),下面以for循环来讲解。

    抛出一段简单的代码,看注释即可:

    for i in range(10):
        if i == 2:
            # 跳过 i为2的一轮循环
            continue
        if i == 7:
            # i为7时终止循环
            break
        print(i) # 输出变量i
    

    运行上面代码得到如下输出:

    0
    1
    3
    4
    5
    6
    

    总结

    这一节我们学习了两种循环语句,分别for循环和while循环,通常在确定循环次数时,或者用于遍历时,使用for循环,其它情况使用while循环。

    我们还了解了循环控制语句,breakcontinuebreak用于终止循环,continue用于跳过当前这轮循环,结合条件语句,我们可以很好的控制循环的进行。


    这一节有点长,望读者能好好消化,下一节见 ヾ( ̄▽ ̄)、

  • 相关阅读:
    2022/3/31周四学业有成项目小结
    2022/4/1周五学业有成项目小结
    2022/3/30周三学业有成项目小结
    2022/4/8学业有成项目大总结
    Centos 常用命令处理
    Springboot 各个版本特点
    thymeleaf取list下标
    如何修改文件Root of Spring boot2嵌入式tomcat
    有些道理,应该懂得~~~
    install mysql 后续
  • 原文地址:https://www.cnblogs.com/featherl/p/10344328.html
Copyright © 2020-2023  润新知