【Python】循环语句详解:while、for循环及continue、break用法指南

文章目录

  • 条件语句
  • 什么是条件语句
  • 语法格式
  • 缩进和代码块
  • 空语句
  • 练习
  • 1. 输入一个整数,判断是否是奇数
  • 2. 输入一个整数,判断是正数还是负数
  • 3. 判断年份是否是闰年
  • 循环语句
  • while 循环
  • for 循环
  • 练习
  • 1. 打印 1-10 的整数
  • 2. 计算 1-100 的和
  • 3. 计算 5 的阶乘
  • 4. 求 1! + 2! + 3! + 4! + 5!
  • continue 和 break
  • 求若干个数的平均值
  • 条件语句

    什么是条件语句

    条件语句能够表达 “如果 … 否则 …” 这样的语义. 这构成了计算机中基础的逻辑判定
    条件语句也叫做分支语句,表示了接下来的逻辑可能有几种走向

    如果,我认真敲代码,我就很容易找到工作;

  • 这是一个条件,如果条件成立,就会容易找到工作
    否则,我就容易毕业就失业
  • 条件不成立,就容易毕业就失业
  • 条件语句,就是根据一个具体条件的成立与否,来决定接下来的逻辑走向

    语法格式

    Python 中使用 if else 关键字表示条件语句

    (1)if

    if expression: 
    	do_something1
    	do_something2 
    next_something
    
  • 如果 expression 值为 True, 则执行 do_something1, do_something2, next_something
  • 如果 expression 值为 False, 则只执行 next_something, 不执行 do_something1, do_something2
  • (2)if-else

    if expression: 
    	do_something1
    else: 
    	do_something2
    
  • 如果 expression 值为 True, 则执行 do_something1
  • 如果 expression 值为 False, 则执行 do_something2
  • (3)if - elif - else

    if expression1: 
    	do_something1
    elif expression2: 
    	do_something2
    else: 
    	do_something3
    
  • 如果 expression1 值为 True, 则执行 do_something1
  • 如果 expression1 值为 False, 并且 expression2True 则执行 do_something2
  • 如果 expression1 值为 False, 并且 expression2False 则执行 do_something3
  • 注意: Python 中的条件语句写法, 和很多编程语言不太一样

  • if 后面的条件表达式, 没有 ( ), 使用 : 作为结尾
  • if / else 命中条件后要执行的 “语句块”, 使用缩进 (通常是 4 个空格或者 1 个 tab)来表示, 而不是 { }
  • 对于多条件分支, 不是写作 else if, 而是 elif (合体了)
  • 示例: 输入 1 表示愿意认真学习, 输入 2 表示躺平摆烂 `

    choice = input('输入 1 表示认真学习,输入 2 表示躺平')  
      
    if choice == '1':  
        print(('你能找到工作'))  
    elif choice == '2':  
        print('你废了')  
    else:  
        print('输入错误')
    
  • 注意 ifelifelse 后面都有:
  • 缩进和代码块

    Python 中使用缩进表示代码块. 不同级别的缩进, 程序的执行效果是不同的

    a = input('输入第一个整数:')  
    b = input('输入第一个整数:')  
      
    if a == '1':  
        if b == '2':  
            print('aaa')  
        print('bbb')  
    print('ccc')
    
    #运行结果
    输入第一个整数:1
    输入第一个整数:2
    aaa
    bbb
    ccc
    
  • 两个条件都满足才会打印 aaa,因为打印 aaa 的语句有两级缩进,相当于是 if b == '2' 条件内部的代码块
  • 第一个条件满足,就会打印 bbb,因为打印 bbb 的语句只有一级缩进,相当于是 if a== '1' 条件内部的代码块
  • 两个条件即使都不满足,也能打印 ccc,因为打印 ccc 的语句,没有缩进,相当于和两个 if 都无关
  • 当前有多级嵌套的时候,当前的雨具属于哪个代码块,完全取决于缩进的级别

    空语句

    pass 表示空语句, 并不会对程序的执行有任何影响, 只是占个位置, 保持 Python 语法格式符合要求.

    a = int(input("请输入一个整数:"))
    if a != 1: 
    	pass 
    else:    
    	print("hello")
    
  • 虽然希望条件满足的时候,什么都不做,但是由于 Python 对于语法格式,尤其是缩进和代码块要求较高,所以如果什么都不写,是不符合语法要求的,所以必须得写一个 pass 空语句来占位
  • 练习

    1. 输入一个整数,判断是否是奇数

    a = int(input('输入一个整数'))  
      
    if a % 2 == 1:  
        print(f'{a} 是一个奇数')  
    else:  
        print(f'{a} 不是一个奇数')
    
  • 这串代码在 C++/Java 是不太行的,因为在那边 -19 % 2 == -1,和 1 是不相等的。但在 Python 中,-19 % 2 == 1
  • 2. 输入一个整数,判断是正数还是负数

    a = int(input('输入一个整数'))  
      
    if a > 0:  
        print(f'{a} 是正数')  
    elif a < 0:  
        print(f'{a} 是负数')  
    else:  
        print(f'{a} 是 0')
    

    3. 判断年份是否是闰年

    每隔 4 年润一次;如果是世纪闰年,得看能否被 400 整除

    year = int(input('输入一个年份'))  
      
    if year % 100 == 0:  
        # 世纪闰年的判定  
        if year % 400 == 0:  
            print('闰年')  
        else:  
            print('平年')  
              
    else:  
        # 普通闰年的判定  
        if year % 4 == 0:  
            print('闰年')  
        else:  
            print('平年')
    

    循环语句

    while 循环

    基本语法格式:

    while 条件:
    	循环体
    
  • 条件为真,则执行循环体代码
  • 条件为假,则结束循环
  • for 循环

    基本语法格式

    for 循环变量 in 可迭代对象:
    	循环体
    

    注意:

  • pythonfor 和其他语言不同, 没有 “初始化语句”, “循环条件判定语句”, “循环变量更新语句”, 而是更加简单
  • 所谓的 “可迭代对象”, 指的是 “内部包含多个元素, 能一个一个把元素取出来的特殊变量”
  • 练习

    1. 打印 1-10 的整数

    while 循环:

    num = 1
    while num <= 10:
    	print(num)
    	num += 1
    

    包含

    1. 循环变量的初始值
    2. 循环变量的判定条件
    3. 循环变量的更新语句

    for 循环:

    for i in range(1, 11):
    	print(i)
    
  • range 是一个内建函数,起到的效果就是得到一个“可迭代对象”,这个可迭代对象中就包含了一系列的整数
  • range(beg, end) ==> [beg, end)前闭后开区间

  • range 还提供了一个参数“步长”,默认的步长是 1
    例如:打印 2,4,6,8,10

    for i in range(2, 12, 2)
    	print(i)
    

    2. 计算 1-100 的和

    while 循环:

    sum = 0
    num = 0
    while num <= 100:
    	sum = num + sum
    	num +=1
    print(sum)
    

    3. 计算 5 的阶乘

    while 循环:

    result = 1
    n = 1
    while n <= 5:
    	result *= n
    	n += 1
    print(result)
    

    4. 求 1! + 2! + 3! + 4! + 5!

    while 循环:

    num = 1
    sum = 0
    while num <= 5:
    	# 先计算出 num! 是多少,往 sum 上进行累加
    	factorResult = 1
    	i = 1
    	while i <= num:
    		factorResult *= i
    		i += 1
    	sum += factorResult
    print(sum) 
    

    continue 和 break

    continue:立即结束当前这次循环,进入下一次循环
    break:立即结束整个循环

    代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了一只虫.

    for i in range(1, 6):  
        if i == 3:  
            continue  
        print(f'吃完第{i}个包子')
    # 运行结果
    吃完第1个包子
    吃完第2个包子
    吃完第4个包子
    吃完第5个包子
    
    

    代码示例: 模拟吃包子. 吃第 3 个包子的时候吃出了半只虫.(没胃口了)

    for i in range(1, 6):  
        if i == 3:  
            break  
        print(f'吃完第{i}个包子')
    # 运行结果
    吃完第1个包子
    吃完第2个包子
    

    求若干个数的平均值

    theSum = 0  
    count = 0  
    while True:  
        num = input('请输入一个数字:(分号表示输入结束)')  
        if num == ';':  
            break  
        num = float(num)  
        theSum += num  
        count +=1  
      
    print(f'平均值为{theSum/count}')
    
    # 运行结果
    请输入一个数字:(分号表示输入结束)11
    请输入一个数字:(分号表示输入结束)22
    请输入一个数字:(分号表示输入结束)33
    请输入一个数字:(分号表示输入结束);
    平均值为22.0
    
    
  • 光看到 while True 不一定是死循环,关键是要看循环里有没有 break
  • theSum 表示加和的结果;count 表示有几个数字
  • 不能在输入 num 的时候就将 num 的类型转换为 float,不然你最后想结束循环,输入 ; 的时候会报错
  • 不能将 ; 直接输入到一个数字后面,不然也会报错
  • 作者:椰椰椰耶

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【Python】循环语句详解:while、for循环及continue、break用法指南

    发表回复