鱼C论坛

 找回密码
 立即注册
查看: 2207|回复: 0

[技术交流] 06讲 运算符优先级

[复制链接]
发表于 2017-6-26 21:40:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 keliyuan 于 2017-6-26 21:40 编辑

1. 算术运算符:   加(+),减(-),乘(*),除(/),幂运算(**),除(//)
1) /和//的区别
在Python中的除运算符与其它程序语言的不太一样,/表示真正的除号,例如1/3=0.3333333333333333,而4/2的值为2.0。说明两个数相除的值是一个浮点数,而其它程序语言/却表示两个整数相除,只返回一个整数。Python后来为了兼容这种用法,引入了//来实现。例如3//2的值为1,而3.0//2的值为1.0,且3//2.0的值也为1.0。说明在Python中//符号两边同为整数时的值才为整数,否则则为一个浮点数(后面带'.0')。
2)**运算符与负号(-)运算符的优先级问题
在Python中,‘-’在一个数字前面表示成负号,例如-3,-5.12等。**在-的右边时,其优先级高于-,例如-2**2相当于-(2**2)等于-4,而当其在右边时优先级低于-,如2**-2则相当于2**(-2)等于0.25.

3)允许运算符与等号一起使用,表示变量本身参加运算并重新赋值给变量,例如   x =5,x+=5后,x的值为10
这些运算在编程中经常出现,因此有自己专门的操作符:+=(自增)和 -=(自减)。

可以像这样使用:
>>> number = 7
>>> number += 1
>>> print number
8

或者:

number increased by 1
>>> number = 7
>>> number -= 1
>>> print number
6

2.逻辑操作符:              and       or       not
1) x and y 的值计算过程为先判断x的值,如果为0则返回0,否则返回y的值,  例如 3 and  4 值为4;0 and 4 值为0

2)  x or y 的值计算过程为先判断x的值,如果为0则返回y的值,否则返回x的值,例如 3 or 4的值为 3;0 or 4的值为4

3)  not x 的值的计算过程为先判断x的值,如果为0则返回True,否则返回False 例如 not 0的值为True; not 0.12 值为False

4)三者的优先级  not > and >or

假设你要为 8 岁以上的人创建一个游戏,另外你希望玩家至少上三年级。这就要满足两个条件。下面是测试这两个条件的一种方法

使用 and

  1. age = float(raw_input("Enter your age: "))
  2. grade = int(raw_input("Enter your grade: "))
  3. if age >= 8 and grade >= 3:
  4. print "You can play this game."
  5. else:
  6. print "Sorry, you can’t play the game."
复制代码


使用 and 关键字来结合这两个条件,and 表示两个条件都必须为真才能执行下面的代码块。

使用 or
or 关键字也是用来把多个条件放在一起。如果使用 or,只要任意一个条件为
真,就会执行代码块。
输入正确的颜色才能玩这个游戏。
  1. color = raw_input("Enter your favorite color: ")
  2. if color == "red" or color == "blue" or color == "green":
  3. print "You are allowed to play this game."
  4. else:
  5. print "Sorry, you can't play the game."
复制代码


使用 not
还可以用 not 把比较倒过来,表示相反的逻辑。

这行代码 if not (age < 8):
与这行代码: if age >= 8:

3. 比较运算符:      <    <=      >     >=     ==      !=
满足条件为True 否则为False,例如  3>4的值为False  3<4的值为True,且允许使用x<y<z表达式,等同(x<y) and (y<z)

4. 赋值运算符:      =
平时我们用到最多的就是赋值运算符,例如为变量赋初值等。Python中允许  x=y=z=2,表示x,y,z的值均为2

5. 运算符优先级问题:
首先理解一个概念,几元运算符指的是运算符的操作数有几个;一般而言优先级上一元运算符高于二元运算符,算数运算符优先级>比较运算符>逻辑运算符,

运算符优先级.png

评分

参与人数 2鱼币 +8 收起 理由
康小泡 + 3
小甲鱼 + 5 支持楼主!

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-28 14:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表