当前位置: 首页 > news >正文

Python开发 ——循环中的 `continue` 语句

1. 基本概念

        `continue` 语句用于跳过当前循环的剩余部分,直接进入下一次循环。这在某些情况下非常有用,比如当特定条件满足时,希望跳过某些操作。

2. 基本示例

for i in range(1, 11):if i % 3 == 0:continueprint(i, end=' ')

        输出:

1 2 4 5 7 8 10

        在这个示例中,当 `i` 可以被 3 整除时,`continue` 语句跳过当前循环的剩余部分,进入下一次循环,因此不会打印 `3`, `6`, 和 `9`。

3. 在不同场景中的应用

3.1 跳过负数

        假设你有一个列表,其中包含正数和负数,你希望打印所有的正数。

numbers = [-1, 2, -3, 4, -5, 6]for number in numbers:if number < 0:continueprint(number, end=' ')

        输出:

2 4 6

3.2 跳过某些特定字符

        假设你有一个字符串,想要打印出除了某些特定字符以外的所有字符。

text = "Hello, World!"for char in text:if char in ",!":continueprint(char, end='')

        输出:

Hello World

3.3 跳过偶数

        假设你想打印1到10之间的奇数。

for i in range(1, 11):if i % 2 == 0:continueprint(i, end=' ')

        输出:

1 3 5 7 9

4. 嵌套循环中的 `continue`

        在嵌套循环中,`continue` 语句只会影响它所在的那一层循环。

for i in range(1, 4):for j in range(1, 4):if j == 2:continueprint(f"i = {i}, j = {j}")

        输出:

i = 1, j = 1
i = 1, j = 3
i = 2, j = 1
i = 2, j = 3
i = 3, j = 1
i = 3, j = 3

        在这个示例中,当 `j` 等于 2 时,内层循环跳过当次循环,外层循环不受影响。

5. `continue` 结合其他条件

        你可以结合多个条件使用 `continue` 语句。例如,跳过所有负数和零的情况。

numbers = [-1, 0, 1, 2, -3, 3, 0, 4]for number in numbers:if number <= 0:continueprint(number, end=' ')

输出:

1 2 3 4

6. 更复杂的条件判断

6.1 结合多个条件

        假设你有一个数字列表,想要打印出所有的正数,且这些正数不是3的倍数。

numbers = [-10, -3, 0, 1, 2, 3, 4, 9, 12]for number in numbers:if number <= 0 or number % 3 == 0:continueprint(number, end=' ')

输出:

1 2 4

6.2 忽略特定字符的输入

        假设你在处理用户输入的字符串,并希望忽略所有的空白字符和标点符号,只保留字母和数字。

input_string = "Hello, World! 123"for char in input_string:if char.isspace() or char in ",!":continueprint(char, end='')

        输出:

HelloWorld123

7. 使用 `continue` 来优化算法

7.1 寻找质数

        在寻找质数的过程中,可以使用 `continue` 来跳过非质数的情况,从而提高效率。

for num in range(2, 20):for i in range(2, num):if num % i == 0:breakelse:print(num, end=' ')

输出:

2 3 5 7 11 13 17 19

7.2 跳过不需要处理的文件

        假设你在处理一批文件,需要跳过所有的临时文件(文件名以 `~` 开头)。

file_list = ["file1.txt", "~tempfile.txt", "file2.txt", "~backup.txt", "file3.txt"]for file_name in file_list:if file_name.startswith("~"):continueprint(f"Processing {file_name}")

        输出:

Processing file1.txt
Processing file2.txt
Processing file3.txt

8. 在生成器中使用 `continue`

        生成器在处理大量数据时非常有用,`continue` 可以用于跳过不需要的项。

def filter_numbers():for num in range(10):if num % 2 == 0:continueyield numfor number in filter_numbers():print(number, end=' ')

        输出:

1 3 5 7 9

9. 与 `try` 块结合使用

        在某些情况下,可能需要处理异常,并在发生特定异常时跳过当前循环。

data = ["123", "abc", "456", "def"]for item in data:try:number = int(item)except ValueError:continueprint(number, end=' ')

        输出:

123 456

10. 忽略特定条件的用户输入

        假设你有一个用户输入的列表,并希望忽略所有为空或仅包含空白字符的输入。

user_inputs = ["hello", " ", "", "world", "python", "   "]for user_input in user_inputs:if not user_input.strip():continueprint(user_input)

        输出:

hello
world
python

11. 在数据清洗中使用 `continue`

        在清洗数据时,常常需要跳过不符合条件的数据。

raw_data = ["John,25", "Doe,abc", "Jane,30", "Smith,"]for entry in raw_data:parts = entry.split(',')if len(parts) != 2 or not parts[1].isdigit():continuename, age = partsprint(f"Name: {name}, Age: {age}")

        输出:

Name: John, Age: 25
Name: Jane, Age: 30

        通过这些综合示例,你可以更好地理解和应用 `continue` 语句,以优化代码,提高程序的健壮性和可读性。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • DNS隧道
  • Kafka 和 RabbitMQ对比
  • 我跟ai学web知识点:“短链接”
  • React@16.x(51)路由v5.x(16)- 手动实现文件目录参考
  • ARM/Linux嵌入式面经(十):极氪
  • 静态网页基础知识
  • 19_谷歌GoogLeNet(InceptionV1)深度学习图像分类算法
  • C++初探究
  • Lambda是个什么东西?如何理解和使用?
  • windows USB 设备驱动开发-处理批传输的静态流
  • Fastapi在docekr中进行部署之后,uvicorn占用的CPU非常高
  • android文本长按复制
  • 网络祭祀人物微信小程序模板源码
  • 互联网接入技术的简单介绍
  • Argo怎么使用?
  • 4个实用的微服务测试策略
  • AzureCon上微软宣布了哪些容器相关的重磅消息
  • CSS魔法堂:Absolute Positioning就这个样
  • Linux编程学习笔记 | Linux多线程学习[2] - 线程的同步
  • Linux链接文件
  • node-glob通配符
  • React-flux杂记
  • 安装python包到指定虚拟环境
  • 对JS继承的一点思考
  • 基于遗传算法的优化问题求解
  • 计算机在识别图像时“看到”了什么?
  • 每天一个设计模式之命令模式
  • 前端工程化(Gulp、Webpack)-webpack
  • 如何学习JavaEE,项目又该如何做?
  • 通过npm或yarn自动生成vue组件
  • 怎样选择前端框架
  • 正则表达式
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • 如何正确理解,内页权重高于首页?
  • $.each()与$(selector).each()
  • (2009.11版)《网络管理员考试 考前冲刺预测卷及考点解析》复习重点
  • (9)STL算法之逆转旋转
  • (补充)IDEA项目结构
  • (二)换源+apt-get基础配置+搜狗拼音
  • (附源码)ssm高校志愿者服务系统 毕业设计 011648
  • (三)c52学习之旅-点亮LED灯
  • (十)Flink Table API 和 SQL 基本概念
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .Net FrameWork总结
  • .NET MVC、 WebAPI、 WebService【ws】、NVVM、WCF、Remoting
  • .NET Project Open Day(2011.11.13)
  • .net知识和学习方法系列(二十一)CLR-枚举
  • @EventListener注解使用说明
  • @RunWith注解作用
  • [.net]官方水晶报表的使用以演示下载
  • [18] Opencv_CUDA应用之 基于颜色的对象检测与跟踪
  • [Android] Amazon 的 android 音视频开发文档
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [BUAA软工]第一次博客作业---阅读《构建之法》