• python入门之类型、条件、运算符、流程控制之if判断


    1:可变、不可变类型
    • 可变类型:值改变,id不变,原值可以被修改

      可变类型包括:list,dict

      l = [111,222,333]
      print(id(l))
      l[0] = 444
      print(l)
      print(id(l)) # l中的第一个内容被修改,但两个结果id是相同的
      

    dic = {'k1':111,'k2':222}
    print(id(dic))
    dic['k1'] = 3333333333
    print(dic)
    print(id(dic)) # dic中的'k1'被修改,但是两个结果的id是相同的
    

    # 补充
    # 定义:{}内用逗号分隔开多key:value,
    # 其中value可以是任意类型
    # 但是key必须是不可变类型
    
    • 不可变类型:值改变,id也变了,原值不可被修改

      int、float、str是不可变类型

      x=10
      print(id(x))
      x=11 
      print(id(x))
      
      x=3.1
      print(id(x))
      x=3.2
      print(id(x))
      
      x="abc"
      print(id(x))
      x='gggg'
      print(id(x))
      
      # 三个类型的两个结果值改变了并且两个结果的id也不相同
      结论:int、float、str都被设计成了不可分割的整体,不能够被改变
      

    2、什么是条件?什么可以当做条件?为何要要用条件?
    • ​ 显式布尔值:比较运算符、True、False
    • ​ 隐式布尔值:所有数据类型,其中0、None、空为假
    3:逻辑运算符:用来
    • not、and、or的基本使用

      # not:把紧跟其后的那个条件结果取反
      print(not 16 > 13)
      print(not True)
      print(not False)
      print(not 10)
      print(not 0)
      print(not None)
      print(not '')
      
      结果:
      False
      False
      True
      False
      True
      True
      True
      False
      
      # and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真
      print(True and 10 > 3)
      print(True and 10 > 3 and 10 and 0)
      print( 10 > 3 and 10 and 0 and 1 > 3 and 4 == 4 and 3 != 3)
      
      结果:
      True
      0
      0
      # 运算中条件全部为真则为真,一个条件为假则为假
      
      
      # or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,个条件都为False的情况下,最终结果才为False
      print(3 > 2 or 0)
      print(3 > 4 or False or 3 != 2 or 3 > 2 or True)
      
      结果:
      True
      True
      
    • 区分优先级:not > and > or

      # 如果单独就只是一串and链接,或者说单独就只是一串or链接,按照从左到右的顺讯依次运算即可(偷懒原则)
      # 如果是混用,则需要考虑优先级了
      
      res=3>4 and not 4>3 or 1==3 and 'x' == 'x' or 3 >3
      print(res)
      
      res=(3>4 and (not 4>3)) or (1==3 and 'x' == 'x') or 3 >3
      print(res)
      
      结果:
      False
      False
      
    4、成员运算符
    • in:某一个对象包含于另一个对象中

      print("egon" in "hello egon") # 判断一个字符串是否存在于一个大字符串中
      print("e" in "hello egon") # 判断一个字符串是否存在于一个大字符串中
      print(11 in [111,222,33]) # 判断元素是否存在于列表
      
      结果:
      True
      True
      False
      #判断key是否存在于字典
      print(111 in {"k1":111,'k2':222})
      print("k1" in {"k1":111,'k2':222})
      
      结果:
      False
      True
      
      #not in
      print("egon" not in "hello egon") # 推荐使用
      print(not "egon" in "hello egon") # 逻辑同上,但语义不明确,不推荐
      
      结果:
      True
      True
      
    5、身份运算符
    • is:判断两个值的id是否相等

      x = 10
      y = 11
      l = [x,5]
      print(x is y)
      print(x is l[0])
      
      结果:
      False
      True
      
    6、流程控制之if判断
    • 什么是流程控制

      流程控制即控制流程,具体指控制程序的执行流程,而程序的执行流程分为三种结构:顺序结构(之前我们写的代码都是顺序结构)、分支结构(用到if判断)、循环结构(用到while与for)。

    • 分支结构

      1.什么是分支结构:

      分支结构就是根据条件判断的真假去执行不同分支对应的子代码

      2.为什么用分支结构?

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

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

    • 如何用分支结构

      1.使用if语句来实现

      if 条件1:   # 如果条件1的结果为True,就依次执行:代码1、代码2,......
         代码1
          代码2
          ......
      elif 条件2: # 如果条件2的结果为True,就依次执行:代码3、代码4,......
         代码3
          代码4
          ......
      elif 条件3: # 如果条件3的结果为True,就依次执行:代码5、代码6,......
         代码5
          代码6
          ......
      else:     # 其它情况,就依次执行:代码7、代码8,......
          代码7
          代码8
          ......
      # 注意:
      # 1、python用相同缩进(4个空格表示一个缩进)来标识一组代码块,同一组代码会自上而下依次运行
      # 2、条件可以是任意表达式,但执行结果必须为布尔类型
           # 在if判断中所有的数据类型也都会自动转换成布尔类型
             # 2.1、None,0,空(空字符串,空列表,空字典等)三种情况下转换成的布尔值为False
             # 2.2、其余均为True
      

      2.if应用

      # 如果我大于22岁我就可以结婚
      age = 25
      if age > 22:
          print("我可以结婚了")
      # 如果:成绩>=90,那么:优秀
      
      # 如果成绩>=80且<90,那么:良好
      
      # 如果成绩>=70且<80,那么:普通
      
      # 其他情况:很差
      
      score=input('>>: ')
      score=int(score)
      
      if score >= 90:
          print('优秀')
      elif score >= 80:
          print('良好')
      elif score >= 70:
          print('普通')
      else:
          print('很差')   
      
      # if嵌套
      # 如果我大于22岁我就可以结婚,如果结婚了,那我很幸福,没结婚我就不幸福
      age = 25
      is_marry = True
      if age > 22:
          if is_marry:
          	print("我很幸福")
          else:
              print("我不幸福")
      

  • 相关阅读:
    java MessageFormat来生成模板字符串
    linux 用户身份切换
    linux 账号管理
    java 模块化
    mysql 存储过程执行while循环 Lost connection to MySQL server during query
    git 加速
    测试目录
    centos 安装gitblit
    centos7 安装mongoDB
    MySQL 批量修改库、表、列的排序规则,处理数据库大小写不敏感问题。
  • 原文地址:https://www.cnblogs.com/yding/p/12430119.html
Copyright © 2020-2023  润新知