005.python基础之运算符与if结构

一、基本运算符

(一)赋值运算

赋值运算的作用:

赋值运算是为了让代码在不丧失可读性的前提下,使代码更简洁。

1.增量赋值

>>> age=18
>>> age += 1
>>> print(age)
19
运算符描述实例
=简单的赋值运算符c = a + b 将 a + b 的运算结果赋值为 c
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c ** = a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a

2.交叉赋值

x = 111
y = 222

temp=x  # 需引入中间变量
x=y
y=temp

x, y = y, x  # 一行代码解决,简洁高效

3.链式赋值

>>> x=10
>>> y=x
>>> z=y
>>> print(x, y, z)
10 10 10

>>> z = y = x = 10  
>>> print(x, y, z)
10 10 10
>>> print(id(x), id(y), id(z))
140726143342528 140726143342528 140726143342528

4.解压赋值

>>> salaries = [1.1, 2.2, 3.3, 4.4, 5.5]

>>> mon0 = salaries[0]
>>> mon1 = salaries[1]
>>> mon2 = salaries[2]
>>> mon3 = salaries[3]
>>> mon4 = salaries[4]
>>> print(mon0, mon1, mon2, mon3, mon4)
1.1 2.2 3.3 4.4 5.5

>>> mon0, mon1, mon2, mon3, mon4 = salaries  #  使用一行代码实现,解决代码冗余的问题
>>> print(mon0, mon1, mon2, mon3, mon4)
1.1 2.2 3.3 4.4 5.5

>>> mon0, mon1, mon2, *_ = salaries  
>>> *_, x, y, z = salaries
>>> x, *_, z = salaries

注意:变量名的个数必须与包含的值个数相同,不能多也不能少。若需要取开头几个,或者取结尾几个,或者开头以及结尾的几个同时取,可以使用**”*_“*作为填充的变量名实现,其中起作用的是星号,下划线的作用是声明这个变量没有意义。

对于字典来说,解压赋值取出来的是字典的key。

>>> dic = {"k1": 111, "k2": 222}
>>> x, y = dic
>>> print(x, y)
k1 k2

了解:字符串也可以解压赋值

>>> a,b,c,d,e="hello"
>>> print(a,type(a),b,c,d,e)
h <class 'str'> e l l o

(二)比较运算

条件:但凡可以得到True或者False两种值的东西都能当作条件。

1.显式布尔值:

表面上看就是True或者False。

(1)比较运算的结果
print(10 > 3)  # True
print(10 == 3)  # False
(2)变量值直接就是True或False
tag = True  # 自定义一个布尔值

2.隐式布尔值:

表面上看上去是一种值,在底层会被解释器转换成True或False

(1)特殊代表False的字符:None,0,空(空字典、空字符串、空列表)

(2)其余的值的布尔值均为True

(三)逻辑运算符

1.not 条件:

对条件的结果取反。

print(not 10 > 3)  # False
print(not False)  # True
print(not 0)  # True

2.条件1 and 条件2:

连接左右两个条件,两个条件必须都为True,最终结果才为True。

print(True and 10 > 3)  # True
print(True and 10 == 3)  # False

3.条件1 or 条件2:

连接左右两个条件,两个条件必须都为False,最终结果才为False。

print(False or 10 == 3)  # False
print(True or 10 == 3)  # True

ps:偷懒原则=》短路运算

即在逻辑运算时,根据条件顺序执行的时候,如果在某一步骤可以得出结果,则终止运算。

4.优先级划分

多个条件连续的时候,根据优先级,推荐先将and左右的条件括起来,结合not之后,最后就是or的判断。

res = 3 > 4 and 4 > 3 or not 1 == 3 and "x" != "x" or 3 > 3
print(res)  # False

res1 = (3 > 4 and 4 > 3) or ((not 1 == 3) and "x" != "x") or 3 > 3
     #           False                    False            False
print(res1) # False
# 隐式布尔值结果输出
print(10 and 0)  # 0
print(10 and False)  # False
print(10 or False)  # 10

二、流程控制之if条件判断

(一)什么是if条件判断

if条件判断是一段代码块,使用一个或多个条件,根据条件判断的结果(True or False),选择执行的子代码块,得出结果。

(二)为什么要有if条件判断

为了控制计算机能像人一样去完成判断的过程。

(三)如何用if条件判断

1.if判断的语法

if 条件1:
    子代码块1
elif 条件2:
    子代码块2
elif 条件3:
    子代码块3
...
else:
    子代码块

2.if单独使用

if结构中,只有一个if是可以的

inp_name=input('你的名字: ')
if inp_name == "egon":
    print('输入正确')

print('其他代码')

3.if+elif

inp_name=input("你的名字:   ")
if inp_name == "egon":
    print("您是super VIP")
elif inp_name == "张三":
    print("您是法外狂徒")
elif inp_name == "李四":
    print("您是张三的好朋友")

print("其他代码")

4.if+else

inp_name = input("你的用户名:  ")
inp_pwd = input("你的密码:  ")

if inp_name == "zhangsan" and inp_pwd == "123":
    print("登录成功")
else:
    print("用户名或密码错误,请重新输入正确的用户名和密码")    

5.if+elif+else

"""
如果:成绩>=90,那么:优秀
如果成绩>=80且<90,那么:良好
如果成绩>=70且<80,那么:普通
其他情况:很差
"""

score = input("请输入您的成绩:  ")
score = int(score)
if score >= 90:
    print("优秀")
elif score >= 80:
    print("良好")
elif score >= 70:
    print("普通")
else:
    print("很差")

6.if判断嵌套if

print("ok0")
if 10 < 3:    #  由于结果为False,子代码块不执行
    if 1 == 1:
        print("ok1")
        print("ok2")
    print("ok3")
print("ok4")    #  ok0  ok4

e >= 90:
print(“优秀”)
elif score >= 80:
print(“良好”)
elif score >= 70:
print(“普通”)
else:
print(“很差”)




### 6.if判断嵌套if

```python
print("ok0")
if 10 < 3:    #  由于结果为False,子代码块不执行
    if 1 == 1:
        print("ok1")
        print("ok2")
    print("ok3")
print("ok4")    #  ok0  ok4
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值