学习笔记(6.21)

今日学习概要

  • 运算符补充
  • 流程控制

今日学习内容

  • 运算符补充

  1. 逻辑运算符
    名称运算符基本使用说明
    anda and b只有a和b的布尔值都为True时输出True,否则为False
    ora or b只有a和b的布尔值都为False时输出False,否则为True
    notnot a如果a的布尔值为True输出False,否则输出True
  • and运算符是从前往后判断的,只要有一个结果为False,程序就不会往后继续执行了
test = 1 == 1 and 3 > 9 and num
print(test)  # False,程序不会报错
  • 同理or运算符也是只要有一个结果为True,程序也不会继续往后执行了
test = 1 == 1 or 3 > 9 or num
print(test)  # True
  • 如果需要三个混合使用的话,需要加上小括号来区分优先级
  1. 成员运算符
运算符基本使用说明
in1 in [1, 2, 3]判断1是否在列表之中,如果在返回True
not in1 in [1, 2, 3]判断1是否不在列表中,如果在返回False
  • 用列表做成员判断时,列表中单个数据值就是最小单位,不能够在拆分
list_1 = ['beijing', 'shanghai', 'guangzhou']
print('beijing' in list_1)  # True
print('shanghai' in list_1)  # True
print('guang' in list_1)  # False
  • 字符串的最小单位就是单个字符,所以可以用一个字符,也可以使用多个字符(空格也算一个字符)
str_1 = 'beijing shanghai'
print('s' in str_1)  # True
print('gs' in str_1)  # False
print('g s' in str_1)  # True
  • 字典做成员运算的时候只能判断它的键(k),值(v)不参与运算
dict_1 = {'name': '张三', 'age': 22}
print('name' in dict_1)  # True
print(22 in dict_1)  # False
print('张三' in dict_1)  # False
  1. 身份运算
运算符基本使用说明
isa is b比较a与b的数据值在内存空间的地址,相同为True
is nota is not b比较a与b的数据值在内存空间的地址,相同为False
  • is 和比较运算符不同,比较运算符判断的只是数据值是否相同,而is判断内存地址是否一致,数据值相同内存地址可能不同,但内存地址相同数据值肯定相同
l1 = [111, 222, 333]
l2 = [111, 222, 333]
print(l1 == l2)  # True
print(l1 is l2)  # False
print(id(l1))  # 1976933396864
print(id(l2))  # 1976933242752
  • python对于小的数据有一个小数据池的内存优化机制,既把相同数据放在同一个内存空间
num1 = 20
num2 = 20
print(id(num1))  # 2561982884752
print(id(num2))  # 2561982884752
  • 流程控制

  1. 流程控制理论

流程控制控制的是事物的执行流程,事物的执行流程共三种:

  • 顺序结构:从上往下依次执行,我们平常写的代码都是顺序结构
  • 分支结构:根据判断的结果不同而执行不同的代码
  • 循环结构 :循环执行一段代码直到某个条件达成
  1. 流程控制之分支结构
  • 在python中写流程控制需要使用到关键字 if
    1. 单if分支

      if condition:  # if后加上判断条件,然后使用冒号结束判断语句
      	pass  # pass是占位、跳过的意思,这里代表条件成立后想要执行的代码
      

      在这里插入图片描述

      在python中使用缩进来表示代码的从属关系,缩进前的叫做父代码,缩进后的叫做子代码,子代码能不能执行取决于父代码

      多行子代码需要保证在同一个缩进下

      缩进的数量并没有要求,不过一般建议使用四个空格既一个Tab

      判断的条件可以是一个,也可以是逻辑运算符链接起来的多个条件

    2. if…else分支

      if condition:
      	pass  # if条件成立执行的代码
      else:  
      	pass  # if条件不成立执行的代码
      

      在这里插入图片描述

    3. if…elif…else
      这里可以使用多个elif

      if condition1:
      	pass  # 条件1成立执行的代码
      elif condition2:
      	pass  # 条件1不成立,条件2成立执行的代码
      elif condition3:
      	pass  # 条件1、2都不成立,条件3成立执行的代码
      else:
      	pass  # 上述条件都不成立执行的代码
      

      在这里插入图片描述

      只有上一个条件判断为False才会判断下一个条件

      if elif else 它们之中只会走一条分支,结束之后又回到主程序

      elif 和 else 不能单独存在,必须要有if存在

    4. if 的嵌套使用

      if condition1:  # 第一次判断
      	if condition2:  # 第一次判断为True后才进行第二次判断
      		print('两次都成功了')  # 两次条件都为True才执行这一句
      	else:
      		print('第二次失败了')
      else:
      	print('第一次就失败了')
      

      在这里插入图片描述

作业

# 1.女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好
age = int(input('请输入年龄:'))
height = float(input('请输入身高(CM):'))
weight = float(input('请输入体重(KG):'))
looks = int(input('颜值在线请扣1:'))

if 22 > age >= 18 and height > 170 and weight < 50 and looks == 1:
    print('表白')

else:
    print('阿姨好')


# 2.根据用户输入内容打印其权限
"""
    jason --> 超级管理员
    tom  --> 普通管理员
    jack,rain --> 业务主管
    其他 --> 普通用户
"""
user = input('请输入您的用户名:')
if user == 'jason':
    print('超极管理员')
elif user == 'tom':
    print('普通管理员')
elif user == 'jack' or user == 'rain':
    print('业务主管')
else:
    print('其他用户')


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


black_user_list = ['jason', 'kevin', 'tony']
white_user_dict = {'tom': 123, 'bruce': 321, 'duke': 666}
user = input('请输入用户名:')
if user not in black_user_list:
    password = int(input('请输入密码:'))
    if password == white_user_dict[user]:
        print('登录成功')
    else:
        print('密码错误')
else:
    print('拒绝访问')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值