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编辑工具也会做更多的优化处理(上述代码使用解释器直接运行 地址不一样)

储备知识

  1. python中使用代码的缩进来表示代码的从属关系
    缩进的代码是否运行取决于上面没有缩进的父代码(结尾有冒号)
  2. 缩进量其实没有要求 只要缩进了即可
    但是为了美观 一般推荐使用四个空格
  3. 并不是所有的代码都可以拥有子代码
    if关键字 else关键字 elif关键字 ( elif else不能单独使用)
  4. 同属于一个父代码的多行子代码应该保证相同的缩进量
    如果代码缩进了 那就必须往上找一个缩进量比它小的代码作为父代码
    这个父代码如果可以拥有子代码 那么没有问题 不可以则直接报错
  5. 同缩进量的代码彼此之间没有主次之分 都是按照顺序依次执行

流程控制

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.判断用户名和密码是否正确(目前只能写死)
image

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的嵌套使用

练习题:
在大街上看到一个漂亮的背影,上去要微信(给/不给)
如果要微信成功了,则邀请她去看电影(拒绝/接受)
如果接受了则继续吃饭,逛街,等待天黑
image

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并且是漂亮的,那么:表白,否则:叫阿姨好
image

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

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

 posted on 2022-06-21 22:56  念白SAMA  阅读(71)  评论(0)    收藏  举报