第四章,了不起的分支和循环
4.1 分支和循环
Python主要依靠缩进来区分代码块
4.2 快速上手
成绩按照分数来划分等级,90分以上为A,80~90 为B,60~80 为C,60以下为D
p4_1.py
            score = int(input(
            
              "
            
            
              请输入一个分数:
            
            
              "
            
            
              ))
            
            
              if
            
             100 >= score >= 90
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              A
            
            
              "
            
            
              )
            
            
              if
            
             90 > score >= 80
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              B
            
            
              "
            
            
              )
            
            
              if
            
             80 > score >= 60
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              C
            
            
              "
            
            
              )
            
            
              if
            
             60 > score >=
            
               0:
    
            
            
              print
            
            (
            
              "
            
            
              D
            
            
              "
            
            
              )
            
            
              if
            
             score < 0 
            
              or
            
             score > 100
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              输入错误!
            
            
              "
            
            )
          
        p4_2.py
            score = int(input(
            
              "
            
            
              请输入您的分数:
            
            
              "
            
            
              ))
            
            
              if
            
             100 >= score >= 90
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              A
            
            
              "
            
            
              )
            
            
              else
            
            
              :
    
            
            
              if
            
             90 > score >= 80
            
              :
        
            
            
              print
            
            (
            
              "
            
            
              B
            
            
              "
            
            
              )
    
            
            
              else
            
            
              :
        
            
            
              if
            
             80 > score >= 60
            
              :
            
            
            
              print
            
            (
            
              "
            
            
              C
            
            
              "
            
            
              )
        
            
            
              else
            
            
              :
            
            
            
              if
            
             60 > score >=
            
               0:
                
            
            
              print
            
            (
            
              "
            
            
              D
            
            
              "
            
            
              )
            
            
            
              else
            
            
              :
                
            
            
              print
            
            (
            
              "
            
            
              输入错误!
            
            
              "
            
            )
          
        p4_3.py
            score = int(input(
            
              "
            
            
              请输入您的分数:
            
            
              "
            
            
              ))
            
            
              if
            
             100 >= score >= 90
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              A
            
            
              "
            
            
              )
            
            
              elif
            
             90 > score >= 80
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              B
            
            
              "
            
            
              )
            
            
              elif
            
             80 > score >= 60
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              C
            
            
              "
            
            
              )
            
            
              elif
            
             60 > score >=
            
               0:
    
            
            
              print
            
            (
            
              "
            
            
              D
            
            
              "
            
            
              )
            
            
              else
            
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              输入错误!
            
            
              "
            
            )
          
        
分析:
p4_1.py中,假设输入的是98,程序第一次成立,打印A,不过程序还为结束,需要继续对后面的四个条件进行判断,直到所有的条件不符合,最后才退出程序。
虽然简单的例子,但就输入的测试数据来说,假设每一次判断都会消耗一个CPU时间,那么程序p4_1.py 的代码要比其余的程序多耗费400%的CPU资源。
4.3 避免悬挂else问题
使用Python开发没有这方面的考虑
            age = 20
            
              
score 
            
            = 
            
              "
            
            
              A
            
            
              "
            
            
              if
            
             age < 18
            
              :
    
            
            
              if
            
             score == 
            
              "
            
            
              A
            
            
              "
            
            
              :
        
            
            
              print
            
            (
            
              "
            
            
              恭喜你,获得青少年一等奖!
            
            
              "
            
            
              )
            
            
              else
            
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              抱歉,本活动只限于小于18周岁的青少年参与。
            
            
              "
            
            )
          
        
4.4 条件表达的三元素
          >>> x = 5
          
          >>> y = 4
          
          >>> if x < y:
          
          ... small = x
          
          ... else:
          
          ... small = y
          
          ...
          
          >>> small
          
          4
          
          >>>
        
三元操作符
a = x 条件 else y
表示当条件为true的时候,a被赋值为x,否则被赋值为y
          >>> x = 5
          
          >>> y = 4
          
          >>> small = x if x < y else y
          
          >>> small
          
          4
          
          >>>
        
            score = int(input(
            
              "
            
            
              请您输入一个数字:
            
            
              "
            
            
              ))
