我试图找到关于+=在Python中做什么的信息,但找不到任何让我满意的信息。在例如20的研究演练中,他要求你用+=重写脚本。即使只是一个关于它的作用或可以取代什么的小例子也会有所帮助。我怎么能重写这个?
from sys import argv
script, input_file = argv
def print_all(f):
print f.read()
def rewind(f):
print f.seek(0)
def print_a_line(line, f):
print line, f.readline()
print "Here is the file: %r" % input_file
current_file = open(input_file)
print_all(current_file)
print "Now let's start from the beginning..."
rewind(current_file)
print "Here are the first three lines of the file:"
current_line = 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
current_line = current_line + 1
print_a_line(current_line, current_file)
current_file.close()
+=
运算符的意思是向现有变量添加一些内容。n += 2
与n = n + 2
相同
在您的示例中,执行current_line += 1
而不是current_line = current_line + 1
它从字面上解释了+=
在本页上的含义。
http://learnpythonthehardway.org/book/ex20.html
Q: 什么是
+=
?A: 你知道我是如何用英语改写";它是";作为";是";?或者我可以重写";你是";作为";你是";?在英语中,这被称为收缩,这有点像两个运算
=
和+
的收缩。这意味着x = x + y
与x += y
相同。
+=是句法糖。你可以把Syntactic Sugar看作是一个额外的东西,它让事情变得更容易或更清晰。
这段特殊的句法糖用于将一个值(右边的值,也称为右值)添加到现有变量(左边的变量,也称为左值)。
你可以写
variable += 1
作为
variable = variable + 1
对口译员来说也没什么不同。您也可以对其他操作符执行同样的操作。
var -= 8 # Subtracting
var *= 3 # Multiplication
var %= 2 # Modulus (Remainder of division)
var /= 4 # Division
或者你根本不能。无论您的想法如何,都会使您的代码清晰、易于理解和键入。这确实是一种偏好。我通常会坚持使用一种或另一种类型,因为使用多种编程风格往往会混淆。