180112 打字效果

import sys,time #导入模块 sys模块,time模块

f = open("老子",'r',encoding="utf-8") #打开文件 同一个目录里的名为“老子”的文件,打开为读取,用utf-8方式

for line in f:  #循环读取刚刚打开的f的行line; for...in... 循环 ;for..in语句是个循环语句,它迭代一个对象的序列,现在,你需要知道的是一个序列只是一个有序的项目的集合。
    for i in line: #循环读取文字;读取上一行读取的行line里的每个文字,生成列表i
 sys.stdout.write(i) #标准输出 这就是导入sys模块的原因,用到其中的stdout.write,后面跟上(i)——标准输出上一行的文字列表i
sys.stdout.flush() #刷新 这是间隔一段时间刷新的意思,sys.stdout .flush ...

time.sleep(0.1) #输出时间控制 再次看到time模块的.sleep ,参数设定为(0.1)秒

一直希望有动态打字效果,横向的一个个的打出来

问了几个人,都不知道。只告诉我竖向的。

后来终于找到了。

现在详细的解析一下代码含义

 

for循环然后遍历这个范围

 for line in f :

遍历f的每一行line,生成新的list,line for line in ...是为了对遍历的每一行做处理的,比如
[line.strip() for line in file()] 这样生成的list中的每一个line都是经过了strip操作的,或者我要取每一行的前面几个字符就是 [line[:3] for line in file()],只不过你这个地方是没有做任何处理。

for循环然后遍历这个范围,for i in range(1,5)相当于 for i in [1, 2, 3, 4],这就像把序列中的每一个数(或对象)分配给i,一次一个,然后为每个i值执行该语句块。在本例中,在语句块中我们只是打印它的值。

同样的:for i in line

 

sys模块的sys.stdout  —— write()  ; flush()

 

最后,time.sleep()

posted @ 2018-01-12 18:59  卡普厅  阅读(124)  评论(0编辑  收藏  举报