昨日内容回顾

  • 基本数据类型
  • 列表(list)
    1.能够存储多个数据,且可获取单个或整体数据
    2.中括号括起来[ ],里面可以存放多个且不同数据类型的数据(包括列表),各个数据用逗号隔开
    3.索引取值: # 索引通常是从0开始
    L1 = [11,12,13,[14,15,16],17]
    print(L1[3]) # 出来的结果是14,15,16
  • 字典(dict)
    1.能够存储多个数据,且可获取单个或整体数据,且数据还会有对应的解释
    2.花括号括起来{ },内部可以存放多个数据,数据的表现形式是K:V键值对
    K是V的描述信息,一般都是字符串
    V是真实数据,可以是任意数据类型
    3.字典取值: # 字典无法使用索引取值,因为是无序的,只能用按K取值
    info = {'姓名':'张三' , '年龄':'18' , '爱好' : '跑步'}
    print = (info['姓名']) # 结果为张三
    4.定义空字典
    D1 = {}
  • 布尔值(bool)
    1.用来表示事物是否可行、正确、合理
    2.只有两种值:# 首字母必须大写
    True 真、可以、正确
    False 假、不可以、错误
    3.存储布尔值的名字要用is开头
    is_right = True
    is_delete = False
  • 元组(tuple)
    1.和列表一致,但是元组内的数据不能"直接修改",一般用于存储不能改的数据
    2.用小括号括起来(),里面可以存放多个且不同数据类型的数据,用逗号隔开
    t1 = (11,12,13)
  • 集合(set)
    1.主要用于去重和关系运算
    2.和字典一样都是用花括号{}括起来,但是里面不用K:V键值对,而是用数据值的形式
    s1 = {1,2,3}
    3.定义空集合
    s1 = set()
  • 与用户交互
  • 输入
    input() #获取用户输入的信息
  • 输出
    print() #打印内部数据值
  • 格式化输出
    提前准备好文本,然后用格式化输出替换文本中的某些内容
    %s 能给所有的数据类型占位
    eg:
    info = "亲爱的%s你好,你%s月账单为%s,余额为%s"
    print(info %('张三',5,60,100)) #结果为:亲爱的张三你好,你5月账单为60,余额为100
    %d 只给数字占位
    eg:
    print('%08d' % 123) #结果为00000123
  • 基本运算符
    x = x + 1 x += 1
    x = x - 1 x -= 1
  • 多种赋值符号
    1.链式赋值
    a = b = c = 10 #让a b c都绑定10的值
    2.交叉赋值
    n, m = m, n #让n绑定m的值,m绑定n的值
    3.解压赋值
    a, b, c = [11,12,13] #让a b c 分别绑定三个值
    a, *b, c = [11,12,13,14,15] #结果为 a=11 b=[12,13,14] c=15

今日内容概要

  • 作业讲解
  • 运算符补充
  • 逻辑运算、成员运算、身份运算
  • 流程控制概念
  • 流程控制详细语法(最重要)
  • 顺序结构
  • 分支结构
  • 循环结构

今日内容详细

1.作业讲解

Python基础学习day07_内存地址

2.运算符补充

 1)逻辑运算

        and  与
     or     或
       not    非
    上面三个运算符都是用来配合条件一起使用
      and链接的多个条件必须'都成立',结果才成立(True)
      or链接的多个条件'有一个成立',结果就成立(True)
      not将条件取反,本来是对的变成错,本来是错的变成对
   # 如果所有连接符号都是and,那么只要有一个不符合结果肯定不成立,剩下的就不用看了
   # 如果所有链接符号都是or,那么只要有一个符合,结果肯定成立
   # not的操作是 not True/not False 把个条件取反
   # 如果三者混合使用,那必须加上括号来区分优先级
 eg:
    (3>4 and 4>3) or ((1==3 and 'x'=='x') or 3 >3)
  ( 错   与    对)或 (( 错    与       对   ) 或  错  )
                                            错                     错
           错            或                         错

 

 2)成员运算

    in 在...之内
    not in 不在...之内
  1.#列表在做成员运算时,最小单位就是数据值整体,不可拆分或合并
      eg:
    L1 = ['张三','李四','王五']
    print('张三' in L1) # 结果为True
    print('张' in L1) # 结果为False
    print('张三 李四' in L1) # 结果为False
  2.#字符串在做成员运算时,最小单位就是单个字符或多个字符
    eg:
    L1 = 'hello my baby'
    print('h' in L1) # 结果为True
    print('he' in L1) # 结果为True
    print('hello my' in L1) # 结果为True
  3.#字典在做成员运算时,只有K会参与运算,V默认不暴露外界
    eg:
    L1 = {'name':'张三','pwd':123}
    print('name' in L1) # 结果为True
    print('张三' in L1) # 结果为False

 

 3)身份运算

  1. is 判断数据值的内存地址是否一致
   == 等于/判断数据值的值是否一致(不看地址)
  2.储备知识:
    print() 打印数据
    input() 获取用户输入的信息
    type() 查看数据类型
    id() 查看某个数据的内存地址
  3.练习:
    L1 = [11,12,13]
    L2 = [11,12,13]
    print(id(L1)) # 123123123(查看L1的内存地址)
    print(id(L2)) # 122123556(查看L2的内存地址)
    print(L1 == L2) #结果为 True(判断L1和L2的值是否一致)
    print(L1 is L2) #结果为 False(判断L1和L2内存地址是否一致)
     值相等 内存地址不一定相等
     内存地址相等 值肯定相等(单词程序中)

  4.python内存优化
    python针对数据量比较小且经常使用的数据会做内存优化:两个一样的数字存放在一起'小整数池'

 

