运算符,流程控制之if判断 二、流程控制之if判断

今日内容

一.运算符

1.赋值运算符

1.1 增量赋值

age = 18
age = age + 1 # 等同于 age += 1
age *= 1       age %=1 #  等同于  age = age % 3

1.2 链式赋值

x = 10
y = 10
z = 10
x=y=z=10
print(id(x),id(y),id(z))   id值一样

1.3 交叉赋值

m = 10
n = 20
如要换值
m,n = n,m

1.4 解压赋值

salaries=[11.22.33]
mon1=salaries[0]
mon2=salaries[1]
mon3=salaries[2]
# 值多一个不行,少一个也不行
mon1,*_=salaries
用_表示不需要的变量值的变量名 用 * 表示剩下所有
如:我们只需要将列表中的傻逼解压出来,一次性赋值给对应的变量名即可
names=['alex_sb','wusir_sb','oldboy_sb','egon_nb','lxx_nb','tank_nb']
bb1,bb2,bb3,*_ = names
print(bb1,bb2,bb3)

p s:字符串、字典、元组、集合类型都支持解压赋值

1.5 逻辑运算符

逻辑运算符用于连接多个条件,进行关联判断,会返回布尔值True或False

#and 逻辑与,用于连接两个条件,两个条件同时成立时才返回true,但凡有一个条件为false,则返回false
例:3>1 and 4==4 true
#or 逻辑或,用于连接两个条件,两个条件但凡有一个成立就返回true,只有在两个条件同时为false时才返回false
例:1>2 or 3>1   true
#not 取反  
例: not 1>2    true

1.5.1 连续多个and

可以用and连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为False,则无需再往右判断,可以立即判定最终结果就为False,只有在所有条件的结果都为True的情况下,最终结果才为True。

例:2>1 and 1!=1 and true and 3>2  #false

1.5.2 连续多个or

可以用or连接多个条件,会按照从左到右的顺序依次判断,一旦某一个条件为True,则无需再往右判断,可以立即判定最终结果就为True,只有在所有条件的结果都为False的情况下,最终结果才为False

例:2>1 or 1!=1 or true or 3>2    #true

1.5.3 优先级not>and>or

三者的优先级关系:not>and>or,同一优先级默认从左往右计算。
例:3>4 and 4>3 or 1==3 and 'x' == 'x' or 3 >3
# False
原理为:
(1) not的优先级最高,就是把紧跟其后的那个条件结果取反,所以not与紧跟其后的条件不可分割
(2) 如果语句中全部是用and连接,或者全部用or连接,那么按照从左到右的顺序依次计算即可
(3) 如果语句中既有and也有or,那么先用括号把and的左右两个条件给括起来,然后再进行运算
 (3>4 and 4>3) or (1==3 and 'x' == 'x') or 3 >3    #false

补充:短路运算--逻辑运算的结果一旦可以确定,那么就以当前处计算到的值作为最终结果返回

1..流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:

1.1顺序结构(同一级别,python中,用相同的空格数代表代码的同一级别)

1.2分支结构(if判断,主流水线到子流水线,再回到主流水线)分支结构就是根据条件判断的真假去执行不同分支对应的子代码

例:用户输入账号密码,程序分别单独判断账号与密码是否正确,正确输出True,错误输出False即可
答:
print("user")
inp_name = "dandan"
inp_pwd = "666"
enter_name ="dandan"
enter_pwd = "666"
if inp_name == enter_name and inp_pwd == enter_pwd:
    print("true")
else:
    print("false")

user
true
例:让计算机提前记下egon的年龄为18岁,写一个才年龄的程序,要求用户输入所猜的年龄
,然后程序拿到用户输入的年龄与egon的年龄比较,输出比较结果即可
答:
egon = 18
age = int(input("猜猜我的年龄: "))
if age>egon:
    print("你是凭实力单身的")
elif age<egon:
    print("你眼光真好")
else:
    print("你这双眼看透了一切")

1.3循环结构(用到while与for)

循环结构就是重复执行某段代码块

用if关键字来实现分支结构

三、程序与用户交互
1.概念:用户交互就是人往计算机中input/输入数据,计算机print/输出结果
2.目的:为了让计算机能够像人一样与用户沟通交流
3.本质:交互的本质就是输入、输出
4.输出之格式化输出
4.1什么是格式化输出?
把一段字符串里面的某些内容替换掉之后再输出,就是格式化输出
4.2我们经常会输出具有某种固定格式的内容,比如:'亲爱的xxx你好!你xxx月的话费是xxx,余额是xxx‘,我们需要做的就是将xxx替换为具体的内容。
4.3如何格式化输出?用占位符,如:%s、%d:
%s占位符:可以接收任意类型的值
%d占位符:只能接收数字