• 8.使用for循环和while循环遍历文件


    Python中有两种循环,分别为:for循环和while循环。

    1. for循环

    for循环可以用来遍历某一对象(遍历:通俗点说,就是把这个循环中的第一个元素到最后一个元素依次访问一次)。for循环的基本结构如下:

    具体看这个案例:

    设计一个函数,在桌面创建10个文本,用数字从1-10依次给它们命名。

    复制代码
     1 def text_create():
     2     path = '/Users/duwangdan/Desktop/'
     3     for text_name in range(1,11):
     4         # 1-10的范围需要用到range函数
     5         with open (path + str(text_name) + '.txt','w') as text:
     6             # with...as的用法正文内会详细介绍
     7             text.write(str(text_name))
     8             text.close()
     9             print('Done')
    10 
    11 text_create()
    复制代码

    现在我们来理解下每行代码。

    第1行:定义一个text_create函数;

    第2行:给变量path赋值为桌面路径;

    第3行:将1-10范围内的每个数字依次装入变量text_name中,每次命名一个文件;

    第5行:打开位于桌面的txt文件,并给每一个text执行写入操作;

    第7行:给每个文件依次命名;

    第8行:关闭文件;

    第9行:执行完一次命名操作后显示一个Done;

    第11行:调用函数。

    案例中提到了“with...as”,在Python中,“with...as”语法是用来代替传统的“try...finally”的。

    比如:打开桌面的test文件,尝试读取文件内容,最后关闭文件。

    1 file = open('/Users/duwangdan/Desktop/test.txt')
    2 try:
    3     data = file.read()
    4 finally:
    5     file.close()

    虽然这段代码执行良好,但比较冗长,换成用“with...as”来表达后,代码会更为简洁。

    1 with open('/Users/duwangdan/Desktop/test.txt') as file:
    2     data = file.read()

    除了上面的单层循环之外,还有一种常见的循环,是嵌套循环

    比如用嵌套循环实现九九乘法口诀。

    1 for i in range(1,10):
    2     for j in range(1,10):
    3         print('{} X {} = {}'.format(i,j,i*j))

    最外层的循环,依次将1-9的数字储存在变量i中;变量i每取一次值,内层循环就依次将1-9的数字储存在变量j中;最后打印出当前的i、j、和i*j的值。

    从Python2.6开始,新增了format函数,用来格式化字符串,可以通过{}.format来实现。在上面这个案例中,将i、j、i*j的值分别存入前面的{ }中,然后做好格式化,统一形式。

    2. while循环

    for循环和while循环,两者的相同点在于都能循环做一件重复的事情;不同点在于,for循环是在序列穷尽时停止,while循环是在条件不成立时停止。

    具体,看下面这个例子:

    1 count = 0
    2 while True:
    3     print('重复一遍')
    4     count = count + 1
    5     if count == 3:
    6         break

    给变量count赋值为0,while True就是条件成立,显示“重复一遍”,此时count被重新赋值为count+1,如果count等于3时,跳出循环。最后一句的break是跳出最近一层的循环,如果不跳出,程序会无限制循环下去,造成死循环。

    如果不想用break来跳出循环,也可以改变使循环成立的条件。

    将上面的例子可转化为如下:

    1 count = 0
    2 while (count < 3):
    3     print('重复一遍')
    4     count = count + 1
  • 相关阅读:
    《一线架构师实践指南》第三编Refined Architecture阶段读后感
    大数据技术与应用课堂测试2-数据初级分析分类2
    大数据技术与应用课堂测试2-数据初级分析分类
    对Datax的理解
    2020春季学期第三周总结
    可测试性战术总结
    2020春季学期第一周总结
    以《淘宝网》为例,描述质量属性的六个常见属性场景
    软件架构师如何工作
    MapReduce+HIVE 课堂练习
  • 原文地址:https://www.cnblogs.com/wolfboy55-163-com/p/8138236.html
Copyright © 2020-2023  润新知