当前位置: 首页 > 后端技术 > Python

Python入门篇(六):基础运算符(下)

时间:2023-03-25 21:48:22 Python

人生苦短,我选择Python。初学Python(三):基本数据类型(下)初学Python(四):变量的基本运算初学Python(五):基本运算符(上)前言在上一篇文章中,我们介绍了算术运算符和比较运算符。在这篇文章中,我们继续介绍剩下的:赋值运算符逻辑运算符成员资格运算符恒等运算符赋值运算符在Python中,=号用于表示赋值。当然Python也提供了其他的赋值方式,直接帮我们简化了写法,比如+=,-=,没有编程经验的同学可能会比较迷茫。其实我在学习Java的时候刚开始接触Java的时候,是很迷茫的。其实这里大可不必混淆。a+=1简单理解其实就是a=a+1。这只是一个简化。题外话(推荐:有编程经验者阅读,无编程经验者跳过):在Java等很多编程语言中,都有i++的写法,但是Python没有,因为+=表示改变Avariable相当于重新生成一个变量,将运算结果赋值给新生成的变量。但是在Python中,变量是根据内容来的,而不是像Java中的变量名,所以只要你的数字内容是5,不管你给什么名字,这个变量的ID都是一样的,也显示Python中的一个变量可以通过多个名称访问。这种设计逻辑决定了Python中数值类型的值是不可变的,比如:a和b都是5,当你改变a的时候,b也会改变,这当然不是我们想要的。Python中的赋值表达式见下表:运算符说明=赋值运算符+=加法赋值运算符,c+=a等价于c=c+a-=减法赋值运算符,c-=a等价于c=c-a*=乘赋值运算符,c=a等价于c=ca/=除法赋值运算符,c/=a等价于c=c/a%=模赋值运算符,c%=a等价于c=c%a**=幂赋值运算符,c=a等价于c=ca//=四舍五入和除法赋值运算符,c//=a等价于c=c//a上表始终是a光看描述有点枯燥,举几个栗子给同学们演示一下:a=10b=20c=a+bprint("c=a+b的值为:",c)c+=aprint("c+=a的值为:",c)c*=aprint("c*=a的值为:",c)c/=aprint("c/=a的值为:",c)c=2c%=aprint("c%=a的值为:",c)c**=aprint("c**=a的值为:",c)c//=aprint("c//=a的值:",c)运算结果如下:c的值=a+b:30c+=a的值:40c*=a的值:400c/=a的值是:40.0c%=a的值是:2c**=a的值是:1024c//=a的值是:102逻辑运算符还有是三种逻辑运算符,即AND、OR、NOT。这其实是离散数学中的一个概念。不知道其他专业的同学有没有学过。反正学计算机的一定要有这门课。emmmmmmmmmmmmm我们其实是Python教程,就不讲离散数学了。有兴趣的请自行百度。and:逻辑“与”运算符,只有and两边都为真,结果才为真or:逻辑“或”运算符,只要or的一侧为真,结果就为真not:逻辑“非”运算符,反转逻辑值的介绍有点抽象。直接上栗子吧。看完栗子大家就明白了。其实很简单。print(TrueandTrue)#Trueprint(TrueandFalse)#Falseprint(TrueorTrue)#Trueprint(TrueorFalse)#Trueprint(FalseorFalse)#Falseprint(notTrue)#Falseprint(notFalse)#True成员操作成员运算符用于判断目标值是否在指定的序列中,可以是字符串、列表和元组。in:如果在指定序列中找到值,则返回True,否则返回False。notin:如果在指定的序列中没有找到值,则返回True,否则返回False。列表和元组在之前的文章中没有介绍过,下面的例子只用字符串来演示:str="asdfghjkl"if'a'instr:print('aisinstringstr')else:print('aisnotinInInthestringstr')if'a'notinstr:print('aisnotinthestringstr')else:print('aisinthestringstr')outputresult:aisinthestringstra是字符中的恒等运算符字符串中的恒等运算符恒等运算符用于比较两个对象的内存位置。is:是判断两个标识符是否引用自同一个对象not:isnot判断两个标识符是否引用自不同的对象示例如下:a=20b=20ifaisb:print("aandb有相同的id")else:print("a和b没有相同的id")ifid(a)==id(b):print("a和b有相同的id")else:print("aandbdonothavesameidentity")#修改变量b的值b=30ifaisb:print("aandbhavethesameidentity")else:print("aandbdonothavethesameidentity")ifaisnotb:print("aandbdonothavesameidentity")else:print("aandbhavethesameidentity")注:id()函数用于获取对象内存地址。输出结果如下:a和b有相同的标识符a和b有相同的标识符a和b没有相同的标识符a和b没有相同的标识符其实这个输出可以看,在Python中,如果两个变量具有相同的值,Python不会在内存中重新开辟内存空间,而是会重用已有的内存空间。示例代码本系列所有代码编辑器都会放在代码管理仓库Github和Gitee上,方便大家使用。示例代码-Github示例代码-Gitee如果我的文章对你有帮助,请扫码关注作者的公众号:获取最新干货推送:)