Python 行打印
Line printing in Python
这个练习来自 Zed Shaw 的书的第 20 章。
我正在尝试了解行号的行为。
当我使用以下代码时,文本文件中的行号打印为 4,这是错误的。在第三行。
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 = current_line + current_line
所以让我们看看你做了什么,把它展开(我们将忽略打印语句)。
current_line = 1
current_line = current_line + current_line # (1 + 1 = 2)
#current_line = 2
current_line = current_line + current_line # (2 + 2 = 4)
#current_line = 4
我想你打算使用
current_line += 1
您没有将 current_line
的值增加常数因子 1,而是增加了 几何级数。
current_line += current_line
将 current_line
的值赋给自己 +
自己:
current_line = 5
current_line = current_line + current_line
>>> current_line
>>> 10
current_line = current_line + 1
或current_line += 1
(+=1
是一个值加1的语法糖)增加[=12=的值] 1.
current_line = 5
current_line = current_line + 1
current_line += 1
>>> current_line
>>> 7
因为current_line
是行号的计数器,所以在这种情况下应该使用+= 1
。
这个练习来自 Zed Shaw 的书的第 20 章。
我正在尝试了解行号的行为。
当我使用以下代码时,文本文件中的行号打印为 4,这是错误的。在第三行。
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 = current_line + current_line
所以让我们看看你做了什么,把它展开(我们将忽略打印语句)。
current_line = 1
current_line = current_line + current_line # (1 + 1 = 2)
#current_line = 2
current_line = current_line + current_line # (2 + 2 = 4)
#current_line = 4
我想你打算使用
current_line += 1
您没有将 current_line
的值增加常数因子 1,而是增加了 几何级数。
current_line += current_line
将 current_line
的值赋给自己 +
自己:
current_line = 5
current_line = current_line + current_line
>>> current_line
>>> 10
current_line = current_line + 1
或current_line += 1
(+=1
是一个值加1的语法糖)增加[=12=的值] 1.
current_line = 5
current_line = current_line + 1
current_line += 1
>>> current_line
>>> 7
因为current_line
是行号的计数器,所以在这种情况下应该使用+= 1
。