示例20:通过艰苦的方式学习Python



我试图找到关于+=在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 += 2n = n + 2 相同

在您的示例中,执行current_line += 1 而不是current_line = current_line + 1

它从字面上解释了+=在本页上的含义。

http://learnpythonthehardway.org/book/ex20.html

Q: 什么是+=

A: 你知道我是如何用英语改写";它是";作为";是";?或者我可以重写";你是";作为";你是";?在英语中,这被称为收缩,这有点像两个运算=+的收缩。这意味着x = x + yx += y相同。

+=是句法糖。你可以把Syntactic Sugar看作是一个额外的东西,它让事情变得更容易或更清晰。

这段特殊的句法糖用于将一个值(右边的值,也称为右值)添加到现有变量(左边的变量,也称为左值)。

你可以写

variable += 1 

作为

variable = variable + 1 

对口译员来说也没什么不同。您也可以对其他操作符执行同样的操作。

var -= 8   # Subtracting
var *= 3   # Multiplication
var %= 2   # Modulus (Remainder of division)
var /= 4   # Division

或者你根本不能。无论您的想法如何,都会使您的代码清晰、易于理解和键入。这确实是一种偏好。我通常会坚持使用一种或另一种类型,因为使用多种编程风格往往会混淆。

最新更新