一文读懂Python循环语句

部署运行你感兴趣的模型镜像

在这里插入图片描述

🙋‍♀️ 个人主页颜颜yan_
本期精彩:一文读懂Python循环语句
🏆 热门专栏零基础玩转Python爬虫:手把手教你成为数据猎人
🚀 专栏亮点:零基础友好 | 实战案例丰富 | 循序渐进教学 | 代码详细注释
💡 学习收获:掌握爬虫核心技术,成为数据采集高手,开启你的数据科学之旅!

🔥 如果觉得文章有帮助,别忘了点赞👍 收藏⭐ 关注🚀,你的支持是我创作的最大动力!



前言

循环是编程中最基本也是最强大的控制结构之一,它允许我们重复执行特定的代码块,直到满足某个条件为止。Python提供了两种主要的循环结构:while循环和for循环,以及用于控制循环执行的breakcontinue语句。本文将详细讲解这些循环结构的语法和使用方法,并通过实例展示其在实际编程中的应用。
在这里插入图片描述


while语句

while语句是一种先判断的循环结构,首先测试条件表达式,如果值为true,则执行语句组,如果条件表达式为false,则忽略语句组,继续执行后面的语句。

从流程图可以看出,while循环的执行过程是一个不断判断条件的循环过程:

  1. 首先判断条件表达式
  2. 如果条件为真,执行循环体,然后回到条件判断
  3. 如果条件为假,直接跳出循环

在这里插入图片描述

基本语法

while 条件表达式:
    语句组

基本while循环

# 打印1到5的数字
count = 1
while count <= 5:
    print(count)
    count += 1

在这里插入图片描述

计算累加和

# 计算1到100的和
total = 0
num = 1

while num <= 100:
    total += num
    num += 1
    
print(f"1到100的和是: {total}")

在这里插入图片描述

无限循环

有时我们需要创建无限循环,然后在循环体内部使用条件语句来跳出循环:

# 模拟简单的菜单系统
while True:
    print("\n===== 菜单 =====")
    print("1. 查看信息")
    print("2. 修改设置")
    print("3. 退出程序")
    
    choice = input("请输入选项 (1-3): ")
    
    if choice == '1':
        print("显示信息...")
    elif choice == '2':
        print("修改设置...")
    elif choice == '3':
        print("程序已退出")
        break
    else:
        print("无效的选项,请重试")

在这里插入图片描述

while-else语句

Python的while循环可以包含else子句,当循环条件变为False时,else子句将被执行。

# 查找列表中的元素
numbers = [1, 3, 5, 7, 9]
target = 6
index = 0

while index < len(numbers):
    if numbers[index] == target:
        print(f"找到目标数字{target},位置是{index}")
        break
    index += 1
else:
    print(f"列表中不存在数字{target}")

在这里插入图片描述

for语句

python语言中for语句用于遍历序列类型,序列包括字符串、列表和元组。

for循环的执行流程更加直观:

  1. 获取序列的第一个元素
  2. 判断序列中是否还有元素
  3. 如果有,执行循环体,然后获取下一个元素
  4. 如果没有,结束循环
    在这里插入图片描述

基本语法

for 迭代变量 in 序列:
    语句组

序列表示所有的实现序列的类型都可以使用for循环。迭代变量是从序列中迭代取出的元素。

遍历列表

# 遍历水果列表
fruits = ["苹果", "香蕉", "橙子", "草莓", "葡萄"]
for fruit in fruits:
    print(f"我喜欢吃{fruit}")

在这里插入图片描述

遍历字符串

# 遍历字符串中的字符
message = "Python"
for char in message:
    print(char)

在这里插入图片描述

使用range()函数

range()函数可以生成一个数字序列,常用于for循环中:

# 打印平方数
for i in range(1, 6):  # 生成1到5的序列
    square = i ** 2
    print(f"{i}的平方是{square}")

在这里插入图片描述

遍历字典

# 遍历字典的键值对
student = {
    "name": "李明",
    "age": 18,
    "grade": "高三",
    "score": 95
}

for key, value in student.items():
    print(f"{key}: {value}")

在这里插入图片描述

使用enumerate()函数

enumerate()函数可以同时获取索引和元素:

# 使用enumerate()获取索引和元素
colors = ["红", "橙", "黄", "绿", "蓝", "紫"]
for index, color in enumerate(colors):
    print(f"第{index+1}个颜色是{color}色")

在这里插入图片描述

for-else语句

与while循环类似,for循环也可以带有else子句,当for循环正常结束时(不是通过break跳出)执行else子句:

