zoukankan      html  css  js  c++  java
  • python开发学习day04 (布尔型; 可变与不可变类型; 赋值操作; 身份运算is 和==; if判断)

    2020-06-04

    目录:

    一、布尔型

      1.1  显式的布尔值

      1.2  隐式的布尔值

    二、可变、不可变类型

      2.1  可变类型:list,dict

      2.2  不可变类型:int、float、str

    三、赋值运算符补充

      3.1  增量赋值

      3.2  链式赋值

      3.3  交叉赋值

      3.4  解压赋值

    四、身份运算

    五、流程控制之if判断

      5.1  什么是if判断

      5.2  为什么要用if判断

      5.3  怎么用if判断

        5.3.1  只有一个if

        5.3.2  if + elif

        5.3.3  if + else

        5.3.4  if+elif+else

        5.3.5  if判断嵌套使用

    一、布尔型

    1.1  显式的布尔值 

    ① 直接定义布尔类型的变量值
      tag=True
    ② 通过比较运算得到布尔值
      10 == 10
      3 > 2

     1.2  隐式的布尔值

    隐式的布尔值为False的数据类型有:0,None,空
    除了隐式的三个数据外,其余所有的数据类型都为真

    二、可变、不可变类型

    2.1  可变类型: list,dic

    在值改变的情况下,id号不变,也就是说内存地址不变,证明就是在改原来内存空间中的值,即原值可变 

    2.2  不可变类型:int、float、str

    在值改变的情况下,id号也跟着变,也就是说内存地址变了,证明不是在改原来内存空间中的值,而是申请了新的内存空间,产生了新的值,即原值不可变
    其中,字典中的value可以是任意类型,但是字典的key必须是不可变类型,也就是说list和dict类型不能用作字典的key
      dic={'k1':111,'k2':222}
      print(id(dic))
      dic['k1']="abc"
      print(dic)
      print(id(dic))      # dic的id不变
    了解:不可哈希类型就是可变类型,可哈希类型就是不可变类型

    三、赋值运算符补充

    为使代码变得简洁又不失可读性,可以使用如下赋值方式:

    3.1  增量赋值

    age=18
    age += 1      #age = age + 1     
    print(age) 

    3.2  链式赋值

    x = 10
    y = x
    z = y
    以上三行代码可以用链式赋值写成一行代码:
    # z = y = x = 10
    print(x, y, z)    # x,y,z的值都是10

    3.3  交叉赋值

    m = 1
    n = 2
    # 当需要将m和n的值交换时: temp=m m=n n=temp print(m, n)
    # 使用交叉赋值的方式,交换过程可以写成一行代码:
    m = 1
    n = 2
    m, n = n, m # 交叉复制操作
    print(m, n)

    3.4  解压赋值

    m = [1, 2, 3, 4, 5]
    a, b, c, d, e = m     # 将列表的五个数据按顺序赋值给a、b、c、d、e
    print(a)          # a = 1
    print(b)          # b = 2
    print(c)          # c = 3
    print(d)          # d = 4
    print(e)          # e = 5
    
    a, b, c, *_ = m       # 将列表的第一、二、三个数据按顺序赋值给a、b、c
    print(a)          # a = 1
    print(b)          # b = 2
    print(c)          # c = 3
    
    *_, a, b, c = m      # 将列表的第三、四、五个数据按顺序赋值给a、b、c
    print(a)          # a = 3
    print(b)          # b = 4
    print(c)          # c = 5
    
    a, *_, b, c = m      # 将列表的第一、四、五个数据按顺序赋值给a、b、c
    print(a)          # a = 1
    print(b)          # b = 4
    print(c)          # c = 5
    对于字典来说解压赋值取出来的是字典的key
    dic = {"k1": 111, "k2": 222}
    x, y = dic
    print(x, y)    # 输出 x = k1, y = k2

    四、身份运算

       is 比较的是id是否相同,== 比较的是值是否相同

    # 如果is判断的结果为True,那么二者的id一样,即二者内存地址一样,即二者就是一个东西,即值一定相等
    # 如果==判断的结果为True,那么二者的值一样,但是二者的内存地址可能不一样
    如果要判断一个变量的是否等于None、True、False,建议使用is去判断

    五、流程控制之if判断

    5.1  什么是if判断

    判断 条件1 (并且 条件2):
      做什么事。。。
    否则:
      做什么事。。。

    5.2  为什么要用if判断

        人类某些时候需要根据条件来决定做什么事情,比如:如果今天下雨,就带伞

      所以程序中必须有相应的机制来控制计算机具备人的这种判断能力

    5.3  怎么用if判断

      if是必须要有的

    5.3.1 只有一个if

    inp_name = input("你的名字: ")
    if inp_name == "jsaon":
        print("输入正确")
    ...    # 下面的代码继续运行

    5.3.2 if + elif

    inp_name=input("你的名字: ")
    if inp_name == "Jason":
        print("您的身份是超级vip")
    elif inp_name == "张三":
        print("您的身份是钻石vip")
    elif inp_name == "李四":
        print("您的身份是铂金vip")
    ...    # 下面的代码继续运行

    5.3.3  if + else

      如简易的ATM程序:

    inp_name = input('你的用户名: ')
    inp_pwd = input('你的密码: ')
    if inp_name == "jason" and inp_pwd == "123":
        print('登录成功')
    else:
        print("用户名或密码错误")

    5.3.4  if+elif+else

    inp_score = input("请输入您的成绩: ")
    inp_score = int(inp_score)
    if inp_score >= 90:
        print("优秀")
    elif inp_score >= 80:    # 因为是否大于90已经在上一行判断过了,所以这一行省略了 and inp_score < 90
        print("良好")
    elif inp_score >= 70:    # 同上
        print("普通")
    else:
        print("很差")

    5.3.5  if判断嵌套使用

    if True:
        if True:
            print("hello")
    else:
        print("sorry")
  • 相关阅读:
    Expression多条件筛选
    Express对条件的手动拼接
    查看绝对路径
    检查Linux内核版本信息
    New 路程 2019
    Braintree PayPal 支付网关开发(二)
    Braintree PayPal 支付网关开发(一)
    Quartz 作业调度框架的使用
    C# 扩展方法
    ASP.Net MVC管道分析
  • 原文地址:https://www.cnblogs.com/cui-cheng/p/13045917.html
Copyright © 2011-2022 走看看