美文网首页Python基础
Python循环语句-3·For&Range用法

Python循环语句-3·For&Range用法

作者: 技术老男孩 | 来源:发表于2022-12-25 11:57 被阅读0次

    一、range 函数概念

    range 函数是一个内建函数,它的返回值是一个半闭半开范围内的整数。for 循环常与range函数一起使用,range函数为循环提供条件。

    二、语法结构

    语法结构

    案例

    常规使用:

    [root@localhost day02]# python3
    >>> tmp = range(1, 10)
    >>> tmp
    range(1, 10)
    >>> len(tmp)
    9
    >>> list(tmp)
    [1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> tmp01 = range(5)
    >>> tmp01
    range(0, 5)
    >>> list(tmp01)
    [0, 1, 2, 3, 4]
    

    因为 range 函数的使用和切片比较类似,所以同样具有切片的使用特性:

    [root@localhost day02]# python3
    >>> tmp = range(1, 10, 2)
    >>> list(tmp)
    [1, 3, 5, 7, 9]
    

    与 for 循环一起使用

    可以把 range 函数当成购物车,购物车中的商品是一个个范围内的数字,要想拿出里面的数字,就得遍历,所以 range 可以和 for 连用,可以控制循环次数。

    案例:控制for循环的次数

    [root@localhost day02]# vim demo07_for.py  # demo07_for.py是文件名,可以修改
    for i in range(3):
     print("第" + str(i) + "次:hello world")
    
    • 如果直接打印 "hello world":
    [root@localhost day02]# vim demo07_for.py  # demo07_for.py是文件名,可以修改
    for i in range(3):
     print("hello world")
    
    • 这里的变量 i 只是为了语法,在案例中没有实际意义,不写变量在语法层面会报错,这里的 range 只为控制循环次数。

    列表解析

    它是一个非常有用、简单、灵活的工具,可以用来动态地创建列表,注意:它只是一个简写方式,不是新知识点

    语法结构

    语法结构

    案例:生成一个元素为 1~10 的列表

    for 循环方式:语法相对复杂,但是好理解

    [root@localhost day02]# vim demo08_for.py  # demo08_for.py是文件名,可以修改
    list01 = []
    for i in range(1, 11):
     list01.append(i)  # [1, 2, 3, 4, 5 ,6 ,7 ,8, 9, 10]
    print(list01)
    

    列表解析式

    [root@localhost day02]# vim demo08_for.py  # demo08_for.py是文件名,可以修改
    list01 = [i for i in range(1, 11)]
    

    列表解析式相对于for循环,只是变了一种结构,核心还是for循环,所以我们只需要关心语法即可。

    练习:将刚才的 list01 列表的基础上对其中的每个元素加 1

    [root@localhost day02]# vim demo08_for.py  # demo08_for.py是文件名,可以修改
    list01 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
    list01 = [i+1 for i in list01]
    print(list01)
    

    练习:斐波那契数列

    1. 斐波那契数列就是某一个数,总是前两个数之和,比如 0,1,1,2,3,5,8
    2. 使用for循环和range函数编写一个程序,计算有10个数字的斐波那契数列
    3. 改进程序,要求用户输入一个数字,可以生成用户需要长度的斐波那契数列

    版本一

    [root@localhost day02]# vim test05_for.py  # test05_for.py是文件名,可以修改
    fib = [0,1]  # 定义列表,指定斐波那契数列的初始两个值
    for i in  range(8):  # for循环执行8次,列表fib中的元素个数变为10【初始2个 + 新增的8个】
     fib.append(fib[-1] + fib[-2])  # 列表追加,每次都是最后一个元素和倒数第二个元素相加,产生新的元素
    print(fib)  # 打印列表fib
    

    版本二:编写可以指定长度的斐波那契数列程序

    [root@localhost day02]# vim test05_for.py  # test05_for.py是文件名,可以修改
    fib = [0,1]  # 定义列表,指定斐波那契数列的初始两个值
    n = int(input('长度: '))  # 定义变量n, 此变量为用户要看到的列表fib中的元素个数
    # for循环执行n-2次,for循环执行多少次,列表fib会新增多少个元素
    # 因为列表fib本身有两个初始值,所以要产生n-2个数字
    for i in  range(n - 2): 
     fib.append(fib[-1] + fib[-2]) 
    print(fib)
    

    相关文章

      网友评论

        本文标题:Python循环语句-3·For&Range用法

        本文链接:https://www.haomeiwen.com/subject/teuafdtx.html