加入收藏 | 设为首页 | 会员中心 | 我要投稿 包头站长网 (https://www.0472zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 编程要点 > 语言 > 正文

Python赋值运算符 进门必读

发布时间:2022-07-05 12:12:51 所属栏目:语言 来源:互联网
导读:赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。 Python 中最基本的赋值运算符是等号=;结合其它运算符,=还能扩展出更强大的赋
  赋值运算符用来把右侧的值传递给左侧的变量(或者常量);可以直接将右侧的值交给左侧的变量,也可以进行某些运算后再交给左侧的变量,比如加减乘除、函数调用、逻辑运算等。
 
  Python 中最基本的赋值运算符是等号=;结合其它运算符,=还能扩展出更强大的赋值运算符。
  基本赋值运算符
  =是 Python 中最常见、最基本的赋值运算符,用来将一个表达式的值赋给另一个变量,请看下面的例子:
  #将字面量(直接量)赋值给变量
  n1 = 100
  f1 = 47.5
  s1 = "http://c.biancheng.net/python/"
  #将一个变量的值赋给另一个变量
  n2 = n1
  f2 = f1
  #将某些运算的值赋给变量
  sum1 = 25 + 46
  sum2 = n1 % 6
  s2 = str(1234)  #将数字转换成字符串
  s3 = str(100) + "abc"
  连续赋值
  Python 中的赋值表达式也是有值的,它的值就是被赋的那个值,或者说是左侧变量的值;如果将赋值表达式的值再赋值给另外一个变量,这就构成了连续赋值。请看下面的例子:
  a = b = c = 100
 
  =具有右结合性,我们从右到左分析这个表达式:
  c = 100 表示将 100 赋值给 c,所以 c 的值是 100;同时,c = 100 这个子表达式的值也是 100。
  b = c = 100 表示将 c = 100 的值赋给 b,因此 b 的值也是 100。
  以此类推,a 的值也是 100。
 
  最终结果就是,a、b、c 三个变量的值都是 100。
  = 和 ==
  = 和 == 是两个不同的运算符,= 用来赋值,而 == 用来判断两边的值是否相等,千万不要混淆。
  扩展后的赋值运算符
  =还可与其他运算符(包括算术运算符、位运算符和逻辑运算符)相结合,扩展成为功能更加强大的赋值运算符,如表 1 所示。扩展后的赋值运算符将使得赋值表达式的书写更加优雅和方便。
 
  表 1 Python 扩展赋值运算符
  运算符 说 明 用法举例 等价形式
  = 最基本的赋值运算 x = y x = y
  += 加赋值 x += y x = x + y
  -= 减赋值 x -= y x = x - y
  *= 乘赋值 x *= y x = x * y
  /= 除赋值 x /= y x = x / y
  %= 取余数赋值 x %= y x = x % y
  **= 幂赋值 x **= y x = x ** y
  //= 取整数赋值 x //= y x = x // y
  &= 按位与赋值 x &= y x = x & y
  |= 按位或赋值 x |= y x = x | y
  ^= 按位异或赋值 x ^= y x = x ^ y
  <<= 左移赋值 x <<= y x = x << y,这里的 y 指的是左移的位数
  >>= 右移赋值 x >>= y x = x >> y,这里的 y 指的是右移的位数
  这里举个简单的例子:
  n1 = 100
  f1 = 25.5
  n1 -= 80  #等价于 n1=n1-80
  f1 *= n1 - 10 #等价于 f1=f1*( n1 - 10 )
  print("n1=%d" % n1)
  print("f1=%.2f" % f1)
  运行结果为:
  n1=20
  f1=255.00
 
  通常情况下,只要能使用扩展后的赋值运算符,都推荐使用这种赋值运算符。
 
  但是请注意,这种赋值运算符只能针对已经存在的变量赋值,因为赋值过程中需要变量本身参与运算,如果变量没有提前定义,它的值就是未知的,无法参与运算。例如,下面的写法就是错误的:
  n += 10
 
  该表达式等价于 n = n + 10,n 没有提前定义,所以它不能参与加法运算。

(编辑:包头站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!