# 检查列表中的奇数
numbers = [2, 4, 6, 8, 10]
for num in numbers:
    if num % 2 != 0:
        print(f"找到奇数: {num}")
        break
else:
    print("列表中没有奇数")

在这里插入图片描述

break和continue语句

break和continue语句是控制循环执行流程的重要工具,它们的执行流程如下图所示:
在这里插入图片描述

break语句

break语句可用于while或for循环,它的作用是强行退出循环体,不再执行循环体中剩余的语句。

在while循环中使用break

# 查找第一个能被7整除的数
i = 1
while i <= 100:
    if i % 7 == 0:
        print(f"找到了第一个能被7整除的数: {i}")
        break
    i += 1

在这里插入图片描述

在for循环中使用break

# 查找特定元素并停止
names = ["张三", "李四", "王五", "赵六", "钱七"]
search_name = "王五"

for name in names:
    if name == search_name:
        print(f"找到了{search_name}!")
        break
    print(f"检查: {name}")

在这里插入图片描述

continue语句

continue语句用来结束本次循环,跳过循环体中尚未执行的语句,接着进行终止条件的判断,以决定是否继续循环。

在while循环中使用continue

# 打印1到10中除了5以外的所有数字
num = 0
while num < 10:
    num += 1
    if num == 5:
        continue
    print(f"当前数字: {num}")

在这里插入图片描述

在for循环中使用continue

# 打印所有不包含'e'的单词
words = ["apple", "banana", "orange", "grape", "kiwi"]
for word in words:
    if 'e' in word:
        continue
    print(f"{word} 不包含字母'e'")

在这里插入图片描述

进阶应用

嵌套循环

循环可以嵌套使用,即在一个循环内部包含另一个循环。下面通过九九乘法表来演示嵌套循环的应用:

  • 外层循环控制行数(i从1到9)
  • 内层循环控制每行的列数(j从1到i)
  • 每个内层循环完成后,外层循环进入下一次迭代
  • 形成阶梯状的乘法表结构
# 打印乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()  # 换行

在这里插入图片描述

列表推导式

列表推导式是Python的一个强大特性,可以用简洁的语法创建列表。

传统方法 vs 列表推导式对比

1. 创建平方数列表的对比:

传统方法:

squares_traditional = []
for x in range(1, 11):
    squares_traditional.append(x**2)
# 结果: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表推导式:

squares_comprehension = [x**2 for x in range(1, 11)]
# 结果: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

2. 过滤偶数的对比:

传统方法:

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_traditional = []
for x in numbers:
    if x % 2 == 0:
        even_traditional.append(x)
# 结果: [2, 4, 6, 8, 10]

列表推导式:

even_comprehension = [x for x in numbers if x % 2 == 0]
# 结果: [2, 4, 6, 8, 10]

3. 复杂的列表推导式:

# 创建一个包含平方数的字典
square_dict = {x: x**2 for x in range(1, 6)}
print(square_dict)

# 从字符串列表中提取长度大于4的单词并转换为大写
words = ["python", "java", "c", "javascript", "go", "rust"]
long_words = [word.upper() for word in words if len(word) > 4]
print(long_words)

在这里插入图片描述

实际应用案例

斐波那契数列计算

斐波那契数列是一个经典的数学序列,每个数都是前两个数的和。通过for循环,我们可以高效地计算这个数列:

def fibonacci(n):
    """生成斐波那契数列的前n个数"""
    if n <= 0:
        return []
    elif n == 1:
        return [0]
    elif n == 2:
        return [0, 1]
    
    fib_series = [0, 1]  # 初始化前两个数
    
    # 从第3个数开始计算
    for i in range(2, n):
        next_number = fib_series[i-1] + fib_series[i-2]
        fib_series.append(next_number)
    
    return fib_series

# 计算并显示斐波那契数列
fib_15 = fibonacci(15)
print(f"斐波那契数列的前15个数: {fib_15}")

在这里插入图片描述
小知识:斐波那契数列中,相邻两项的比值会逐渐趋向于黄金比例 φ ≈ 1.618,这是一个非常有趣的数学现象。
在这里插入图片描述

文本词频统计分析

在自然语言处理和数据分析中,词频统计是一个常见的任务。通过循环,我们可以高效地统计文本中各个词汇的出现频率。

  1. 遍历文本中的每个字符和单词
  2. 统计每个词汇的出现次数
  3. 过滤和排序高频词汇
  4. 生成可视化数据
