Python运算符

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

  • 字符串运算符 + *

  • 字符串拼接的方法

  • 赋值运算符 = += -= *= /= **= //=

  • 比较运算符 == != > < <= >=

  • 逻辑运算符 and or not

  • 位运算 & | ~ << >>

  • 成员运算符 in,not in

  • 身份运算符 is,not is

  • 运算符优先级

code:

# ********************************************
# 运算符  算  字(字符运算)  赋(赋值)  比(比较)  逻(逻辑运算)  位(位运算)  它(其他运算)
# 算术运算符:+ - * / % ** //
print("算术运算符:+ - * / % ** // ************************************")
a = 99.99
b = 2
print("a = " + str(a) + ";b = " + str(b) + ";a+b = " + str(a+b))
print("a = " + str(a) + ";b = " + str(b) + ";a-b = " + str(a-b))
print("a = " + str(a) + ";b = " + str(b) + ";a*b = " + str(a*b))
print("a = " + str(a) + ";b = " + str(b) + ";a/b = " + str(a/b))
# a的b次方
print("a = " + str(a) + ";b = " + str(b) + ";a**b = " + str(a**b))
# a除以b取余
print("a = " + str(a) + ";b = " + str(b) + ";a%b = " + str(a % b))
# a除以b对商做向下取整
print("a = " + str(a) + ";b = " + str(b) + ";a//b = " + str(a//b))
# *******************************************************
# 字符串运算符
# 1.字符串与数字不能直接参与运算,如果将数字强制类型转换为字符串 就可以与字符串参与运算了
# 2.字符串和字符串进行加法使用 + 号,结果是两个字符串的拼接
# 3.字符串如果和数字使用 * 号,那么就是重复前面的字符串,乘以几重复几次
print("字符串运算符 ************************************")
print('Jasmine loves ' + 'Booooo')
print('mua~' * 9)
# ***********************************************************
# 字符串拼接的方法
print("字符串拼接的方法 ************************************")
# 方法1 就是字符串与字符串相+
print('Booooo loves ' + 'Jasmine,too')
# 方法2 在字符前使用f格式化
love = 'loves'
print(f'{love}tory begin in 2019')
# 方法3 使用format()函数
love = 'love'
print('I {} you'.format(love, love))
print('I {} you,too'.format(love))
# **************************************************
# 赋值运算符 = += -= *= /= **= //=
print("赋值运算符 = += -= *= /= **= //= ************************************")
c = 9.99
a += 10  # 等价于a = a+10
print("a = " + str(a-10) + ";a+=10执行后a=:" + str(a))
a -= 10  # 等价于a = a-10
print("a = " + str(a+10) + ";a-=10执行后a=:" + str(a))
a *= 2  # 等价于a = a*2
print("a = " + str(a/2) + ";a*=2执行后a=:" + str(a))
a /= 2  # 等价于a = a/2
print("a = " + str(a*2) + ";a/=2执行后a=:" + str(a))
a %= 2  # 等价于a = a%2
print("a = " + str(99.99) + ";a%=2执行后a=:" + str(a))
a = 2
a **= 2  # 等价于a = a**2
print("a = " + str(2) + ";a**=2执行后a=:" + str(a))
a = 99.98
a //= 2  # 等价于a = a//2
print("a = " + str(99.98) + ";a//=2执行后a=:" + str(a))
# ******************************************************
# 比较运算符 == != > < <= >=
print("赋值运算 = += -= *= /= **= //= ************************************")
a,b = 10,20
print(f'a={a},b={b},a==b?'+str(a == b))
print(f'a={a},b={b},a!=b?'+str(a != b))
print(f'a={a},b={b},a>=b?'+str(a >= b))
print(f'a={a},b={b},a<=b?'+str(a <= b))
print(f'a={a},b={b},a>b?'+str(a > b))
print(f'a={a},b={b},a<b?'+str(a < b))
# ******************************************************
# 逻辑运算符 and or not
print("逻辑运算符 and or not ************************************")
# and:两个操作数可以是任意类型,当两操作数都不为空或都不为0时,返回and右侧的操作数,返回值数据类型与右侧操作数数据类型一致
#     当有任意一个操作数为空或为0,或者两操作数都为空或都为0时,返回值为0且为int类型
print("and*****************************************")
a = 'Jasmine'
b = {'a':1,'b': 2,'c': 3}
print(f'a={a},b={b},a and b?'+str(a and b))
print(a and b, type(a and b))
a = 0
print(f'a={a},b={b},a and b?'+str(a and b))
print(a and b,type(a and b))
# or:两个操作数可以是任意类型,当两操作数都不为空或都不为0时,返回and左侧的操作数,返回值数据类型与左侧操作数数据类型一致
#    当只有一个操作数为空或为0,返回非空的操作数,返回值数据类型与非空操作数数据类型一致
#    当两操作数都为空或都为0时,返回值为0且为int类型
print("or*****************************************")
a = 'Jasmine'
b = {'a':1,'b': 2,'c': 3}
print(f'a={a},b={b},a or b?'+str(a or b))
print(a or b, type(a or b))
a = 0
print(f'a={a},b={b},a or b?'+str(a or b))
print(a or b,type(a or b))
a = 99.99
b = 0
print(f'a={a},b={b},a or b?'+str(a or b))
print(a or b,type(a or b))
a = 0
print(f'a={a},b={b},a or b?'+str(a or b))
print(a or b,type(a or b))
# not:只需要一个操作数,操作数a为非空或非0时,not a为False,布尔类型;当操作数a为空或为0时,返回值为True,布尔类型
print("not*****************************************")
a = 'Jasmine'
print(f'a={a},not a?'+str(not a))
print(not a, type(not a))
# **************************************************************
# 二进制与位运算
# *****************************************************************
# 二进制与十进制
# 十进制 转为 二进制
a = 125
print(bin(a), type(bin(a)))  # bin()函数可以将数据转换为二进制
# 二进制转为十进制
n = 0b1111101
print(int(n),type(int(n)))
# ************************************************************
print("位运算*****************************************")
# 位运算
# 位运算 & | ^ ~ << >>
a = 0b11001101
b = 0b10010111
# & 按位与运算---参与运算的两个值,如果两个相应位都为1,则该位的结果为1,否则为0
print(f'a = {bin(a)},b = {bin(b)}')
print(f'a & b = {bin(a & b)}')
# | 按位或运算---参与运算的两个值,只要对应的两个二进位有一个为1时,结果位为1,否则为0
print(f'a | b = {bin(a | b)}')
# ^ 按位异或运算---参与运算的两个值,当两对应的二进位相异时,结果位为1,否则为0
print(f'a ^ b = {bin(a ^ b)}')
# ~对数据的每个二进制位取反,即把1变为0
print(f'~a = {bin(~a)}')
# << 左移运算符:运算数的各二进位全部左移若干位,由'<<'右边的数指定移动的位数,低位补0
print(f'a<<2 = {bin(a<<2)}')  # 高位没有被丢弃,a的值反而增大了
# >> 右移运算符:运算数的各二进位全部右移若干位,由'>>'右边的数指定移动的位数
print(f'a>>2 = {bin(a>>2)}')
# **********************************************************************
# 其他运算符
# 成员运算符 in and not in  ---- 如果在指定的序列中找到值返回True,否则返回False
# 对于字典类型,只能检查键是否存在
print("其他运算符*****************************************")
print("成员运算符*****************************************")
s = 'Iloveyou'
print(f'love in s?' + str('you' in s))
y = {'abc':1,'Love':3,'you':6}
print(f'Love in y?' + str('Love' in y))
print(f'Love not in y?' + str('Love' not in y))
# *************************************************************************
# 身份运算符---is判断两个标识符是不是引用自一个对象(地址是否为一样)   not is--判断两个标识符是不是引用自不同对象
# id()函数可以返回元素的存储地址,python存储数据是将相同的数据存储到相同的地址
print("身份运算符*****************************************")
a,b = 10,10
print(f'a = {a},b = {b},a address:{id(a)},b address:{id(b)}')
a,b = 10,11
print(f'a = {a},b = {b},a address:{id(a)},b address:{id(b)}')
print('a is b?' + str(a is b))
print('a is not b?' + str(a is not b))
# ********************************************************************
# 运算符优先级
"""
**
~,+@,=@
*,/,%,//
+,-
>>,<<
&
^,|
<=,<,>,>=
==,!=
=,%=,/=,//=,-=,+=,*=,**=
is,is not
in,not in
not,and,or
"""

运算结果:

E:\Programs_Way\Python\python.exe D:/Prj/Python/Study_Basic_Grammar/_10Operator.py
算术运算符:+ - * / % ** // ************************************
a = 99.99;b = 2;a+b = 101.99
a = 99.99;b = 2;a-b = 97.99
a = 99.99;b = 2;a*b = 199.98
a = 99.99;b = 2;a/b = 49.995
a = 99.99;b = 2;a**b = 9998.0001
a = 99.99;b = 2;a%b = 1.9899999999999949
a = 99.99;b = 2;a//b = 49.0
字符串运算符 + * ************************************
Jasmine loves Booooo
mua~mua~mua~mua~mua~mua~mua~mua~mua~
字符串拼接的方法 ************************************
Booooo loves Jasmine,too
lovestory begin in 2019
I love you
I love you,too
赋值运算符 = += -= *= /= **= //= ************************************
a = 99.99;a+=10执行后a=:109.99
a = 109.99;a-=10执行后a=:99.99
a = 99.99;a*=2执行后a=:199.98
a = 199.98;a/=2执行后a=:99.99
a = 99.99;a%=2执行后a=:1.9899999999999949
a = 2;a**=2执行后a=:4
a = 99.98;a//=2执行后a=:49.0
赋值运算符 = += -= *= /= **= //= ************************************
a=10,b=20,a==b?False
a=10,b=20,a!=b?True
a=10,b=20,a>=b?False
a=10,b=20,a<=b?True
a=10,b=20,a>b?False
a=10,b=20,a<b?True
逻辑运算符 and or not ************************************
and*****************************************
a=Jasmine,b={'a': 1, 'b': 2, 'c': 3},a and b?{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3} <class 'dict'>
a=0,b={'a': 1, 'b': 2, 'c': 3},a and b?0
0 <class 'int'>
or*****************************************
a=Jasmine,b={'a': 1, 'b': 2, 'c': 3},a or b?Jasmine
Jasmine <class 'str'>
a=0,b={'a': 1, 'b': 2, 'c': 3},a or b?{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3} <class 'dict'>
a=99.99,b=0,a or b?99.99
99.99 <class 'float'>
a=0,b=0,a or b?0
0 <class 'int'>
not*****************************************
a=Jasmine,not a?False
False <class 'bool'>
0b1111101 <class 'str'>
125 <class 'int'>
位运算& | ^ ~ << >>*****************************************
a = 0b11001101,b = 0b10010111
a & b = 0b10000101
a | b = 0b11011111
a ^ b = 0b1011010
~a = -0b11001110
a<<2 = 0b1100110100
a>>2 = 0b110011
其他运算符*****************************************
成员运算符in,not in*****************************************
love in s?True
Love in y?True
Love not in y?False
身份运算符is,not is*****************************************
a = 10,b = 10,a address:2206780713552,b address:2206780713552
a = 10,b = 11,a address:2206780713552,b address:2206780713584
a is b?False
a is not b?True
​
Process finished with exit code 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Jasmine-Lily

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

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

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

打赏作者

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

抵扣说明:

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

余额充值