[转载] Python基本运算符

参考链接: Python成员资格和身份运算符 | in, not in, is, is not

Python基本运算符 


   由 

 YIYIAD 翻译整理   

 注:由于水平有限,欢迎指正。转载请务必注明出处。 


  2






    上一篇

   下一篇  


   什么是操作符? 

  简单的回答可以使用表达式4 + 5等于9,在这里4和5被称为操作数,+被称为操符。 Python语言支持操作者有以下几种类型。 

   算术运算符  比较(即关系)运算符  赋值运算符  逻辑运算符  位运算符  会员操作符  标识操作符  

  让我们逐一看看所有的运算符。 

   Python算术运算符: 

  假设变量a持有10和变量b持有20,则: 

  [ 查看示例 ] 

   操作符 描述符 例子 + 加法 - 对操作符的两侧增加值 a + b = 30 - 减法 - 减去从左侧操作数右侧操作数 a - b = -10 * 乘法 - 相乘的运算符两侧的值 a * b = 200 / 除 - 由右侧操作数除以左侧操作数 b / a = 2 % 模 - 由右侧操作数和余返回除以左侧操作数 b % a = 0 ** 指数- 执行对操作指数(幂)的计算 a**b = 10 的幂 20 // 地板除 - 操作数的除法,其中结果是将小数点后的位数被除去的商。 9//2 =  4 而 9.0//2.0 = 4.0 

   Python的比较操作符: 

  假设变量a持有10和变量b持有20,则: 

  [ 查看示例 ] 

   运算符 描述 示例 == 检查,两个操作数的值是否相等,如果是则条件变为真。 (a == b) 不为 true. != 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 (a != b) 为 true. <> 检查两个操作数的值是否相等,如果值不相等,则条件变为真。 (a <> b) 为 true。这个类似于 != 运算符 > 检查左操作数的值是否大于右操作数的值,如果是,则条件成立。 (a > b) 不为 true. < 检查左操作数的值是否小于右操作数的值,如果是,则条件成立。 (a < b) 为 true. >= 检查左操作数的值是否大于或等于右操作数的值,如果是,则条件成立。 (a >= b) 不为 true. <= 检查左操作数的值是否小于或等于右操作数的值,如果是,则条件成立。 (a <= b) 为 true. 

   Python赋值运算符: 

  假设变量持有10和变量b持有20,则: 

  [ 示例 ] 

   运算符 描述 示例 = 简单的赋值运算符,赋值从右侧操作数左侧操作数 c = a + b将指定的值 a + b 到  c += 加法AND赋值操作符,它增加了右操作数左操作数和结果赋给左操作数 c += a 相当于 c = c + a -= 减AND赋值操作符,它减去右边的操作数从左边操作数,并将结果赋给左操作数 c -= a 相当于 c = c - a *= 乘法AND赋值操作符,它乘以右边的操作数与左操作数,并将结果赋给左操作数 c *= a 相当于 c = c * a /= 除法AND赋值操作符,它把左操作数与正确的操作数,并将结果赋给左操作数 c /= a 相当于= c / a %= 模量AND赋值操作符,它需要使用两个操作数的模量和分配结果左操作数 c %= a is equivalent to c = c % a **= 指数AND赋值运算符,执行指数(功率)计算操作符和赋值给左操作数 c **= a 相当于 c = c ** a //= 地板除,并分配一个值,执行地板除对操作和赋值给左操作数 c //= a 相当于 c = c // a 

  试试下面的例子就明白了所有在Python编程语言可供选择的赋值运算符: 

  #!/usr/bin/python

a =21

b =10

c =0

c = a + b

print"Line 1 - Value of c is ", c

c += a

print"Line 2 - Value of c is ", c 

c *= a

print"Line 3 - Value of c is ", c 

c /= a 

print"Line 4 - Value of c is ", c 

c  =2

c %= a

print"Line 5 - Value of c is ", c

c **= a

print"Line 6 - Value of c is ", c

c //= aprint"Line 7 - Value of c is ", c 

  当执行上面的程序,它会产生以下结果: 

  Line 1 - Value of c is 31

Line 2 - Value of c is 52

Line 3 - Value of c is 1092

Line 4 - Value of c is 52

Line 5 - Value of c is 2

Line 6 - Value of c is 2097152

