Python笔记:分支与循环详解(Day 06)

文章目录

  • 1. if语句分支结构
  • 2.分支结构的嵌套
  • 3.循环结构
  • 3.1 while循环
  • 3.1.1 else语句
  • 3.1.2 循环结构的嵌套
  • 3.2 for循环
  • 3.2.1 for循环的嵌套
  • 1. if语句分支结构

    分支结构能让程序做不同的事情
    语法结构:

    (1) 判断一个条件,如果这个条件成立,就执行其包含的某条语句或某个代码块

    if condition:
       statement(s)
    
    if 3 > 5:
        print("我在里面~")
        print("我也在里面……")
    print("我在外面~")
    
    

    为什么“我在里面~”和“我也在里面…” 只有在条件成立之后才会被执行呢?
    缩进,缩进决定了从属关系,这里两条语句看上去整齐划一,因为它们拥有同一级别的缩进,所以构成了一个代码块,在同一个代码块中,每一条语句的缩进量必须是相同的
    (2)

    '''判断一个条件:
           如果条件不成立,就执行其包含的某条语句或某个代码块
           如果条件不成立,就执行另外的某条语句或某个代码块'''  
    if condition:
       statement(s)
    else:
       statement(s)
      
    
    if 6 > 3:
        print("6大于3啦~")
    else:
        print("6小于3")
    

    (3)

    '''判断多个条件,如果第一个条件不成立,则继续判断第2个条件,
    如果第2个条件还不成立,则判断第3个条件......'''
    if condition1:
       statement(s)
    elif condition2:
       statement(s)
    elif condition3:
       statement(s)
    ...   
    
    score = input("请输入你的分数:")
    score = int(score)
    if 0 <= score < 60:
        print("D")
    elif 60 <= score < 80:
        print("C")
    elif 80 <= score < 90:
        print("B")
    elif 90 <= score < 100:
        print("A")
    elif score == 100:
        print("S")
    

    (4)

    '''在第3种的情况下添加一个else,表示上面所以的条件均不成立的情况下,
    执行某条语句或某个代码块'''
    if condition1:
       statement(s)
    elif condition2:
       statement(s)
    elif condition3:
       statement(s)
    else:
       statement(s)
    
    score = input("请输入你的分数:")
    score = int(score)
    if 0 <= score < 60:
        print("D")
    elif 60 <= score < 80:
        print("C")
    elif 80 <= score < 90:
        print("B")
    elif 90 <= score < 100:
        print("A")
    elif score == 100:
        print("S")
    else:
        print("请输入0-100之间的分数:")
    

    相当于条件表达式,将一个完整的if,else结构整合成一个表达式来用

    >>> age = 16
    >>> if age < 18:
    ...     print("抱歉,未满18岁,禁止访问。")
    ... else:
    ...     print("欢迎访问")
    ...
    抱歉,未满18岁,禁止访问。
    >>> print("抱歉,未满18岁,禁止访问。")if age < 18 else print("欢迎访问")
    抱歉,未满18岁,禁止访问。
    
    >>> a = 1
    >>> b = 6
    >>> if a < b :
    ...     small = a
    ... else:
    ...     small = b
    >>> small = a if a < b else b
    >>> print(small)
    1
    
    
    

    2.分支结构的嵌套

    answer = 8
    guess = input("请输入数字:")
    a = int(guess)
    if a == 8:
        print("恭喜,猜中啦")
    else:
        if a < 8:
            print("小啦")
        else:
            print("大啦")
    

    3.循环结构

    循环结构能让程序不断做同一件事情

    3.1 while循环

    语法结构:
    while condition :
        statement(s)
    
    >>> i = 1              
    >>> sum = 0            
    >>> while i <=1000000:
    ...   sum=sum + i
    ...   i += 1   
    ...        
    >>> print(sum) 
    500000500000
    

    死循环:让python一直执行语句不停止
    break语句跳出循环体,结束循环,执行循环后面的语句

    >>> while True:
    ...   answer= input("可以结束循环了吗") 
    ...   if answer == "可以": 
    ...      break
    ...
    可以结束循环了吗不可以
    可以结束循环了吗继续
    可以结束循环了吗坚持
    可以结束循环了吗可以
    
    

    continue语句:跳出本轮循环,还会回到循环体的条件判断位置,继续下一轮循环

    >>> i = 0              
    >>> while i < 10:    
    ...      i +=1
    ...      if i % 2 == 0:
    ...          continue
    ...      print(i) 
    ...
    1
    3
    5
    7
    9
    
    

    3.1.1 else语句

    else语句:当条件不再为真的时候,else语句才会被执行。如果用break语句跳出循环,当跳出循环之后,条件还是为真的时候,else语句不会被执行

    while…else…的设计实质性的作用:可以非常容易地检测到循环的退出情况 这么设计可以非常方便地不使用标志位的情况下去检测到循环的退出情况

    >>> day = 1
    >>> while day <= 7:
    ...     answer = input("今天有好好学习吗?")
    ...     if answer != "有":
    ...         break
    ...     day += 1
    ... else:
    ...     print("非常棒,你已经坚持了7天连续学习!")
    ...
    今天有好好学习吗?有
    今天有好好学习吗?有 
    今天有好好学习吗?有
    今天有好好学习吗?有
    今天有好好学习吗?有
    今天有好好学习吗?有
    今天有好好学习吗?有
    非常棒,你已经坚持了7天连续学习!
    #--------------------
    今天有好好学习吗?有
    今天有好好学习吗?有吧
    
    
    

    3.1.2 循环结构的嵌套

    打印九九乘法表
    用到两个变量,一个是i,一个是j,i是管外层循环,j是管内层循环的,外层循环操纵的是横排的打印,内层循环操纵的是每一列的打印,print()是输出换行

    >>> i = 1
    >>> while i < 9:
    ...     j = 1
    ...     while j <= i:
    ...         print(j, "*", i, "=", j * i, end=" ")
    ...         j += 1
    ...     print()
    ...     i += 1
    ...
    1 * 1 = 1
    1 * 2 = 2 2 * 2 = 4
    1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
    1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
    1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
    1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
    1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
    1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
    
    

    break语句和continue语句,它们只能作用于一层循环体

    >>> day = 1
    >>> hour = 1
    >>> while day <= 7:
    ...     while hour <=8:
    ...         print("我每天一定要学习8个小时")
    ...         hour += 1
    ...         if hour > 1:
    ...             break
    ...     day +=1
    ...
    我每天一定要学习8个小时
    我每天一定要学习8个小时
    我每天一定要学习8个小时
    我每天一定要学习8个小时
    我每天一定要学习8个小时
    我每天一定要学习8个小时
    我每天一定要学习8个小时
    
    

    3.2 for循环

    for 变量 in 可迭代对象:
         statement(s)
    

    可迭代对象:就是指那些元素能够被单独提取出来的对象,比如说字符串“lucky”,每次从里面取出一个字符,依次拿出‘l’‘u’‘c’‘k’'y’5个字符,这个过程就叫做迭代

    >>> for each in "lucky":
    ...     print(each) 
    ...
    l
    u
    c
    k
    y
    
    

    用while实现

    >>> i = 0
    >>> while i < len("lucky"):
    ...     print("lucky"[i])
    ...     i +=1
    ...
    l
    u
    c
    k
    y
    

    range()函数:帮助生成一个数字序列
    用法:

  • range(stop) 生成从0开始到stop(不包含)的整数数列
  • range(start,stop) 指定开始和结束(不包含)的位置
  • range(start,stop,step) step表示路径的跨度
  • >>> for i in range(10):
    ...     print(i)
    ...
    0
    1
    2
    3
    4
    5
    6
    7
    8
    9
    >>> for i in range(5,8): 
    ...    print(i) 
    ...
    5
    6
    7
    >>> for i in range(0,8,2): 
    ...  print(i) 
    ...
    0
    2
    4
    6
    >>> for i in range(8,0,-2): 
    ...    print(i) 
    ...
    8
    6
    4
    2
    
    
    

    计算前1000001项的和

    >>> sum = 0                  
    >>> for i in range(1000001):
    ...     sum +=i
    ...
    >>> print(sum) 
    500000500000
    
    

    3.2.1 for循环的嵌套

    找10以内的素数:

    >>> for n in range(2, 10):
    ...     for x in range(2, n):
    ...         if n % x == 0:
    ...             print(n, "=", x, "*", n // x)
    ...             break
    ...     else:
    ...         print(n, "是一个素数")
    ...
    2 是一个素数
    3 是一个素数
    4 = 2 * 2
    5 是一个素数
    6 = 2 * 3
    7 是一个素数
    8 = 2 * 4
    9 = 3 * 3
    
    

    作者:0x408

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python笔记:分支与循环详解(Day 06)

    发表回复