Python3学习10 运算符、流程控制语句

运算符

一、算数运算符

加:+
减:-
乘:*
除(两个对象相除,有商有余):/
整除://
模运算:%
幂:**

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
"""
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值