基本运算符,流程控制之if判断

一、基本运算符

上篇讲了基本运算符:算数运算符,比较运算符

本篇讲:赋值运算符,逻辑运算符

1、赋值运算符

(1)增量赋值

#也可以age-=1  age*=1  age/=1 age//=1 age%=1  1也可以变成其他,注意灵活运用,一下是一个模板分析

age = 18
age += 1  # age = age + 1
print(age)

(2)交叉赋值

#x,y =y,x 就是被注释的那三行的转换,简单成一横

x = 111
y = 222
# temp=x
# x=y
# y=temp
x, y = y, x
print(x)
print(y) 

(3)链式赋值

#x = y = z = 10就是那三横的转换,简化成一横

#x=10
#y=x
#z=y
x = y = z = 10
print(id(x),id(y),id(z)) #id相同

(4)解压赋值

PS:解压赋值:多/少一个变量名就会报错;一般用于取开头或结尾几个值;如果要取中间的值用切片(后期会讲);字典取出来的是key;字符串取出来的是每个元素

#最原始的
salaries = [111, 222, 333, 444, 555]
mon0 = salaries[0]
mon1 = salaries[1]
mon2 = salaries[2]
mon3 = salaries[3]
mon4 = salaries[4]
#运用解压赋值后
salaries = [111, 222, 333, 444, 555]
mon0,mon1,mon2,mon3,mon4=salaries
print(mon0)
print(mon1)
print(mon2)
print(mon3)
print(mon4)
# 注意1: 变量名与值的个数必须一一对应
# mon0,mon1,mon2,mon3,mon4,mon5=salaries  # 多一个变量名不行,报错
# mon0,mon1,mon2,mon3=salaries  # 少一个变量名不行,报错
salaries = [111, 222, 333, 444, 555]
#取前两个值
# mon0,mon1,*_=salaries
# print(mon0)
# print(mon1)
# print(_)
#取后两个值
# *_,x,y=salaries
# print(x,y)
# print(_)
#取前后两个值
# x,*_,y,z=salaries
# print(x)
# print(y)
# print(z)
#取中间部分的值,一般不这么用
# _,*midlle,_=salaries
# print(midlle)
#字典解压赋值,取出的是key,再用索引取到值
# dic={'k1':111,'k2':222,'k3':3333}
# x,y,z=dic
# print(x,y,z)
# print(dic[x],dic[y],dic[z])

#字符串解压赋值,元素个数要与要解压的值的个数必须一一对应,多/少一个都不行,会报错
# x, y, z,a,b = "hello"
# print(x)

2、逻辑运算符

1.1补充

 条件:只要能得到True 或 False两种值的东西都能当做条件
  1、显式的布尔值 : 表面上看就直接是True或False
(1)比较运算的结果
print(10 > 3)
print(10 == 3)
(2)变量值直接就是True或False
tag = True

  2、隐式的布尔值 :表面上看上去是一种值,在底层会被解释器转换成True或False

  ps:0、None、空对应的布尔值为False,其余值对应的布尔值均为True

1.2逻辑运算符:用来连接多个条件 

 (1) not 条件:对条件的结果取反
 (2) 条件1 and 条件2:连接左右两个条件,两个条件必须都为True,最终结果才为True
 (3) 条件1 or 条件2:连接左右两个条件,两个条件只要有一个为True,最终结果就为True
 ps:偷懒原则=》短路运算
 (4) 优先级:not > and > or,推荐用括号去标识优先级
#        False         or          True
res1=(3 > 4 and 4 > 3) or (not (1 == 3 and 'x' == 'x')) or 3 > 3
print(res1)

res2= 3 > 4 and 4 > 3 or not 1 == 3 and 'x' == 'x' or 3 > 3
print(res)
res2= (3 > 4 and 4 > 3) or (not 1 == 3 and 'x' == 'x') or 3 > 3

res3= 3 > 4 and 4 > 3 or not 1 == 3 and 'x' != 'x' or 3 > 3
print(res3)

print(10 and 0)
print(10 and False)
print(10 or False)

二、流程控制之if判断

ps:(1)可以只有if部分(2)可以只有if...elif...elif...(3)可以只有if...else...(4)if里面可以嵌套if
注意:if的条件可以放:显示 隐式bool或and or not连接的
    if条件是顶级代码

   缩进同一空格的属于同一组代码块,从上至下依次运行
   条件2能运行的前提是条件1不成立
if判断的完整语法:
if 条件1:
代码1
代码2
代码3
...
elif 条件2:
代码1
代码2
代码3
...
elif 条件3:
代码1
代码2
代码3
...
...
else:
代码1
代码2
代码3
...
# 语法1:
"""
if 条件1:
    代码1
    代码2
    代码3
    ...
"""
gender = "female"
age = 18
is_beautiful = True

if gender == "female" and 60 >= age >= 18 and is_beautiful:
    print('开始表白。。。')

print('后续代码。。。')
# 语法2:
"""
if 条件1:
    代码1
    代码2
    代码3
    ...
else:
    代码1
    代码2
    代码3
    ...
"""
gender = "female"
age = 70
is_beautiful = True

if gender == "female" and 60 >= age >= 18 and is_beautiful:
    print('开始表白。。。')
else:
    print('阿姨好,开个玩笑。。。')

print('后续代码。。。')
# 语法3:
"""
if 条件1:
    代码1
    代码2
    代码3
    ...
elif:
    代码1
    代码2
    代码3
    ...
"""

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


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

print('其他代码。。。。')
# 语法4:
"""
if的嵌套

"""
gender = "female"
age = 18
is_beautiful = True
is_successful = True

if gender == "female" and 60 >= age >= 18 and is_beautiful:
    print('开始表白。。。')
    if is_beautiful:
        print('在一起')
    else:
        print('再见。。。')
else:
    print('阿姨好,开个玩笑。。。')

print('后续代码。。。')
原文地址:https://www.cnblogs.com/guojieying/p/13267432.html