- 运算符补充
1.逻辑运算
2.成员运算
3.身份运算 - 流程控制理论
- 流程控制详细语法
1.顺序结构
2.分支结构
3.循环结构
and与or或not非
- and
同时满足所有条件才能输出True
eg:1 == 1 and 2 > 1
如果1 ==2 and 3 > 1或者1 == 1 and 4 < 1
两者所输出值都为False
*代码展示:
# 正确(True) print(1 == 1 and 2 < 10 and 3!=6 and True and 10 < 20) D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py" True Process finished with exit code 0 # 错误(False) print(1 == 1 and 2 > 10 and 3!=6 and True and 10 < 2) D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py" False Process finished with exit code 0
- or
只要有一个条件满足就可输出Ture,同时所有条件都满足也可输出True
eg:1 == 1 or 2 > 1或者1 == 1 or 3 < 1
如果1 == 2 or 3 < 1 这类两边都不满足正确条件则输出值为False
*代码展示:
# 正确(True) print(1 != 1 or 2==2 or False or 3 < 2 or 10 < 1) D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py" True Process finished with exit code 0 # 错误(False) print(1 != 1 or 2 != 2 or False or 3 < 2 or 10 < 1) D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py" False Process finished with exit code 0
- not
讲条件去反,原条件正确则错误,原条件错误即正确。
not False
not True
*代码展示:
print(not True) print(not False) D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py" False True Process finished with exit code 0
- 注意事项
三者如果混用,要考虑到优先级!!!
可以像“加减乘除法”一样,加上小括号来保证优先级运算。
*代码展示:
print((3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 == 3)) # 小括号里面条件结果均为False,最后一个or右边条件满足True,即输出结果为True。 D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py" True Process finished with exit code 0成员运算符
- in
表示在什么什么之内
*代码展示:
# 列表在做成员最小单位为数据值整体,不可拆分不可合并!!!
name1 = ['jason','tony','kevin','ken']
print ('jason' in name1)
print('susan' in name1)
# 字符串在做成员运算时最小单位为单子字符,也可增加字符个数!!!
name2 = 'hello wold'
print ('h' in name2)
print ('hel' in name2)
print ('hello w' in name2)
# 字典在做成员运算时只有K值会参与运算,V值不暴露给外界!!!
name3 = {'name' : 'jason','age' : 18}
print ('jason' in name3)
print ('name' in name3)
D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py"
True
False
True
True
True
False
True
Process finished with exit code 0
- not in
表示不在什么什么之内
*代码展示:
name = ['tony','kevin','ken']
print ('jason' not in name)
D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py"
True
Process finished with exit code 0
身份运算符
- is
判断数据值在内存中地址是否一致。
- ==
判断数据值是否一致,不在乎内存中地址。
*代码展示:
l1 = [123,321,456,654] l2 = [123,321,456,654] print (l1 == l2) # ‘==’只判断数据值,不针对内存地址 print (l1 is l2) # 判断内存地址,不针对数据值 # id() 该方法会返回一串数字 相当于内存地址 print (id(l1)) print (id(l2)) D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py" True False 1373200792136 1373200792072 Process finished with exit code 0
- 补充知识点
1.id() 该方法会返回一串数字,相当于内存地址。
name = ['jason','ken','kiven'] print(id(name)) D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py" 2303884737096 Process finished with exit code 0
流程控制理论2.python内存优化
对数据量比较小的数据进行内存优化:称小整数池
eg:l1 = 10
l2 = 10
print (id(l1)) # 1652649728
print (id(l2)) # 1652649728
IDE编写工具也会自行优化处理
eg:l1 = 99999999
l2 = 99999999
print(id(l1), id(l2))
#2702347382480
2702347382480
- 概念
1.顺序结构:从上往下一次按顺序执行
2.分支结构:根据条件的不同执行不同的代码
3.循环结构:根据条件的判断绝对是否一直做某件事,不过循环结构有终止条件
- 流程控制之分支结构
1.单if 分支:
if 条件:
条件成立执行的代码称为子代码
*代码展示:
# 1.定义女人的年龄
age = 28
# 2.判断女人的年龄
if age < 30:
print('小姐姐你好')
D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py"
小姐姐你好
Process finished with exit code 0
2.if …else分支
if 条件:
条件成立之后执行的代码
else:
条件不成立执行的子代码
*代码展示
# 1.获取用户名和密码
name = input('name>>>:')
pwd = input('pwd>>>:')
# 2.判断用户名和密码是否正确(目前只能写死)
# if name == 'jason' and pwd == 123:
if name == 'jason' and pwd == '123': # python中不同数据类型之间无法直接做比较
print('贵宾一位')
else:
print('请你离开')
D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py"
name>>>:jason
pwd>>>:123
贵宾一位
Process finished with exit code 0
3.if…elif…else分支(elif 和 else都不能单独使用 必须结合if)
if 条件1:
条件1成立执行的子代码
elif 条件2:
条件1不成立 条件2成立执行的子代码
elif 条件3:
条件1和2都不成立 条件3成立执行的子代码
else:
上述所有的条件都不成立执行的子代码
*代码展示:
score = 90
if score >= 90:
print('优秀')
elif score >= 70:
print('良好')
elif score >= 60:
print('及格')
else:
print('挂科')
D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py"
优秀
Process finished with exit code 0
4.if的嵌套使用
这里用代码展示if嵌套功能:
# 在街上遇到老熟人,上去交谈
# 交谈完毕后,和他一起去干饭(他可能有事拒绝,也可能接受)
# 如果接受了则继续KTV,泡脚,SPA
#1.定义出各种条件
is_talk = True
is_eat = True
is_agree = False
is_sing = True
#条件判断
if is_talk:
print('开始交谈')
if is_eat:
print('要去干饭了,喝点小酒')
if is_agree and True:
print('该去KTV,泡脚了')
else:
print('不太好吧,害怕被发现')
else:
print('干嘛去吃饭啊,多没意思')
else:
print('有事情,下次再聚')
D:Python36python36.exe "E:/pythonProject/Day04/03 fuxi.py"
开始交谈
要去干饭了,喝点小酒
不太好吧,害怕被发现
Process finished with exit code 0
- 内容补充
1.python中使用代码的缩进来表示代码的从属关系
缩进的代码是否运行取决于上面没有缩进的父代码(结尾有冒号!!!)
2.缩进量为了美观 一般推荐使用四个空格
3.并不是所有的代码都可以拥有子代码
if关键字 else关键字 elif关键字 ( elif else不能单独使用)
4.同属于一个父代码的多行子代码应该保证相同的缩进量
如果代码缩进了 那就必须往上找一个缩进量比它小的代码作为父代码
这个父代码如果可以拥有子代码 那么没有问题 不可以则直接报错
5.相同缩进量的代码彼此之间没有主次之分 都是按照顺序依次执行
女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好。
# 作业一
age = input('请输入您的年龄>>:')
height = input('请输入您的身高>>:')
weight = input('请输入您的体重>>:')
guist = input('是否漂亮?')
age = int(age)
height = int(height)
weight = int(weight)
if (age >= 18 and age < 22 and height > 170 and weight < 100 and guist == '漂亮的'):
print('表白')
else:
print('阿姨好')
# 符合要求
D:Python36python36.exe "E:/pythonProject/Day04/02 作业.py"
请输入您的年龄>>:19
请输入您的身高>>:178
请输入您的体重>>:98
是否漂亮?漂亮
阿姨好
Process finished with exit code 0
# 不符合要求
D:Python36python36.exe "E:/pythonProject/Day04/02 作业.py"
请输入您的年龄>>:15
请输入您的身高>>:156
请输入您的体重>>:130
是否漂亮?ugly
阿姨好
Process finished with exit code 0
作业二:
根据用户输入内容打印其权限
‘’’
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
‘’’
# 作业二
name = input('请输入您的姓名>>:')
if name == 'jason':
print('超级管理员')
elif name == 'tom':
print('普通管理员')
elif name == 'jack' or name =='rain':
print('业务主管')
else:
print('普通用户')
D:Python36python36.exe "E:/pythonProject/Day04/02 作业.py"
请输入您的姓名>>:jack
业务主管
Process finished with exit code 0
作业三:
编写用户登录程序
要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = [‘jason’,‘kevin’,‘tony’]
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123
# 作业三
name = input('name>>:')
black_user_list = ['jason','kevin','tony']
if name in black_user_list:
print('您已被列入黑名单,拒绝登录')
else:
pwd = input('pwd>>:')
print('登录成功')
# 拒绝登录
D:Python36python36.exe "E:/pythonProject/Day04/02 作业.py"
name>>:jason
您已被列入黑名单,拒绝登录
Process finished with exit code 0
# 允许登录
D:Python36python36.exe "E:/pythonProject/Day04/02 作业.py"
name>>:ken
pwd>>:12345
登录成功
Process finished with exit code 0



