当前位置: 首页 > 工具软件 > Python(x,y) > 使用案例 >

python x%y_Python运算符

公西繁
2023-12-01

运算符种类

赋值运算符

算术运算符

关系运算符(比较运算符)

逻辑运算符

位运算符

成员运算符

身份运算符

PS:这里我觉得菜鸟教程说的对。

赋值运算符

主要用来给变量赋值。

#常见的赋值运算符

= 赋值运算符

+= 加法赋值运算符,x+=y相当于x=x+y

-= 减法赋值运算符,x-=y相当于x=x-y

*= 乘法赋值运算符,x*=y相当于x=x*y

/= 除法赋值运算符,x/=y相当于x=x/y

%= 取余数赋值运算符,x%=y相当于x=x%y

**= 幂赋值运算符,x**=y相当于x=x**y

//= 整除赋值运算符,x//=y相当于x=x//y

Python3.8新增海象运算符,该运算符把计算语句的结果赋值给变量,让变量可以在代码块里执行运用。

参考资料:海象运算符

案例1

name = 'admin'

name1 = name

name3 = 'admin'

print(id(name),name)

print(id(name1),name1)

print(id(name3),name3)

'''

out:

1591358799688 admin

1591358799688 admin

1591358799688 admin

'''

#赋值并未改变变量的内存地址

案例2

num = 8

num += 5 #num = num + 5

print(num) #out:13

a='abc'

a +='df' #此时的+是连接符

print(a) #out:abcdf

#除了+运算符可以支持连接运算,其余扩展运算符只支持数学运算

算术运算符

常见的算术运算符

+ 加

- 减

* 乘

/ 除

% 求余,返回除法的余数

// 整除,返回商的整数部分

** 幂,x的y次方

*运算符可以用于字符串,使字符串重复指定次数

print('='*8+'游戏开始'+'='*8)

print('='*8,'游戏开始','='*8)

'''

out:

========游戏开始========

======== 游戏开始 ========

'''

#+跟,的区别是,输出有空格

比较运算符

又称关系运算符,用于对变量或表达式的结果进行大小、真假的比较,如果为真,则为true,为假,则为false。

> 大于

< 小于

== 等于

!= 不等于(<>在python3中废弃而改用!=)

>= 大于或等于

<= 小于或等于

逻辑运算符

python中的逻辑运算符主要包括

and #逻辑与 ,运算方向 从左到右

or #逻辑或 ,运算方向 从左到右

not #逻辑非 ,运算方向 从右到左

and

true and true = true

true and false = false

false and false = false

or

true or true = true

true or false = true

false or false = false

not取反

not true = false

not false = true

三元运算符

也叫三目运算符,在B站视频的P27,书中的P128页。

语法格式

'''

'结果1' if '表达式' else '结果2'

如果表达式为true,则运行结果1

如果表达式为false,则运行结果2

'''

案例

a=6

b=5

result = (a+b) if a

print(result) #out: -1

成员运算符

in 在指定序列中找到值返回True,否则False。

not in 在指定序列中没有找到值返回True,否则返回False。

案例

a = 2

b = 6

list1 = [1,2,3,4,5]

if (a in list1):

print('变量a的值存在于list1中')

if (b not in list1):

print('变量b的值在list1中不存在')

身份运算符

is 用作地址的比较,是否为同一地址;同时也可以用作对象的比较,是否为同一对象。

is not 两个对象地址是否不同,也就是不是引用的同一对象。

age = 20

age1 = 20

print(age is age1) #out:True

print(id(age),age) #out:1711173232 20

print(id(age1),age1) #out:1711173232 20

print(age is not age1) #out:False

补充知识:

Python对小范围整数[-5,256]对象是提前在内存里建立好的,不会被垃圾回收。

大整数使用IDLE源文件整体执行结果,跟交互式执行结果是不一样的(面试会考到),如下

#在sublime中执行

money=2000000

salary=2000000

print(money is salary) #输出为True

print('money的id是',id(money)) #输出为money的id是 2662158806768

print('salary的id是',id(salary)) #输出为salary的id是 2662158806768

#在交互式模式下执行

'''

>>> money=2000000

>>> print(id(money))

1390614979696

>>> salary=2000000

>>> print(id(salary))

1390614982384

'''

#可以看到两者的结果是不相等的

补充:

小整数对象池

Python为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间。

Python 对小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收。所以所有位于这个范围内的整数使用的都是同一个对象。

大整数对象池:

终端是每次执行一次,所以每次的大整数都重新创建,而在pycharm等IDLE中,每次运行是所有代码都加载都内存中,属于一个整体,所以这个时候是同一个对象。

在终端CMD中,每个大整数都是单独创建的,所以他们的内存地址不一样。

运算符的优先级

小括号内的优先执行。

其次优先级高的先执行,低的后执行。

同一优先级从左到右一次执行。

运算符

描述

**

幂运算符

~ + -

位取反运算符,正号,负号

* / % //

乘,除,求余和整除

+ -

加法减法

>> <<

右移,左移运算符

&

位运算符(位与运算符)

^ |

位运算符(位异或运算符,位或运算符)

<= < > >=

比较运算符

== !=

等于运算符

= %= /= //= -= += *= **=

赋值运算符

is is not

身份运算符

in not in

成员运算符

not and or

逻辑运算符

学习来自:B站课程 P19-27,

菜鸟教程,《python从入门到项目实践》明日科技 第五章 第八章(三目运算符)

 类似资料: