Python 简明教程
Python - Assignment Operators
Python Assignment Operator
=(等于)符号被定义为 Python 中的赋值运算符。其右侧的 Python 表达式值被分配给其左侧的单个 variable 。与一般的编程语言(及其 Python 语言)中一样,符号 = 不应与其在数学中的用法混淆,在数学中,它表示符号两侧的表达式相等。
The = (equal to) symbol is defined as assignment operator in Python. The value of Python expression on its right is assigned to a single variable on its left. The = symbol as in programming in general (and Python in particular) should not be confused with its usage in Mathematics, where it states that the expressions on the either side of the symbol are equal.
Example of Assignment Operator in Python
考虑下面的 Python 语句:
Consider following Python statements −
a = 10
b = 5
a = a + b
print (a)
一开始,对于编程新手而言,即使他们懂数学,“a=a+b”这条语句看起来也很奇怪。a 怎么可能等于“a+b”?然而,需要注意的是,符号在这里是一个赋值运算符,而不是用来表示左右两侧相等。
At the first instance, at least for somebody new to programming but who knows maths, the statement "a=a+b" looks strange. How could a be equal to "a+b"? However, it needs to be reemphasized that the = symbol is an assignment operator here and not used to show the equality of LHS and RHS.
因为它是一个赋值,所以右侧表达式求值为 15,该值被分配给 a。
Because it is an assignment, the expression on right evaluates to 15, the value is assigned to a.
在语句“a+=b”中,两个运算符“" 和 "=" 可以组合成一个“=" 运算符。这称为加法和赋值运算符。在一条语句中,它对两个操作数“a”和“b”执行加法运算,并将结果分配给左侧操作数, 即“a”。
In the statement "a+=b", the two operators "" and "=" can be combined in a "=" operator. It is called as add and assign operator. In a single statement, it performs addition of two operands "a" and "b", and result is assigned to operand on left, i.e., "a".
Augmented Assignment Operators in Python
除了简单的赋值运算符外,Python 还提供了更多可用于高级用途的赋值运算符。它们称为累积赋值运算符或扩充赋值运算符。在本章中,我们将学习如何使用 Python 中定义的扩充赋值运算符。
In addition to the simple assignment operator, Python provides few more assignment operators for advanced use. They are called cumulative or augmented assignment operators. In this chapter, we shall learn to use augmented assignment operators defined in Python.
Python 具有所有 arithmetic 和 comparison 运算符的增强赋值运算符。
Python has the augmented assignment operators for all arithmetic and comparison operators.
Python 增强赋值运算符在一个语句中结合了加法和赋值。由于 Python 支持混合算术,因此两个操作数的类型可能不同。然而,如果更宽的话,左操作数的类型会更改为右边的操作数。
Python augmented assignment operators combines addition and assignment in one statement. Since Python supports mixed arithmetic, the two operands may be of different types. However, the type of left operand changes to the operand of on right, if it is wider.
Example
+= 运算符是一个扩充运算符。它也被称为累加运算符,因为它在“a”中加上“b”,并将结果重新分配给变量。
The += operator is an augmented operator. It is also called cumulative addition operator, as it adds "b" in "a" and assigns the result back to a variable.
以下是在 Python 中的增强赋值运算符:
The following are the augmented assignment operators in Python:
-
Augmented Addition Operator
-
Augmented Subtraction Operator
-
Augmented Multiplication Operator
-
Augmented Division Operator
-
Augmented Modulus Operator
-
Augmented Exponent Operator
-
Augmented Floor division Operator
Augmented Addition Operator (+=)
以下示例将有助于理解 "+=" 运算符如何工作:
Following examples will help in understanding how the "+=" operator works −
a=10
b=5
print ("Augmented addition of int and int")
a+=b # equivalent to a=a+b
print ("a=",a, "type(a):", type(a))
a=10
b=5.5
print ("Augmented addition of int and float")
a+=b # equivalent to a=a+b
print ("a=",a, "type(a):", type(a))
a=10.50
b=5+6j
print ("Augmented addition of float and complex")
a+=b #equivalent to a=a+b
print ("a=",a, "type(a):", type(a))
它将生成以下 output −
It will produce the following output −
Augmented addition of int and int
a= 15 type(a): <class 'int'>
Augmented addition of int and float
a= 15.5 type(a): <class 'float'>
Augmented addition of float and complex
a= (15.5+6j) type(a): <class 'complex'>
Augmented Subtraction Operator (-=)
使用 -= 符号在单个语句中执行减法和赋值操作。"a-=b" 语句执行 "a=a-b" 赋值。操作数可以是任意数字类型。Python 针对大小较窄的 object 执行隐式类型转换。
Use -= symbol to perform subtract and assign operations in a single statement. The "a-=b" statement performs "a=a-b" assignment. Operands may be of any number type. Python performs implicit type casting on the object which is narrower in size.
a=10
b=5
print ("Augmented subtraction of int and int")
a-=b #equivalent to a=a-b
print ("a=",a, "type(a):", type(a))
a=10
b=5.5
print ("Augmented subtraction of int and float")
a-=b #equivalent to a=a-b
print ("a=",a, "type(a):", type(a))
a=10.50
b=5+6j
print ("Augmented subtraction of float and complex")
a-=b #equivalent to a=a-b
print ("a=",a, "type(a):", type(a))
它将生成以下 output −
It will produce the following output −
Augmented subtraction of int and int
a= 5 type(a): <class 'int'>
Augmented subtraction of int and float
a= 4.5 type(a): <class 'float'>
Augmented subtraction of float and complex
a= (5.5-6j) type(a): <class 'complex'>
Augmented Multiplication Operator (*=)
“@ {s0}=b”执行乘法和赋值操作,相当于“a=a*b”。对于两个复数的扩充乘法,上一章讨论的乘法规则适用。
The "=" operator works on similar principle. "a=b" performs multiply and assign operations, and is equivalent to "a=a*b". In case of augmented multiplication of two complex numbers, the rule of multiplication as discussed in the previous chapter is applicable.
a=10
b=5
print ("Augmented multiplication of int and int")
a*=b #equivalent to a=a*b
print ("a=",a, "type(a):", type(a))
a=10
b=5.5
print ("Augmented multiplication of int and float")
a*=b #equivalent to a=a*b
print ("a=",a, "type(a):", type(a))
a=6+4j
b=3+2j
print ("Augmented multiplication of complex and complex")
a*=b #equivalent to a=a*b
print ("a=",a, "type(a):", type(a))
它将生成以下 output −
It will produce the following output −
Augmented multiplication of int and int
a= 50 type(a): <class 'int'>
Augmented multiplication of int and float
a= 55.0 type(a): <class 'float'>
Augmented multiplication of complex and complex
a= (10+24j) type(a): <class 'complex'>
Augmented Division Operator (/=)
组合符号“/=”用作除法和赋值运算符,因此“a/=b”相当于“a=a/b”。int 或 float 操作数的除法运算为 float。两个复数的除法返回一个复数下文给出扩充除法运算符的示例。
The combination symbol "/=" acts as divide and assignment operator, hence "a/=b" is equivalent to "a=a/b". The division operation of int or float operands is float. Division of two complex numbers returns a complex number. Given below are examples of augmented division operator.
a=10
b=5
print ("Augmented division of int and int")
a/=b #equivalent to a=a/b
print ("a=",a, "type(a):", type(a))
a=10
b=5.5
print ("Augmented division of int and float")
a/=b #equivalent to a=a/b
print ("a=",a, "type(a):", type(a))
a=6+4j
b=3+2j
print ("Augmented division of complex and complex")
a/=b #equivalent to a=a/b
print ("a=",a, "type(a):", type(a))
它将生成以下 output −
It will produce the following output −
Augmented division of int and int
a= 2.0 type(a): <class 'float'>
Augmented division of int and float
a= 1.8181818181818181 type(a): <class 'float'>
Augmented division of complex and complex
a= (2+0j) type(a): <class 'complex'>
Augmented Modulus Operator (%=)
如需在单个语句中执行取模和赋值运算,请使用 %= 运算符。与 mod 运算符一样,其增强的版本也不支持复数。
To perform modulus and assignment operation in a single statement, use the %= operator. Like the mod operator, its augmented version also is not supported for complex number.
a=10
b=5
print ("Augmented modulus operator with int and int")
a%=b #equivalent to a=a%b
print ("a=",a, "type(a):", type(a))
a=10
b=5.5
print ("Augmented modulus operator with int and float")
a%=b #equivalent to a=a%b
print ("a=",a, "type(a):", type(a))
它将生成以下 output −
It will produce the following output −
Augmented modulus operator with int and int
a= 0 type(a): <class 'int'>
Augmented modulus operator with int and float
a= 4.5 type(a): <class 'float'>
Augmented Exponent Operator (**=)
“**=”运算符会导致计算“a”的“b”次方,并将值赋回给“a”。下面给出了几个示例:
The "**=" operator results in computation of "a" raised to "b", and assigning the value back to "a". Given below are some examples −
a=10
b=5
print ("Augmented exponent operator with int and int")
a**=b #equivalent to a=a**b
print ("a=",a, "type(a):", type(a))
a=10
b=5.5
print ("Augmented exponent operator with int and float")
a**=b #equivalent to a=a**b
print ("a=",a, "type(a):", type(a))
a=6+4j
b=3+2j
print ("Augmented exponent operator with complex and complex")
a**=b #equivalent to a=a**b
print ("a=",a, "type(a):", type(a))
它将生成以下 output −
It will produce the following output −
Augmented exponent operator with int and int
a= 100000 type(a): <class 'int'>
Augmented exponent operator with int and float
a= 316227.7660168379 type(a): <class 'float'>
Augmented exponent operator with complex and complex
a= (97.52306038414744-62.22529992036203j) type(a): <class 'complex'>
Augmented Floor division Operator (//=)
如需在单个语句中执行取整除和赋值,请使用 “//=”运算符。“a//=b”相当于“a=a//b”。此运算符不能用于复数。
For performing floor division and assignment in a single statement, use the "//=" operator. "a//=b" is equivalent to "a=a//b". This operator cannot be used with complex numbers.
a=10
b=5
print ("Augmented floor division operator with int and int")
a//=b #equivalent to a=a//b
print ("a=",a, "type(a):", type(a))
a=10
b=5.5
print ("Augmented floor division operator with int and float")
a//=b #equivalent to a=a//b
print ("a=",a, "type(a):", type(a))
它将生成以下 output −
It will produce the following output −
Augmented floor division operator with int and int
a= 2 type(a): <class 'int'>
Augmented floor division operator with int and float
a= 1.0 type(a): <class 'float'>