level 
            
            =
            
               0
            
            
              if
            
             100 >= score >= 90
            
              :
    level 
            
            = 
            
              '
            
            
              A
            
            
              '
            
            
              elif
            
             90 > score >= 80
            
              :
    level 
            
            = 
            
              '
            
            
              B
            
            
              '
            
            
              elif
            
             80 > score >= 60
            
              :
    level 
            
            = 
            
              '
            
            
              C
            
            
              '
            
            
              elif
            
             60 > score >=
            
               0:
    level 
            
            = 
            
              '
            
            
              D
            
            
              '
            
            
              else
            
            
              :
    
            
            
              print
            
            (
            
              "
            
            
              输入错误!
            
            
              "
            
            
              )
            
            
              print
            
            (level)
          
        如果使用三元操作符实现
            score = int(input(
            
              "
            
            
              请您输入一个数字:
            
            
              "
            
            
              ))
level 
            
            =
            
               0
level 
            
            = 
            
              '
            
            
              A
            
            
              '
            
            
              if
            
             100 >= score >= 90 
            
              else
            
            
              '
            
            
              B
            
            
              '
            
            
              if
            
             90 > score >= 80 
            
              else
            
            
              '
            
            
              C
            
            
              '
            
            
              if
            
             80 > score >= 60 
            
              else
            
            
              '
            
            
              D
            
            
              '
            
            
              if
            
             60 > score >=0 
            
              else
            
            
              print
            
            (
            
              "
            
            
              输入错误!
            
            
              "
            
            
              )
            
            
              print
            
            (level)
          
        4.5 断言
断言的语法语法其实有点像if条件的分支语句,一般在程序调试的时候,使用
          >>> assert 3 < 4
          
          >>> assert 3 > 4
          
          Traceback (most recent call last):
          
           File "
          
              AssertionError
              
              >>>
            
4.6 while循环语句
语法:
while 条件:
循环体
            i = 1
            
              
sum 
            
            =
            
               0
            
            
              while
            
             i <= 100
            
              :
    sum 
            
            +=
            
               i
    i 
            
            += 1
            
              print
            
            (sum)
          
        
4.7 for 循环语句
语法:
for 变量 in 可迭代对象:
循环体
            sum =
            
               0
            
            
              for
            
             i 
            
              in
            
             range(101
            
              ):
    sum 
            
            +=
            
               i;
    i 
            
            += 1
            
              print
            
            (sum)
          
        range() 是一个BIF,它可以为指定的整数生成一个数字序列,语法如下:
range(stop)
range(start,stop)
range(start,stop,step)
          >>> list(range(10))
          
          [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
          
          >>> list(range(5,10))
          
          [5, 6, 7, 8, 9]
          
          >>> list(range(0,10,2))
          
          [0, 2, 4, 6, 8]
          
          >>> list(range(0,-10,-2))
          
          [0, -2, -4, -6, -8]
        
4.8 break 语句
break语句终止当前循环,跳出循环体
            bingo = 
            
              "
            
            
              清蒸
            
            
              "
            
            
              
answer 
            
            = input(
            
              "
            
            
              小甲鱼是清蒸好吃还是炖了好吃?
            
            
              "
            
            
              )
            
            
              while
            
            
               True:
    
            
            
              if
            
             answer ==
            
               bingo:
        
            
            
              break
            
            
              
    answer 
            
            = input(
            
              "
            
            
              抱歉,请重新输入。
            
            
              "
            
            
              )
            
            
              print
            
            (
            
              "
            
            
              对吗,只有清蒸才原汁原味。
            
            
              "
            
            )
          
        打印2018年之后出现的第一个闰年
(当年月份可以被4整除,且不能被100整除,或者可以被400整除,该年为闰年)
            
              for
            
             year 
            
              in
            
             range(2018,2100
            
              ):
    
            
            
              if
            
             (year % 4 == 0) 
            
              and
            
             (year % 100 != 0) 
            
              or
            
             (year % 400 ==
            
               0):
        
            
            
              break
            
            
              print
            
            (
            
              "
            
            
              2018年之后出现的第一个润年是
            
            
              "
            
            , year)
          
        
4.9 continue 语句
跳出本轮循环,进行下一轮循环
如果要打印2018年到2100年之间的年份
            
              for
            
             year 
            
              in
            
             range(2018,2050
            
              ):
    
            
            
              if
            
             (year % 4 == 0) 
            
              and
            
             (year % 100 != 0) 
            
              or
            
             (year % 400 ==
            
               0):
        
            
            
              print
            
            
              (year)
        
            
            
              continue
            
          
        
          2020
          
          2024
          
          2028
          
          2032
          
          2036
          
          2040
          
          2044
          
          2048
        
4.10 else语句
while 条件:
循环体
else:
条件不成立时执行的内容
for 变量 in 可迭代对象:
循环体
else:
条件不成立可执行的内容


 
					 
					