python 基础学习四 (运算符及内存的相关知识)

1. 运算符

1.1 运算符的概念

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

1.2 运算符的分类
• 算术运算符
• 赋值运算符
• 比较运算符(关系运算符)
• 逻辑运算符
• 位运算符
• 成员运算符
• 身份运算符
• 条件运算符(三元运算符)
算术运算符

• 加法运算符 表现形式 +
• 减法运算符 表现形式 -
• 乘法运算符 表现形式 *
• 除法运算符 表现形式 /
• // 整除,只会保留计算后的整数位,总会返回一个整型
• % 取模,求两个数相除的余数
• ** 幂运算,求一个值的几次幂
在这里插入图片描述

赋值运算符

复制运算符的特殊写法 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 )在这里插入图片描述

比较运算符

• 比较运算符用来比较两个值之间的关系,总会返回一个布尔值.如果关系成立,返回True,否则返回False
• > 比较左侧值是否大于右侧值
• >= 比较左侧的值是否大于或等于右侧的值
• < 比较左侧值是否小于右侧值
• <= 比较左侧的值是否小于或等于右侧的值
• == 比较两个对象的值是否相等
• != 比较两个对象的值是否不相等
在这里插入图片描述

• is 比较两个对象是否是同一个对象,比较的是对象的id
• is not 比较两个对象是否不是同一个对象,比较的是对象的id

逻辑运算符
not 逻辑非

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

and 逻辑与

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

or 逻辑或

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

非布尔值的与或运算

• 当我们对非布尔值进行与或运算时,Python会将其当做布尔值运算,最终会返回原值
• 非布尔值与运算的规则
• 与运算是找False的,如果第一个值是False,则不看第二个值。如果第一个值是False,则直接返回第一个值,否则返回第二个值
• 非布尔值或运算的规则
• 或运算是找True的,如果第一个值是True,则不看第二个值。如果第一个值是True,则直接返回第一个值,否则返回第二个值
在这里插入图片描述

位运算符

按位运算符是把数字看作二进制来进行计算的。Python中的按位运算法则如下
例子:~(-6)=5
步骤:(1)先求-6的补码表示:

-6 ——> 1111 1010(补码)

(2)按位取反:

1111 1010 ——> 0000 0101(按位取反)

(3)回到整数:

0000 0101 ——> 5(回到整数)
在这里插入图片描述

成员运算符

除了以上的一些运算符之外,Python还支持成员运算符,测试实例中包含了一系列的成员,包括字符串,列表或元组。
在这里插入图片描述

身份运算符

身份运算符用于比较两个对象的存储单元(内存)

重点:is 与 == 区别:is 用于判断两个变量引用对象是否为同一个(同一块内存空间), == 用于判断引用变量的值是否相等

在这里插入图片描述

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

条件运算符在执行时,会先对条件表达式进行求值判断
如果判断结果为True,则执行语句1,并返回执行结果
如果判断结果为False,则执行语句2,并返回执行结果
语法: 语句1 if 条件表达式 else 语句2

运算符的优先级

运算符优先级参照表
在这里插入图片描述

二、变量与对象

关系图如下:

在这里插入图片描述
1、变量,通过变量指针引用对象,变量指针指向具体对象的内存空间,取对象的值。

2、对象,类型已知,每个对象都包含一个头部信息(头部信息:类型标识符和引用计数器)
在这里插入图片描述

注意:变量名没有类型,类型属于对象(因为变量引用对象,所以类型随对象),变量引用什么类型的对象,变量就是什么类型的。
PS:id()是python的内置函数,用于返回对象的身份,即对象的内存地址。
三、小练习

1、以四种格式化字符串的方法来实现521 XXX ?

print('我爱你,'+'中国,'+'中国加油!')
print('我爱你,','中国,','中国加油!')
print('我爱你,%s中国加油!'%'中国,')
print(f"我爱你,{'中国,'}中国加油!")
print('我爱你,{}中国加油!'.format('中国,'))

2、现在有a,b,c三个变量,三个变量中分别保存三个数值,请通过条件运算符获取三个值中的最大值。

a,b,c=50,80,30
#先比较两个数的大小,再与第三个数比较
Maxnum1 = a if a>b else b
Maxnum= Maxnum1 if Maxnum1>c else c

print(Maxnum)
>>> 80
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值