Python小白的进阶之路(四):运算符

1. 运算符相关概念

1.1 运算符的概念

  • 运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”

1.2 运算符的分类

  • 算术运算符
  • 赋值运算符
  • 比较运算符(关系运算符)
  • 逻辑运算
  • 条件运算符(三元运算符)

2. 算术运算符

算数运算符描 述实 例
+加:两个对象相加a+b输出结果30
-减:得到负数或是一个数减去另一个数a-b输出结果-10
*乘:两个数相乘或是返回-个被重复若干次的字符串a*b输出结果200
/除:x除以yb/a输出结果2
%取模:返回除法的余数b%a输出结果0
**幂:返回x的y次幂a**b为10的20次方,输出结果100000000000000000
//取整除:返回商的整数部分9//2输出结果4,9.0//2.0输出结果4.0

注意:
① /计算结果是浮点数,即使两个数都是整数,结果也是浮点数

>>> 9/3     
3.0

>>> 10/3
3.3333333333333335

② //只取整数部分,余数被抛弃

>>> 10//3   
3

>>> -10//3
-4	# 向下取整

③ %余数运算,可以得到两个整数相除的余数

>>> 10%3	 
1

>>> -10%3
2	# 向下取整

④ 如果想同时得到商和余数,可以用divmod()这个方法
该方法的返回值是tuple (x//y, x%y)

>>> divmod(10,3)	
(3,1)

⑤ 因为浮点数精度的问题,Python还存在一些计算方面的小问题

0.1+0.1+0.1-0.3
5.551115123125783e-17

要解决这个问题,可以导入decimal模块

from decimal import Decimal
Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3')
Decimal('0.0')

3. 赋值运算符

复制运算符的特殊写法 x = x + 3 其实是和 x += 3 是一样的

  • += (x+= 3 相当于 x = x + 3 )
  • -= (x -= 3 相当于 x= x - 3 )
  • *= (x = 3 相当于 x = x 3 )
  • **= (x **= 3 相当于 x = x ** 3 )
  • /= (x /= 3 相当于 x = x/ 3 )
  • //= (x //= 3 相当于 x = x // 3 )
  • %= (x %= 3 相当于 x= x % 3 )

4. 比较运算符

1.比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False

  • “>” 比较左侧值是否大于右侧值
  • “>=”比较左侧的值是否大于或等于右侧的值
  • “<” 比较左侧值是否小于右侧值
  • “<=” 比较左侧的值是否小于或等于右侧的值

2.特殊的比较方式

  • “==” 比较两个对象的值是否相等
  • “!=” 比较两个对象的值是否不相等
  • “is” 比较两个对象是否是同一个对象,比较的是对象的id
  • “is not” 比较两个对象是否不是同一个对象,比较的是对象的id

5. 逻辑运算符

5.1 not 逻辑非

  • not可以对符号右侧的值进行非运算对于布尔值,非运算会对其进行取反操作,True变False,False变True

5.2 and 逻辑与

  • and可以对符号两侧的值进行与运算。 只有在符号两侧的值都为True时,才会返回True,只要有一个False就返回False
  • 与运算是找False的,如果第一个值为False,则不再看第二个值

5.3 or 逻辑或

  • 或运算两个值中只要有一个True,就会返回True
  • 或运算是找True的

5.4 非布尔值的与或运算

1.当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值

2.非布尔值与运算的规则

  • 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值

3.非布尔值或运算的规则

  • 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值

6. 条件运算符(三元运算符)

1.条件运算符在执行时,会先对条件表达式进行求值判断

  • 如果判断结果为True,则执行语句1,并返回执行结果
  • 如果判断结果为False,则执行语句2,并返回执行结果

2.语法: 语句1 if 条件表达式 else 语句2
3.表示方法:True_statements if expression else False_statements

a = 1
b = 2
if a+b>3:
    print(a+b)
else:
    print(b-a)
    
a+b if a+b>3 else b-a	# 三目运算符
#如果a+b大于3执行a+b,否则执行b-a

7. 运算符的优先级

运算符描述
**指数(最高优先级)
~ + -按位翻转,一元加号和减号(最后两个的方法名为+@和-@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位’AND’
^ |位运算符
<= <> >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not or and逻辑运算符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值