运算符,流程控制之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
补充:短路运算--逻辑运算的结果一旦可以确定,那么就以当前处计算到的值作为最终结果返回
二、流程控制之if判断
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占位符:只能接收数字