def chinese_word_frequency(text):
    """统计中文文本中各词语出现的频率"""
    import re
    
    # 定义常见的中文词汇模式
    chinese_words = re.findall(r'[\u4e00-\u9fff]+', text)
    english_words = re.findall(r'[a-zA-Z]+', text)
    
    # 进一步分析中文词汇(简单的2-3字词分割)
    analyzed_words = []
    for word in chinese_words:
        if len(word) >= 2:
            # 提取常见词汇
            for i in range(len(word) - 1):
                if i + 2 <= len(word):
                    analyzed_words.append(word[i:i+2])
                if i + 3 <= len(word):
                    analyzed_words.append(word[i:i+3])
    
    # 添加英文单词
    for word in english_words:
        analyzed_words.append(word.lower())
    
    # 统计频率
    frequency = {}
    for word in analyzed_words:
        if len(word) >= 2:  # 只考虑长度>=2的词
            frequency[word] = frequency.get(word, 0) + 1
    
    return frequency

# 测试文本
sample_text = """
Python是一种广泛使用的高级编程语言,Python的设计具有很强的可读性。
相比其他语言经常使用英文关键字,其他语言的一些标点符号,Python具有相对简单的语法。
相对其他动态类型语言,Python拥有相对较少的关键字。Python的核心哲学总结起来就是:
优美胜于丑陋,明了胜于晦涩,简洁胜于复杂。Python开发者的哲学是用一种方法,
最好是只有一种方法来做一件事。Python是一种解释型语言,Python可以应用于多个领域。
"""

# 统计单词频率
word_count = chinese_word_frequency(sample_text)

# 过滤高频词并排序
frequent_words = {word: count for word, count in word_count.items() if count >= 2}
sorted_words = sorted(frequent_words.items(), key=lambda x: x[1], reverse=True)

print("高频词汇统计结果(出现次数 ≥ 2):")
for word, count in sorted_words:
    print(f"'{word}' 出现了 {count} 次")

在这里插入图片描述


🎯 与我一起学习成长

掌握循环结构是编程的基础,它们使得我们能够高效地处理重复任务和数据集合。通过本文的示例和案例,希望您对Python的循环结构有了更深入的了解,并能在实际开发中灵活运用这些知识。循环不仅是编程的基础工具,更是解决复杂问题的强大武器!🐍✨

我是颜颜yan_,一名专注于技术分享的博主。如果这篇文章对你有帮助,欢迎关注我的更多精彩内容!

📚 专栏推荐

💬 期待与你交流

  • 有疑问?欢迎在评论区留言讨论
  • 想深入学习?关注我获取更多优质教程
  • 觉得有用?别忘了点赞👍 收藏⭐ 关注🚀

在这里插入图片描述

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### Python入门教程 #### 一、Python简介 作为一种高级编程语言,Python因其简洁清晰的语法而广受欢迎。这种特性使得它成为初学者的理想选择[^1]。 #### 二、基础语法规则 ##### 变量与数据类型 变量无需声明即可直接赋值使用,在Python中支持多种基本的数据类型: - 整数(int): 表示整数值, 如 `a = 10`。 - 浮点数(float): 表示带有小数部分的实数, 如 `b = 3.14`。 - 字符串(str): 使用单引号或双引号包裹的一系列字符, 如 `c = "hello"` 或者 `d = 'world'`。 - 布尔(bool): True 和 False 是唯一的两个布尔值。 ```python integer_example = 123 float_example = 123.456 string_example = "example" boolean_example = True ``` ##### 控制结构 控制流语句用于改变程序执行顺序,主要包括条件判断(if/elif/else)和循环(for/while): ```python if condition: do_something() elif another_condition: do_another_thing() else: final_action() for item in iterable_object: process(item) while expression_is_true: keep_doing_this() ``` ##### 函数定义 函数是一段具有特定功能可重复使用的代码块: ```python def function_name(parameters): """文档字符串""" # 执行逻辑... return result ``` #### 三、核心概念解析 ##### 面向对象编程(OOP) 面向对象是一种重要的编程范式,通过类(class)来创建自定义类型的实例(object),从而实现属性(attribute)和方法(method)封装。 ```python class ClassName: def __init__(self, param1, param2): self.attr1 = param1 self.attr2 = param2 def method(self): pass ``` ##### 异常处理机制 异常是指在程序运行过程中发生的错误情况,可以利用try-except-finally语句捕获并妥善处理这些意外状况。 ```python try: risky_operation() except SpecificException as e: handle_exception(e) finally: cleanup_resources() ```
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

颜颜yan_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值