Python中的线条打印
这个练习来自Zed Shaw书的第20章 我试图理解行号的一种行为 当我使用下面的代码时,文本文件中的行号被打印为4,这是错误的。它在第三行Python中的线条打印,python,line-numbers,Python,Line Numbers,这个练习来自Zed Shaw书的第20章 我试图理解行号的一种行为 当我使用下面的代码时,文本文件中的行号被打印为4,这是错误的。它在第三行 current_line += current_line 但是,当我使用以下命令时,行号显示正确 current_line = current_line + 1 请有人解释一下,在我看来,这两行是一样的,这两行有什么不同,以及为什么会有不同 以下是完整代码: from sys import argv script, input_file = argv
current_line += current_line
但是,当我使用以下命令时,行号显示正确
current_line = current_line + 1
请有人解释一下,在我看来,这两行是一样的,这两行有什么不同,以及为什么会有不同
以下是完整代码:
from sys import argv
script, input_file = argv
def print_all(f):
print f.read()
def rewind(f):
f.seek(0)
def print_a_line(line_count, f):
print line_count, f.readline()
current_file = open(input_file)
print "First let's print the whole file:\n"
print_all(current_file)
print "Now let's rewind, kind of like a tape."
rewind(current_file)
print "Let's print three lines:"
current_line = 1
print_a_line(current_line, current_file)
current_line += current_line
print_a_line(current_line, current_file)
#current_line = current_line + 1
current_line += current_line
print_a_line(current_line, current_file)
当前_线+=当前_线向外扩展到
current_line = current_line + current_line
让我们来看看你做了什么,通过展开它(我们将忽略print语句)
我想你是想用
current_line += 1
您没有将当前行的值增加常量因子1,而是按几何级数增加
current\u-line+=current\u-line
将current\u-line
的值赋值为自身+
自身:
current_line = 5
current_line = current_line + current_line
>>> current_line
>>> 10
current\u line=current\u line+1
或current\u line+=1
(+=1
是将值增加1的语法糖)将current\u line
的值增加1
current_line = 5
current_line = current_line + 1
current_line += 1
>>> current_line
>>> 7
由于
current\u line
是行号的计数器,因此在这种情况下应使用+=1
谢谢你,塔斯廷戈。我现在明白了,谢谢。我是一个编程新手,我不知道它是如何工作的。@Sarat Yeeep别担心,坚持下去!正如你们所知,我对这个问题投了赞成票,因为它是一个结构良好的初学者问题的极好例子。您已经描述了问题(包括预期结果和实际结果),清楚地说明了您的问题,并包含了一个示例。许多初学者(编程和使用堆栈溢出)忽略了其中一个或多个。请不要停止以这种方式提问。非常感谢:)-我会记住这些要点,然后提问。
current_line = 5
current_line = current_line + 1
current_line += 1
>>> current_line
>>> 7