Python第二版第8章(第107页)的代码理解问题
两个问题需要请教下论坛各位大神:问题一
代码中
for each_line in f:
这个循环each_line的赋值是一次性把文件文本全部字符串都赋值了,还是以回车换行 一行一行来赋值的?为什么呢?
问题二
代码中:
(role,line_spoken)=each_line.split(':',1)
这个(role,line_spoken)是什么?是的含变量元素的列表吗?
1. 是一行一行遍历文件 f,因为文件对象的 __next__() 方法就是这么定义的(到后面你会学到魔法方法,自然就能明白了)
2. 不是,这是利用元组一次性给多个变量赋值,role = '小甲鱼',line_spoken = '后面对话内容' 本帖最后由 sunrise085 于 2020-7-28 11:40 编辑
问题1:for循环遍历是一行一行来读文件的。这是python的规则
问题2、(role,line_spoken)=each_line.split(':',1)是把each_line以 : 分割一次,第一部分给role,第二部分给 line_spoken,也就是把说话者名字给role,把说的话给line_spoken。这不是个列表,就是一次性给多个遍历赋值,前面的role 和line_spoken可以不加括号 本帖最后由 陈尚涵 于 2020-7-28 11:49 编辑
你这几个问题说的都不对{:10_250:}{:10_250:},我来解释一下吧
问题1
for each_line in f:
什么全部赋值和回车换行一行一行的赋值{:10_250:}{:10_250:}这个文本本身就是序列,他是把这个“序列”一行一行的赋值{:10_256:}
问题2
这个role, line_spoken是什么含变量元素的列表呀{:10_250:}{:10_250:}只不过这段代码也可以这么写:
role, line_spoken = each_line(':', 1)
意思就是这么写:
role = each_line.split(':', 1)
line_spoken = each_line.split(':', 1)
记得给我设置最佳答案哦~
哇,发帖子的时候显示是10秒前楼主发的贴,这么快你们就到了{:10_257:}{:10_257:} 陈尚涵 发表于 2020-7-28 11:43
你这几个问题说的都不对,我来解释一下吧
问题1
你好大神,再请教下,既然
role = each_line.split(':', 1)
line_spoken = each_line.split(':', 1)
那为什么用小括弧都框起来?括弧框内不是列表元素吗? zltzlt 发表于 2020-7-28 11:38
1. 是一行一行遍历文件 f,因为文件对象的 __next__() 方法就是这么定义的(到后面你会学到魔法方法,自然 ...
感谢大神答疑{:5_109:} sunrise085 发表于 2020-7-28 11:39
问题1:for循环遍历是一行一行来读文件的。这是python的规则
问题2、(role,line_spoken)=each_line.split( ...
感谢大神答疑。{:5_109:} 陈尚涵 发表于 2020-7-28 11:43
你这几个问题说的都不对,我来解释一下吧
问题1
你这有点不要脸啊{:10_277:} zltzlt 发表于 2020-7-28 13:25
你这有点不要脸啊
??? bio911 发表于 2020-7-28 12:02
你好大神,再请教下,既然
role = each_line.split(':', 1)
line_spoken = each_line.split(':', 1) ...
对啊,得到的就是列表元素啊
页:
[1]