3.流程控制概念

   本质就是事物的执行流程,共有三种
  1)顺序结构
    从上到下依次执行代码
  2)分支结构
    根据条件的不同执行不同的代码
  3)循环结构
    根据条件的判断决定是否一直执行该代码

Python基础学习day07_数据类型_02

 

4.流程控制语法

 1)分支结构

  1.单if分支
    if 条件:
      条件成立之后执行的子代码
    #条件可以是布尔值 也可以是表达式
    #判断的条件可以是一个 也可以由逻辑运算符链接的多个
   1)实战演练
    # 1.定义女人的年龄
    age = 18
    # 2.判断女人的年龄
    if age < 20:
      print('你好小姐姐')
——————————————————————
    #嵌套:if下套if
    age = 18
    if age < 20:
      print('你好小姐姐')
    if 1:     # 0为False 1为True
      print('一起玩')
  2.if...else分支
    if 条件:
      条件成立后执行的子代码
    else:
      条件不成立后执行的子代码
    #判断的条件可以是一个 也可以是由逻辑运算符连接的多个
  1)实战演练
    # 1.获取用户名和密码
    name = input('用户名:')
    pwd = input('密码:')
    # 2.判断用户名是否正确
    if name =='张三' and pwd == '123':
      print('登陆成功')
    else:
      print('登陆失败')
  3.if...elif..else分支
    if 条件1:
      条件1成立后执行的子代码
    elif 条件2:
      条件1不成立,条件2成立后执行的子代码
    elif 条件3:
      条件2不成立,条件3成立后执行的子代码
    else:
      以上条件都不成立后执行的子代码
   # if elif else三个一起用 永远只会走一个分支(当上一个条件不成立就会走下面的条件)
   # elif 和 else都不能单独使用 必须结合if
  1)实战演练
    如果成绩大于90打印优秀,大于70打印良好,大于60打印及格,其他打印挂科
    cj = '88'
    if cj > '90':
      print('优秀')
    elif cj > '70':
      print('良好')
    elif cj > '60':
      print('及格')
    else:
      print('挂科')

  4.if的嵌套使用
    eg: #1.先定义各种条件
      is_wx = True
      is_dy = False
      is_hj = True
      #2.条件判断
      if is_wx:
        print('成功要到微信')
        if is_dy:
          print('成功一起看电影')
          if is_hj:
            print('成功一起喝酒')
          else:
            print("没约到喝酒")
        else:
          print('没约到看电影')
      else:
        print("没要到微信")
  #if下可以继续跟if,else可以最后补,但是要注意是否在同一个缩进里

Python基础学习day07_内存地址_03

作业:

1.女人的年龄>=18并且<22岁并且身高>170并且体重<100并且是漂亮的,那么:表白,否则:叫阿姨好
2.根据用户输入内容打印其权限
  '''
  jason --> 超级管理员
  tom --> 普通管理员
  jack,rain --> 业务主管
  其他 --> 普通用户
  '''
3.编写用户登录程序
  要求:有用户黑名单 如果用户名在黑名单内 则拒绝登录
    eg:black_user_list = ['jason','kevin','tony']
    如果用户名是黑名单以外的用户则允许登录(判断用户名和密码>>>:自定义)
    eg: oscar 123

1.

Python基础学习day07_内存地址_04

   # 需注意input() 用户输入的是字符,当字符数字与字符数字比大小时,是按照位置顺序一个一个比较。如一定要比较那就需要把用户输入的信息改为整数型int()

   # 定义布尔值名称要用is开头

        # 所有数据类型本身自带布尔值

2.

Python基础学习day07_数据类型_05

3.

Python基础学习day07_数据类型_06