Line 7 - Value of c is 99864 



   Python位运算符: 

  位运算符作用于位和位操作执行位。假设,如果a =60;且b =13;现在以二进制格式它们将如下: 

  a = 0011 1100 

  b = 0000 1101 

  ----------------- 

  a&b = 0000 1100 

  a|b = 0011 1101 

  a^b = 0011 0001 

  ~a  = 1100 0011 

  Python语言支持下位运算符 

  [ 示例 ] 

   操作符 描述 示例 & 二进制和复制操作了一下,结果,如果它存在于两个操作数。 (a & b) = 12 即 0000 1100 | 二进制或复制操作了一个比特,如果它存在一个操作数中。 (a | b) = 61 即 0011 1101 ^ 二进制异或运算符的副本,如果它被设置在一个操作数而不是两个比特。 (a ^ b) =  49 即  0011 0001 ~ 二进制的补运算符是一元的,并有“翻转”位的效果。 (~a ) =  -61 即 1100 0011以2的补码形式由于带符号二进制数。 << 二进位向左移位运算符。左操作数的值左移由右操作数指定的位数。 a << 2 = 240 即 1111 0000 >> 二进位向右移位运算符。左操作数的值是由右操作数指定的位数向右移动。 a >> 2 = 15 即 0000 1111 

   Python逻辑运算符: 

  Python语言支持以下逻辑运算符。假设变量a持有10和变量b持有20则: 

  [ 示例 ] 

   运算符 描述 示例 and 所谓逻辑与运算符。如果两个操作数都是真的,那么则条件成立。 (a and b) 为 true. or 所谓逻辑OR运算符。如果有两个操作数都是非零然后再条件变为真。 (a or b) 为 true. not 所谓逻辑非运算符。用于反转操作数的逻辑状态。如果一个条件为真,则逻辑非运算符将返回false。 not(a and b) 为 false. 

   Python成员运算符: 

  除了前面讨论的运算符,Python成员运算符,在一个序列中成员资格的测试,如字符串,列表或元组。有两个成员运算符解释如下: 

  [ 示例 ] 

   操作符 描述 示例 in 计算结果为true,如果它在指定找到变量的顺序,否则false。 x在y中,在这里产生一个1,如果x是序列y的成员。 not in 计算结果为true,如果它不找到在指定的变量顺序,否则为false。 x不在y中,这里产生结果不为1,如果x不是序列y的成员。 

   试试下面的例子就明白了所有的Python编程语言提供会员运算符: 

  #!/usr/bin/python

a =10

b =20

list =[1,2,3,4,5];if( a in list ):print"Line 1 - a is available in the given list"else:print"Line 1 - a is not available in the given list"if( b notin list ):print"Line 2 - b is not available in the given list"else:print"Line 2 - b is available in the given list"

a =2if( a in list ):print"Line 3 - a is available in the given list"else:print"Line 3 - a is not available in the given list" 

  当执行上面的程序它会产生以下结果: 

  Line 1 - a is not available in the given list

Line 2 - b is not available in the given list

Line 3 - a is available in the given list 

   Python标识运算符: 

  标识符比较两个对象的内存位置。两个运算符标识解释如下: 

  [ 查看示例 ] 

   运算符 描述 例子 is 计算结果为true,如果操作符两侧的变量指向相同的对象,否则为false。 x是y,这里结果是1,如果id(x)的值为id(y)。 is not 计算结果为false,如果两侧的变量操作符指向相同的对象,否则为true。 x不为y,这里结果不是1,当id(x)不等于id(y)。 

   试试下面的例子就明白了所有Python编程语言提供的标识运算符: 

  #!/usr/bin/python

a =20

b =20if( a is b ):print"Line 1 - a and b have same identity"else:print"Line 1 - a and b do not have same identity"if( id(a)== id(b)):print"Line 2 - a and b have same identity"else:print"Line 2 - a and b do not have same identity"

b =30if( a is b ):print"Line 3 - a and b have same identity"else:print"Line 3 - a and b do not have same identity"if( a isnot b ):print"Line 4 - a and b do not have same identity"else:print"Line 4 - a and b have same identity" 

  当执行上面的程序它会产生以下结果: 

  Line 1 - a and b have same identity

Line 2 - a and b have same identity

Line 3 - a and b do not have same identity

Line 4 - a and b do not have same identity 



   Python运算符优先级 

  下表列出了所有运算符从最高优先级到最低。 

  [ 查看示例 ] 

   运算符 描述 ** 幂(提高到指数) ~ + - 补码,一元加号和减号(方法名的最后两个+@和 - @) * / % // 乘,除,取模和地板除 + - 加法和减法 >> << 左,右按位转移 & 位'AND' ^ | 按位异'或`'和定期`或' <= < > >= 比较运算符 <> == != 等式运算符 = %= /= //= -= += *= **= 赋值运算符 is is not 标识运算符 in not in 成员运算符 not or and 逻辑运算符 

   原文:http://www.yiibai.com/python/python_basic_operators.html

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335

推荐阅读更多精彩内容