运算符
一、算数运算符
加:+
减:-
乘:*
除(两个对象相除,有商有余):/
整除://
模运算:%
幂:**
a = 13
b = 7
print(a / b) # 1.8571428571428572
print(a % b) # 6
print(a // b) # 1
二、比较运算符
大于:>
小于:<
等于:==
不等于:!=
大于等于:>=
小于等于:<=
print(1 > 2) # False
print(1 < 2 < 3) # True
print(34 == '34') # False
print(45 > 'hello') # 无法比较
print(45 == 'hello') # False
print(5.0 == 5) # True
布尔类型
True == 1
False == 0
print(True > False) # True
print(True + False + True > False + True) # True
三、 赋值运算符
=
+=
-=
*=
/=
%=
**=
//=
四、逻辑运算符
and
or
not
五、成员运算符
in : 如在指定的序列中找到值,返回True,否则返回False
not in : 如没有在指定的序列中找到值,返回True,否则返回False
a = [3, 4, 5]
b = 5
if b in a:
print('yes')
else:
print('no')
"""输出:
yes
"""
六、身份运算符
is :判断两个标识符是否引用同一个地址(id(obj) == id(obj))
is not
a = [1, 2, 3]
b = [1, 2, 3]
if a is b:
print('yes')
else:
print('no')
print(a == b)
print(a is b) # 相当于id(a) == id(b)
"""输出:
no
True
False
"""
七、位运算符
& 与 :都为1才为1,否则为0
| 或 :有一个为1就为1,否则为0
^ 异或 :相同为0 不同为1
~ 非(取反) :1变0 0变1
<< 左移 :二进制全部左移若干位
>>右移
"""与"""
a = 4
b = 7
print(a&b)
'''
0100
& 0111
-------
0100 4
'''
"""或"""
a = 5
b = 7
print(a|b)
'''
0101
| 0111
-------
0111 7
'''
"""非"""
a = 5
print(~a)
'''
~ 0101
-------
1010 -6
'''
"""异或"""
a = 5
b = 7
print(b^a)
'''
0101
^ 0111
-------
0010 2
'''
"""左移"""
a = 5
print(a << 2)
'''
<<2
0000 0101
-------
0001 0100 20
'''
a = -8
print(a << 2)
'''
<<2
1111 1111 1111 1000
---------------------
1111 1111 1110 0000 -32
'''
"""右移"""
b = -14
print(b >> 2)
'''
原0000 1110 14
反1111 0001
补1111 0010
------------- >>2
补1111 1100
反1111 1011
原0000 0100 4
'''
八、赋值运算补充
多个变量同时赋值
a, b, c = 12, 34, 45
print(a, b, c) # 12 34 45
序列赋值运算
a, b, c = '345'
print(a, b, c) # 3 4 5
扩展序列解包
a, *b = 'str'
print(a,b)
a, b, *c = 'straaaa'
print(a, b, c)
"""输出:
s ['t', 'r']
s t ['r', 'a', 'a', 'a', 'a']
"""
多目标赋值
a = b = c = 34
print(a,b,c) # 34 34 34
流程控制语句
一、if…elif…else…
if():
…
elif():
…
elif():
…
else:
…
可省略:elif,else
三元运算符
c = 'y' if a > 10 else 'n'
print(c) # y
二、for…in…
for i in range(11):
print(i,end=' ')
print()
# range() : 返回特定区间的数字序列
for i in range(3, 10, 3):
print(i,end=' ')
print()
"""输出:
0 1 2 3 4 5 6 7 8 9 10
3 6 9
"""
三、for…else…
for i in range(10):
if i == 5:
print(i)
break
else:
print('无')
"""输出:
5
"""
for…else…例子,求50以内素数
a = []
for i in range(2,51):
f = True
for j in range(2,int(pow(i,1/2))+1):
if i % j == 0:
f = False
else:
if f:
a.append(i)
print(a)
"""输出:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
"""
四、while
while True: #死循环
pass
a = 2
while a < 5:
print(a * a)
a += 1
"""输出:
4
9
16
"""