流程控制

1.基本运算符

1.1逻辑运算

1.关键字
	and  与
	or   或
	not  非
	and是可以链接多个条件的 当每个条件都满足时才能成立
	or也是可以链接多个条件的 只要满足一个条件就可以成立
	not就是把结果翻转(将原本是True变成False,将原本False变成True)
2.实战演练
	and:
		1 < 2 and 55 > 33 and 1 == 1 and 'i' == 'i'  # True
		1 > 10 and 66 > 22 and True and 100 > 11  # False
		当链接符号都为and时 那么判断的条件的时候 每个条件都需要成立 结果才能成立 True
		如果一个条件不成立那么整个都不成立  结果为False
	or:
		1 != 1 or 2==2 or False or 3 < 2 or 10 < 1  # True
		1 == 2 or 1 >10 or False or 3 > 11 or 2 != 2  # False
		当链接符号都为or时 那么判断条件的时候 只需要一个条件成立 结果就可以成立 Ture
		如果每个条件都不成立那么整个才都不成立 结果为False
	not:
		not就是把结果翻转
		not True  # False
		not False  # True
3.三者混用
	当三者混用的时候 这三者是有优先级的
		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)  # 这是合理的编写方式

1.2成员运算

1.关键字
	in           在什么什么之内
	not in       不在什么什么之内
2.实战演练
	eg:判断一个元素是否在一个表格中
	L1 = ['jason', 'tony', 'kevin', 'jerry']
	print('jason' in L1)  # True 
	print('oscar' in L1)  # False
	print('jason' not in L1)  # Fasle
	print('j' in L1)  # False
	print('ja' in L1)  # False
	'''主意列表判断成员运算时 它是以列表内完整的一个元素来判断的'''

	eg:用字符串来做成员运算
	s = 'hello python'
	s = 'hello python'
	print('h' in s)  # True
	print('he' in s)  # True
	print('hello' in s)  # True
	'''字符串来做成员运算时 最小单位是单个字符 也可以增加字符'''

	 eg:字典做成员运算
	 d1 = {'name' : 'stephen', 'age' : 18, 'gender' : 'male'}
	 print('name' in d1)  # True
	 print('stephen' in d1)  # False
	 print(18 in d1)  # True
	 print('age' in d1)  # False
	 '''字典做成员运算的时候 只有k会参与运算 v是不会暴露给外界的'''

1.3身份运算

1.关键字
	is	is判断两个数据的内存是否相等 
	==	==判断两个数据的值是否相等
2.is的运用
	当我们使用is()时,它会返回一串数字 相当于内存地址
	name = 'jason'
	print(id(name))  # 2363574895032
	这串数字就是name的内存地址
3.实战演练
	l1 = [1, 2, 3, 4]
	l2 = [1, 2, 3, 4]
	print(id(l1))  # 2227001513672
	print(id(l2))  # 2227001513608
	这两个的内存地址是不一样的  因为两个列表在内存中位置是不一样的
	print(l1 is l2)  # False 判断两个的内存地址是否相等  print(l1 == l2)  # True 判断两个的值是否相等
	'''
	值相等 内存地址不一定相等
	内存相等 值肯定相等
	'''
