第六章、分支、循环、条件和枚举

第六章、分支、循环、条件和枚举

一、什么是表达式

  1. 平常写的代码就是表达式

  2. 定义:表达式是运算符和操作数所构成的序列

  3. a = 1+2*3  # 也是表达式,“=”在python中也是运算符
    a = 1
    b = 2
    c = 3
    a + b * c  # 结果是7
    a or b and c # 结果是1
    
  4. 表达式在运算时,要遵循优先级,优先级相同时,都是从左向右1运算,若想打破运算顺序,可以加小括号

二、在文本中编写代码

  1. 在Notepad++中创建.py文件,书写代码,本教程是用vscode书写
  2. 在命令行中运行.py文件方式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mNWQmYOW-1604139117856)(C:\Users\zhf28\Desktop\学习笔记\Python笔记\python笔记\第6章\img\1.png)]

  1. vscode的配置

    • IDE的功能就是智能感知和断点调试,不安装插件也是可以运行程序的

    • 插件安装[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JALei47q-1604139117857)(C:\Users\zhf28\Desktop\学习笔记\Python笔记\python笔记\第6章\img\2.png)]

    • 快捷键:ctrl+~:打开命令行、ctrl+p:快速索引

    • python不强制加分号,不需要花括号将代码包裹起来,python靠缩进将代码段区分

三、流程控制语句

  1. 注释,可以让解释器不运行代码

    1. 单行注释

      • # csaicha
        
      • 快捷键:ctrl+/

    2. 多行注释

      • """
        caycgasc
        """
        
      • 快捷键:shilf+Alt+A

  2. if…else…2

    • # 格式if空格表示bool类型值的数据:
      mood = True
      if mood:
          print("go to left")
      mood = True
      
      # 运行结果没有区别,但是在逻辑上时有区别的,同一缩进下,为同一代码片段里的
      if mood:
          print("go to left")
          print("1345")
          
      print("1345")
      
      # if...else...
      mood = False
      if mood:
          print("go to left")
      else :
          print("1345")
      
      print("xhauica")
      # 运行结果:1345  xhauica,所以下面一个输出是物理如何都会运行的
      
    • if后面的关键字不一定是变量,也可以是表达式

    • a = 1
      b = 2
      c = 2
      if a or b + 1 == c:
          print("go to left")
      else :
          print("1345")
      
    • 接收用户输入input()3

    • account = "qiyue"
      password = "123456"
      
      user_account = input()
      user_password = input()
      
      if account == user_account and password == user_password:
          print("密码相同")
      else:
          print("密码不相同")
      
    • 深入if…else…

      • 软件小技巧,代码片段

      • 在书写代码片段时,tap键可以用来跳转到下一个修改的变量,shift和tap键可以用来修改上一个变量

      • if可以单独使用,但是else不可以

      • if True:
            pass
        if True:
            pass
        
      • pass语句叫占位语句

      • if True:
            # 会报错,必须加pass
        
      • if...else...嵌套

      • if a:
            if a:
                pass
            else:
                pass    
        else:
            if a:
                pass
            else:
                pass
        
      • 代码块的概念

      • if a:
            a
            a
            a
        else:
            a
            a
            a	# 同级别,都会被执行
        
    • 多层判断时if...elif...

      • if a:
            a
        elif a:
            a
        elif a:
            a
        else:
            a
        
      • 为什么在python中没有switch.case语句:因为官方给出了更好的方案,if...elif..elif...else或者字典来替代

  3. 循环4

    • while循环

      • # 基本结构,condition是bool类型的数据或者表达式
        while condition:
            # 代码块
        
      • # 死循环
        condition = True
        while condition:
            print("I am while")
        
      • # while 在执行的时候会先判断后面的值
        condition = 0
        while condition:
            condition += 1
            print(condition)
        # 结果是什么也不会印出来,因为会先进行判断
        
      • 如何避免while形成死循环,那么就需要将在whlie中有使while不成立的语句

      • while...else当while正常执行的时候结束的时候,才会执行else中的代码段

      • while中使用场景,递归

    • for循环语句

      • # 代码结构
        # target_list:临时变量,expression_list:容器,序列,集合,字典
        for target_list in expression_list:
            pass
        
      • 使用场景:主要是用来遍历/循环 序列或者说集合、字典

      • a = ["anad", "cvav", "dasf", "affaf"]
        for x in a:
            print(x)
        # 结果:
        anad
        cvav
        dasf
        affaf
        
      • for循环嵌套

      • a = [["anad", "cvav", "dasf", "affaf"],[1,2,3]]
        for x in a:
            for y in x:
                print(y)
        # 结果:
        anad
        cvav
        dasf
        affaf
        1
        2
        3
        
      • 想让数据只在一行显示,在print中加end = ""

      • a = [["anad", "cvav", "dasf", "affaf"],[1,2,3]]
        for x in a:
            for y in x:
                print(y,end=" ")
        # 结果:
        anad cvav dasf affaf 1 2 3
        
      • for...else

      • a = [["anad", "cvav", "dasf", "affaf"],[1,2,3]]
        for x in a:
            for y in x:
                print(y)
        else:
            print("cgacgacasv")
        # 结果:
        anad
        cvav
        dasf
        affaf
        1
        2
        3
        cgacgacasv
        
    • 强制终止循环break/countine5

      • # break
        a = [1,2,3,4]
        for x in a:
            if x==2:
                break
            print(x)
        # 结果:
        1
        
      • # countine
        a = [1,2,3,4]
        for x in a:
            if x==2:
                continue
            print(x)
        # 结果:
        1
        3
        4
        
      • # break...else
        a = [1,2,3,4]
        for x in a:
            if x==2:
                break
            print(x)
        else:
            print("cabicg")
        # 结果:
        1
        
      • # countine...else
        a = [1,2,3,4]
        for x in a:
            if x==2:
                countine
            print(x)
        else:
            print("cabicg")
        # 结果:
        1
        3
        4
        cabicg
        
    • 在python中怎么书写,重复10次的操作的代码:用range6

      • for x in range(0,10):
            print(x,end = " ")
        # 结果:
        0 1 2 3 4 5 6 7 8 9
        
        for x in range(0,10,2):
            print(x,end = " ")
        # 结果:
        0 2 4 6 8
        
        # 练习:
        a = list(range(1,9))
        for x in a:
            if x%2 == 0:
                print(x)
        
      • 序列的切片操作[a​:b:c​] 7

      • b = a[0:len(a):2]
        print(b)
        

  1. 左结合,赋值运算符“=”是右结合 ↩︎

  2. 选择性问题时可以用 ↩︎

  3. input()函数输出的数据是字符串数据,要想要数值,需要数据转换 ↩︎

  4. 循环语句,while,for ↩︎

  5. break强行终止本层循环,countine跳过某次循环 ↩︎

  6. range(a,b,c)创建区间,a表示区间第一个数,b表示终止,c表示步长,当要得到的序列是顺序的时候,a>b,c>0,当要得到的序列是逆序的时候,a<b,c<0 ↩︎

  7. a:起始数据,b:终止数据,c:切片的步长 ↩︎

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页