a1 = 2
b1 = 3
a2 = 'hello'
b2 = 'world'
print(a1 + b1)
print(a2 + b2)
print(a1 + a2)
5
helloworld
Traceback (most recent call last):
TypeError: unsupported operand type(s) for +: 'int' and 'str'
int
类型的数据和str
类型的数据都可以使用加法但是int
和str
不可同时使用a1 = 2
b1 = 3
a2 = 'hello'
b2 = 'world'
print(a1 - b1)
print(a2 - b2)
print(a2 - a1)
Traceback (most recent call last):
print(a2 - b2)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
-1
int
类型的数据,不支持str
类型的数据a1 = 2
b1 = 3
a2 = 'hello'
b2 = 'world'
print(a1 * b1)
print(a2 * a1)
print(a2 * b2)
Traceback (most recent call last):
print(a2 * b2)
TypeError: can't multiply sequence by non-int of type 'str'
6
hellohello
int
类型数据相乘,以及int
类型数据和str
类型数据相乘,不支持str
类型数据和str
类型数据相乘a1 = 2
b1 = 3
a2 = 'hello'
b2 = 'world'
print(a1 / b1)
print(a2 / b2)
print(a2 / a1)
Traceback (most recent call last):
print(a2 / b2)
TypeError: unsupported operand type(s) for /: 'str' and 'str'
0.6666666666666666
str
类型的数据a1 = 20
b1 = 3
print(a1 / b1)
print(a1 // b1)
6.666666666666667
6
int
类型的值a1 = 20
b1 = 3
print(a1 / b1)
print(a1 % b1)
6.666666666666667
2
a1 = 20
b1 = 3
print(a1 ** b1) # 20 的三次方
8000
divmod()
tuple (x//y, x%y).
a1 = 20
b1 = 3
print(divmod(a1, b1))
(6, 2)
decimal
模块print(0.1 + 0.1 + 0.1 - 0.3)
print(Decimal('0.1') + Decimal('0.1') + Decimal('0.1') - Decimal('0.3'))
5.551115123125783e-17
0.0
==
!=
>
<
>=
+<
==
运算符a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a == b)
print(a == c)
print(a1 == b1)
print(a1 == c1)
False
True
False
True
!=
运算符a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a != b)
print(a != c)
print(a1 != b1)
print(a1 != c1)
True
False
True
False
>
运算符a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a > b)
print(a > c)
print(a1 > b1)
print(a1 > c1)
False
False
False
False
<
运算符a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a < b)
print(a < c)
print(a1 < b1)
print(a1 < c1)
True
False
True
False
>=
运算符a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a >= b)
print(a >= c)
print(a1 >= b1)
print(a1 >= c1)
False
True
False
True
<=
运算符a = 10
b = 20
c = 10
a1 = 'hello'
b1 = 'world'
c1 = 'hello'
print(a <= b)
print(a <= c)
print(a1 <= b1)
print(a1 <= c1)
True
True
True
True
print(True == 1)
print(False == 0)
True
True
==
比较数值(int与str不能直接比较)a = 10
a1 = 'hello'
print(a == a1)
False
!=
<>
不等于<>
已弃用a = 10
b = 20
c = 10
d = 30
print(b > a > c) # b > a and a > c
print(a < b < d) # a < b and b < c
print((b > a) > 1) # Ture and Ture > 1
False
True
False
=
+=
-=
*=
/=
//
整除赋值运算符 表现形式 //=
%
取模赋值运算符 表现形式 %=
**
幂运算赋值运算符 表现形式 **=
a = 10 # 把 10 赋值给 a
print(a)
10
a = 10
a += 2 # 等效于a = a + 2
print(a)
12
a = 10
a -= 2 # 等效于a = a - 2
print(a)
8
a = 10
a *= 2 # 等效于a = a * 2
print(a)
20
a = 10
a /= 2 # 等效于a = a / 2
print(a)
5.0
a = 10
a //= 2 # 等效于a = a // 2
print(a)
5
a = 10
a %= 2 # 等效于a = a % 2
print(a)
0
a = 10
a **= 2 # 等效于a = a ** 2
print(a)
100
+=
不能拆开写 +
=
,以此类推and
or
not
and
a = True
b = True
a1 = False
b1 = False
print(a and b)
print(a and a1)
print(a1 and b1)
True
False
False
or
a = True
b = True
a1 = False
b1 = False
print(a or b)
print(a or a1)
print(a1 or b1)
True
True
False
not
a = True
a1 = False
print(not a)
print(not a1)
False
True
and
运算符运行时,遇到第一个为False则不会继续判断下一个值or
运算符运行时,遇到第一个为True则不会继续判断下一个值and
or
not
(全部都是小写字母)按位运算符是把数字看作二进制来进行计算的。
python 中,in
与 not in
是用来作为逻辑判断的另一种方式。
文字解释可以理解成这样。
in
右侧的内容里,是否包含了左侧的内容。 包含返回真,不包含返回假。
not in
右侧的内容里是否不包含左侧的内容。不包含返回真,包含返回假。
in
与 not in
可以放在任何允许添加条件判断的位置。如while
、 if
等。
list1 = [1, 2, 3, 4, 5, 6]
a = 1
b = 7
if a in list1:
print('a是list1的元素')
else:
print('a不是list1的元素')
if b in list1:
print('b是list1的元素')
else:
print('b不是list1的元素')
a是list1的元素
b不是list1的元素
全部小写
is
用于判断两个变量是否引用同一个, 会对比其中两个变量的地址。
is not
用于判断两个变量是否引用自不同的对象。也会比较地址
a = b = [1, 2]
c = [1, 2]
print(a is b)
print(a is c)
print(a is not b)
print(a is not c)
True
False
False
True
is
与比较运算符==
的区别,两者有根本上的区别,切记不可混用:
is
用于判断两个变量的引用是否为同一个对象(可使用id()
查看),而==
用于判断变量引用的对象的值是否相等!
python中的三目运算符表示方法:
True_statements if expression else False_statements
a = 10
b = 20
if a > b:
print('a的值大')
else:
print('b的值大')
print('a的值大' if a > b else 'b的值大')
b的值大
b的值大
下表列出了从最高到最低优先级的所有运算符。优先级高的运算符优先计算或处理,同级别的按从左往右的顺序计算(赋值运算符除外,它是按从右往左的顺序)