4.python的内存优化
         l1 = 10
         l2 = 10
         print(id(l1))  # 140707857893312
         print(id(l2))  # 140707857893312
         '''python针对数据量比较小的并且经常使用的数据会做内存优化>>>小整数池  一般为[-5, 256]'''
         但是在IDE编辑工具中也会做更多优化
         l1 = 9999999
         l2 = 9999999
         print(id(l1)  # 1904190323568
         print(id(l2)  # 1904190323568
         """有时候IDE编辑工具也会做更多的优化处理(上述代码使用解释器直接运行 地址不一样)"""

2.流程控制

2.1流程控制的概念

流程控制的本质就是事物的执行流程  事物的执行流程总共就三种
1.顺序结构
	从上往下依次执行 我们之前所写的代码都是顺序结构
2.分支结构
	根据条件的不同执行不同的代码
3.循环结构
	根据条件的对错来判断是否需要一直执行同一个代码
4.储备知识
	1.python中使用代码的缩进来表示代码的从属关系
		缩进的代码是否运行取决于上面没有缩进的父代码(结尾有冒号)
	2.缩进量其实没有要求 只要缩进了即可
		但是为了美观 一般推荐使用四个空格
	3.并不是所有的代码都可以拥有子代码
		if关键字 else关键字  elif关键字 ( elif else不能单独使用)
	4.同属于一个父代码的多行子代码应该保证相同的缩进量
		如果代码缩进了 那就必须往上找一个缩进量比它小的代码作为父代码
		这个父代码如果可以拥有子代码 那么没有问题  不可以则直接报错
	5.相同缩进量的代码彼此之间没有主次之分 都是按照顺序依次执行

2.2流程控制之分支结构

'''
在python中如果需要写分支结构那么需要使用关键字  if
'''

2.2.1 单if分支

1.if语法:
	if 条件:
		条件成立执行执行的代码(子代码)
	# 条件可以是布尔值 也可以是表达式
	# 判断的条件可以是一个 也可以是由逻辑运算符连接的多个
2.实战演练
	# 1.定义一个人的年龄
		age = 28
	# 2.判断这个人的年龄
		if age < 18:
			print('小屁孩一个!!!')
	还有if的嵌套
		# 1.定义一个人的年龄
		age = 28
		# 2.判断这个人的年龄
		if age > 18:
			print('可以进入网吧了')
			if True:
				print('一起开黑把')

image

image

2.2.2 if else语句

1.if else的语法结构
if 条件:
	条件成立之后执行的子代码
else:
	条件不成立执行的子代码
# 判断的条件可以是一个 也可以是由逻辑运算符连接的多个
2.实战演练
	 # 1.获取用户名和密码
	name = input('name>>>:')
	pwd = input('pwd>>>:')
	pwd = int(pwd)   #  # python中不同数据类型之间无法直接做比较 所以要把str类型装换为int类型
	# 2.判断用户名和密码是否正确(目前只能写死)
	if name == 'jason' and pwd == 123:
		print('贵宾一位')
	else:
		print('没钱滚蛋')

image

2.2.3 if elif else语句

1.语法结构
	if 条件1:
		条件1成立执行的子代码
	elif 条件2:
		条件1不成立 条件2成立执行的子代码
	elif 条件3:
		条件1和2都不成立 条件3成立执行的子代码
	else:
		上述所有的条件都不成立执行的子代码
# if elif else三者连用 永远只会走一个分支 执行一个另外两个就不会执行
# elif 和 else都不能单独使用 必须结合if
2.实战演练
	score=input("请输⼊分数:")
	score=int(score)
	if score > 90:
		print("优")
	elif score > 80:
		print("良")
	elif score > 70:
		print("中")
	elif score >= 60:
		print("及格")
	else:
		print("不及格")

image

3.今日作业

3.1 作业1

女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好
  age = input('age>>>:')
  height = input('height>>>:')
  weight = input('weight>>>:')
  age = int(age)
  height = int(height)
  weight = int(weight)
  if 18 <= age < 22 and height > 170 and weight < 100:
    print('表白')
  else:
  print('阿姨好')

3.2 作业2

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

name = input('请输入你的名字>>>:')
if name == 'jason':
    print('超级管理员')
elif name == 'tom':
    print('普通管理员')
elif name == 'jack' or name == 'rain':
    print('业务主管')
else:
    print('普通用户')

3.3 作业3

# 3.编写用户登录程序
# 要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
#       eg:black_user_list = ['jason','kevin','tony']
# 如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
#       eg: stephen 123
black_user_list = ['jason', 'kevin', 'tony']
username = input('请输入你的用户名>>>:')
password = input('请输入你的密码>>>:')
if username in black_user_list:
    print('你在我们的黑名单中,无法登入')
elif username == 'stephen' and password == '123':
    print('登入成功')
else:
    print('用户名或密码错误')

posted @ 2022-06-21 17:09  stephen_hao  阅读(72)  评论(0编辑  收藏  举报