【Python】循环语句(while、for)、continue、break

简介: 【Python】循环语句(while、for)、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,不然你最后想结束循环,输入 ; 的时候会报错
  • 不能将 ; 直接输入到一个数字后面,不然也会报错


相关文章
|
17天前
|
人工智能 Python
[oeasy]python039_for循环_循环遍历_循环变量
本文回顾了上一次的内容,介绍了小写和大写字母的序号范围,并通过 `range` 函数生成了 `for` 循环。重点讲解了 `range(start, stop)` 的使用方法,解释了为什么不会输出 `stop` 值,并通过示例展示了如何遍历小写和大写字母的序号。最后总结了 `range` 函数的结构和 `for` 循环的使用技巧。
29 4
|
23天前
|
Java 索引 Python
【10月更文挑战第19天】「Mac上学Python 30」基础篇11 - 高级循环技巧与应用
本篇将介绍更深入的循环应用与优化方法,重点放在高级技巧和场景实践。我们将讲解enumerate()与zip()的妙用、迭代器与生成器、并发循环以及性能优化技巧。这些内容将帮助您编写更高效、结构更合理的代码。
59 5
|
1月前
|
数据安全/隐私保护 Python
Python循环语句
【10月更文挑战第7天】
|
1月前
|
索引 Python
Python 循环语句的高级应用与技巧
在 Python 中,循环语句是实现重复操作的关键工具。本文深入探讨了循环的高级应用与技巧,包括遍历字典的键值对、同时遍历多个序列、使用 `zip` 函数、处理复杂的 `while` 循环条件、嵌套循环的应用、使用 `break` 和 `continue` 控制循环流程、利用 `enumerate` 获取索引以及结合列表推导式简化循环逻辑。这些技巧有助于更高效地编写 Python 代码。
16 0
|
6月前
|
Python
Python中continue和break的区别
Python的`continue`和`break`关键字用于控制循环流程。`continue`跳过当前迭代的剩余代码,进入下一次循环,常用于忽略某些特定迭代。而`break`则终止当前循环,直接退出循环体。两者都只能在循环中使用,选择使用哪个取决于具体需求,以实现更简洁高效的代码。了解它们的区别有助于更好地控制循环流程。
86 0
|
3天前
|
机器学习/深度学习 人工智能 TensorFlow
人工智能浪潮下的自我修养:从Python编程入门到深度学习实践
【10月更文挑战第39天】本文旨在为初学者提供一条清晰的道路,从Python基础语法的掌握到深度学习领域的探索。我们将通过简明扼要的语言和实际代码示例,引导读者逐步构建起对人工智能技术的理解和应用能力。文章不仅涵盖Python编程的基础,还将深入探讨深度学习的核心概念、工具和实战技巧,帮助读者在AI的浪潮中找到自己的位置。
|
3天前
|
机器学习/深度学习 数据挖掘 Python
Python编程入门——从零开始构建你的第一个程序
【10月更文挑战第39天】本文将带你走进Python的世界,通过简单易懂的语言和实际的代码示例,让你快速掌握Python的基础语法。无论你是编程新手还是想学习新语言的老手,这篇文章都能为你提供有价值的信息。我们将从变量、数据类型、控制结构等基本概念入手,逐步过渡到函数、模块等高级特性,最后通过一个综合示例来巩固所学知识。让我们一起开启Python编程之旅吧!
|
3天前
|
存储 Python
Python编程入门:打造你的第一个程序
【10月更文挑战第39天】在数字时代的浪潮中,掌握编程技能如同掌握了一门新时代的语言。本文将引导你步入Python编程的奇妙世界,从零基础出发,一步步构建你的第一个程序。我们将探索编程的基本概念,通过简单示例理解变量、数据类型和控制结构,最终实现一个简单的猜数字游戏。这不仅是一段代码的旅程,更是逻辑思维和问题解决能力的锻炼之旅。准备好了吗?让我们开始吧!
|
5天前
|
设计模式 算法 搜索推荐
Python编程中的设计模式:优雅解决复杂问题的钥匙####
本文将探讨Python编程中几种核心设计模式的应用实例与优势,不涉及具体代码示例,而是聚焦于每种模式背后的设计理念、适用场景及其如何促进代码的可维护性和扩展性。通过理解这些设计模式,开发者可以更加高效地构建软件系统,实现代码复用,提升项目质量。 ####