python之第三章 运算符与表达式

目录

第三章 运算符与表达式

1.优先级

2. 算术运算符

3.常见数学运算函数

4.赋值运算符

5.复合赋值运算符

6.关系运算符

7.身份运算符

8.逻辑运算符

9.位运算

10.成员运算符

11.三目运算符


第三章 运算符与表达式

1.优先级

**幂(优先级最高)
~ + -取反 正号 负号
* / % //乘 除 取余 地板除
+ -加法 减法
>> <<左移 右移
&按位与
^按位异或 (相同为0,不同为1)
|按位或
<= < >= >关系运算符
== !=等于 不等
is not is身份运算符
in not in成员运算符
not and or逻辑运算符
= %= /= *=……赋值运算符
逗号运算符

2. 算术运算符

        算术运算符 --- + - / % // **

        除法(/) --- 结果为浮点数 --- 1/2 ->0.5

        整除(//)--- 地板除,计算除法,返回商的整数,余值舍去 --- 7//3->2 --- 例题:计算一元二次方程的两个实数根,ax^2+bx=0 (a !=0 b^2= - 4ax>0)

import math
​
a = float(input('请输入二次项的系数:'))
b = float(input('请输入一次项的系数:'))
c = float(input('请输入常数项的系数:'))  # 强制转换为float型
if (a != 0 and b ** 2 - 4 * a * c >= 0):
    x1 = (-b + math.sqrt(b * b - 4 * a * c)) / (2 * a)
    x2 = (-b - math.sqrt(b * b - 4 * a * c)) / (2 * a)
    print('x1=', x1, 'x2=', x2)
else:
    print('该方程无解')
#sqrt()开平方根函数在math模块中需要导入
#input()输入函数默认接收的是字符串,需要使用float()函数进行强制类型转换

        取余(%)--- 取出表达式的余数即模运算,若a%b,左右可以为小数,结果符号与b相同,b不能为0 --- 5%3->2 1.5%2 ->1.5 --- 例:输入一个四位整数,输出每一位以及后三位,如:num = 7856

num = int(input('请输入一个四位整数:'))
print('千位', num // 1000)
print('百位', num // 100 % 10)
print('十位', num // 10 % 10)
print('个位', num % 10)
print('后三位', num % 1000)

        例 ---- 四舍五入:8.32433->8.32 8.32533->8.33

num = float(input('请输入一个小数:'))
num1 = int(num * 100 + 0.5) / 100
print('四舍五入之后保留两位小数的值为', num1)
# 或者使用round()
num = float(input('请输入一个小数:'))
num = round(num, 2)
print('四舍五入之后保留两位小数的值为', num)

        指数运算 --- 计算数据的幂 --- 2**10-> 2^10

3.常见数学运算函数

  • int()强制转换为int

  • float()强制转化为float

  • str()强制转化为字符串

  • abs()返回绝对值

  • math.sqrt()计算算术平方根

  • math.modf()返回X的整数与小数部分

  • round(x,n)四舍五入baoln位

4.赋值运算符

        作用 --- 将右侧结果存储到左侧变量中

        本质 --- 覆盖

#方法一
a = 3
b = 5
c = a
a = b
b = c
print(a,b)
#方法二
a = 3
b = 5
a, b = b, a
print(a, b)
#方法三
a = 3
b = 5
a = a + b 
b = a - b
a = a - b
print(a, b)
#方法四
a = 3
b = 5
a = a ^ b   #a->6
b = a ^ b   #b->3
a = a ^ b   #a->5
print(a, b)

5.复合赋值运算符

        符号 --- += -= /= *=

        作用 --- 运算时先展开后计算 ---- 右边先加之后在运算 --- b * =3+5 --->b = b *(3+5)--- 表达式展开后会自动增加圆括号()

注意:python不支持复合赋值运算的嵌套

6.关系运算符

        符号 --- < <= > >= == !=

        作用 --- 对两个操作对象进行比较运算 --- 关系运算符组成的关系表达式运算结果为Ture(1 成立),反之为False(0 不成立)---- a < b < c 等价于 a<b and b<c

#判断下列表达式不能表示X为偶数
x%2 == 0
!(x%2)
x == x/2*2

        == 表示左右相等,和赋值 = 有所区分

a = 12 == 3
print(a)
​
结果:False

        字符串的比较按照ASCLL比较

a = "aaa" > "bbb"
print(a)
​
结果:False

7.身份运算符

        符号 --- is not is

        作用 --- 用来判断两个标识符是否引用同一个对象,即判断两个变量的地址是否相同 --- 在pycharm脚本中执行下列语句

#pycharm中:
a = 1000
b = 1000
print(a is b)
​
结果:Ture
#Windows命令行中:
>>> a = 1000
>>> b = 1000
>>> print(a is b)
​
结果:False
>>> a = 5
>>> b = 5
>>> print(a is b)
​
结果:True
>>> a = b = 1000
>>> print(a is b)
​
结果:True

原因:

在pycharm中是按脚本方式执行,所有的语句是同一代码块,值若已存在会被重用

在Windows命令行中,python的垃圾回收机制中有一个称为“小整数对象池”机制,为了优化执行速度,会事先将[ -5,256]之间的数据提前存储到内存中,程序只要使用该区间的数据就不会重新创建存储空间,都是指向对象池中的同一份数据,超出该区间则系统会重新申请一段内存来存储数据

第三个为Ture原因:命令行中一行为一个代码块,初始化时若检查值已经存在会进行重用

8.逻辑运算符

        优先级 --- ()-> not -> and -> or --- 注意:1 or x 实现短路运算,结果为 Ture;0 and x 实现短路运算,结果为False ;数字0、空对象以及特殊对象None都被认作False

9.位运算

        作用 --- 将数据转为二进制之后再进行运算

10.成员运算符

        符号 --- in ,not in --- python独有的运算符用于判断对象是否属于某个集合于某个集合元素之一,速度快,返回布尔类型?

11.三目运算符

        格式 --- result = 为真时的结果 if 判断条件 else 为假时的结果

a = int(input())
b = int(input())
max = a if a > b else b
print(max)

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

White乄joker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值