Python基础
运算符补充
1.逻辑运算符
and 与:链接的多个条件必须都成立结果才成立(True)
or 或:链接的多个条件有一个成立结果就成立(True)
not 非:将条件取反(原本是对的就变成错的 如果是错的就变成对的)
- 如果所有的连接符号都是and,只要有一个不符合,后面结果肯定不成立
1 == 1 and 2 > 10 and 3!=6 and True and 10 < 2
- 如果所有的连接符号都是or,只要有一个符合 后面结果肯定成立
1 != 1 or 2==2 or False or 3 < 2 or 10 < 1
- 注意事项
三者混合使用,有优先级,如果需要三者混合使用 那么应该加上括号来区别优先级
3>4 and 4>3 or 1==3 and 'x' == 'x' or 3 >3 # 不合理的编写方式
(3>4 and 4>3) or ((1==3 and 'x' == 'x') or 3 >3) # 合理
2.成员运算符
in 在什么什么之内
not in 不在什么什么之内
- 判断某个人名在不在班级学生名单中(判断某个个体在不在某个群体内)
l1 = ['jason', 'kevin', 'tony', 'oscar', 'jerry']
print('jason' in l1) # True
print('ja' in l1) # False
print('jason kevin' in l1) # False
# 列表在做成员运算的时候最小单位是数据值整体 不能再拆分也不能合并
s1 = 'hello big baby!'
print('h' in s1) # True
print('he' in s1) # True
print('hell' in s1) # True
print('hello' in s1) # True
# 字符串在做成员运算的时候最小单位是单个字符 也可以增加字符个数
d1 = {'name': 'jason', 'pwd': 123}
print('jason' in d1) # False
print(123 in d1) # False
print('name' in d1) # True
print('pwd' in d1) # True
# 字典在做成员运算的时候只有K会参与运算 V默认不暴露给外界
3.身份运算符
is 判断数据值的内存地址是否一致(火眼金睛)
== 判断数据值得值是否一致 地址无所谓
- id() 该方法会返回一串数字 相当于内存地址
l1 = [11, 22, 33, 44]
l2 = [11, 22, 33, 44]
print(id(l1)) # 2768135836544
print(id(l2)) # 2768135831424
print(l1 == l2) # True 只判断值
print(l1 is l2) # False 判断内存地址
# 值相等 内存地址可能不等
# 内存地址相等 值肯定相等(单次程序中)
python内存优化
l1 = 10
l2 = 10
print(id(l1)) # 140707857893312
print(id(l2)) # 140707857893312
#python针对数据量比较小的并且经常使用的数据会做内存优化:小整数池
l1 = 9999999
l2 = 9999999
print(id(l1), id(l2)) # 1271940823728 1271940823728
# 有时候IDE编辑工具也会做更多的优化处理(上述代码使用解释器直接运行 地址不一样)
储备知识
- python中使用代码的缩进来表示代码的从属关系
缩进的代码是否运行取决于上面没有缩进的父代码(结尾有冒号) - 缩进量其实没有要求 只要缩进了即可
但是为了美观 一般推荐使用四个空格 - 并不是所有的代码都可以拥有子代码
if关键字 else关键字 elif关键字 ( elif else不能单独使用) - 同属于一个父代码的多行子代码应该保证相同的缩进量
如果代码缩进了 那就必须往上找一个缩进量比它小的代码作为父代码
这个父代码如果可以拥有子代码 那么没有问题 不可以则直接报错 - 同缩进量的代码彼此之间没有主次之分 都是按照顺序依次执行
流程控制
1.流程控制概念
- 本质:事物的执行流程
- 事务执行流程:
- 顺序结构:从上往下依次执行
- 分支结构:根据条件的不同执行不同的代码
- 循环结构:根据条件判断是否一直做某件事
2.分支结构
- 基本使用:需要使用关键字if编写分支结构
2.1.单if分支
- if条件:条件成立之后执行子代码
- 条件可以是布尔值,也可以是表达式
- 判断条件可以是一个,也可以是由逻辑运算符连接的多个
练习题:
1.定义女人的年龄
2.判断女人的年龄
age = 20 # 定义女人的年龄
if age < 30: # 判断女人的年龄
print('你好!小姐姐')
# 嵌套
age = 20
if age < 30:
print('你好!小姐姐')
if Ture:
print('一起学习吧')
2.2.if...else分支
- if条件:条件成立之后执行的子代码
- else条件:条件不成立执行的子代码
- 判断条件可以是一个,也可以是由逻辑运算符连接的多个
练习题
1.获取用户名和密码
2.判断用户名和密码是否正确(目前只能写死)

name = input('name:') # 获取用户名
pwd = input('pwd:') # 获取密码
if name == 'jason' and pwd == 123: # python中不同数据类型之间无法直接做比较
if name == 'jason' and pwd == '123': # python中不同数据类型之间无法直接做比较
print('贵宾一位')
else:
print('没钱滚蛋')
2.3.if...elif...else分支
- if 条件1:条件1成立执行的子代码
- elif 条件2:条件1不成立,条件2成立执行的子代码
- elif 条件3:条件1和2都不成立,条件3成立执行的子代码
- else:上述所有的条件都不成立执行的子代码
- if elif else三者连用 永远只会走一个分支
- elif 和 else都不能单独使用 必须结合if
练习题:
如果成绩大于90打印优秀,大于80打印良好,大于70打印一般,大于60打印及格,其他打印挂科重修
![image]()
score = 58
if score > 90:
print('优秀')
elif score > 80:
print('良好')
elif score > 70:
print('一般')
elif score > 60:
print('及格')
else:
print('挂科重修')
2.4.if的嵌套使用
练习题:
在大街上看到一个漂亮的背影,上去要微信(给/不给)
如果要微信成功了,则邀请她去看电影(拒绝/接受)
如果接受了则继续吃饭,逛街,等待天黑

1.先定义出各种条件
2.条件判断
is_wechat = True #定义条件
is_movie = True
is_agree = False
is_xxx = True
if is_wechat: # 条件判断
print('要微信成功')
if is_movie: # 条件判断
print('去看电影')
if is_agree and True: # 条件判断
print('吃饭,逛街')
else:
print('臭流氓!!!')
else:
print('看电影太无聊!!!')
else:
print('癞蛤蟆!!!')
作业
1.女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好

2.根据用户输入内容打印其权限
'''
jason --> 超级管理员
tom --> 普通管理员
jack,rain --> 业务主管
其他 --> 普通用户
'''

3.编写用户登录程序
要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
eg:black_user_list = ['jason','kevin','tony']
如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
eg: oscar 123


posted on
浙公网安备 33010602011771号