Python中的for循环和range()函数用法详解

2023-11-15

引言:

在Python编程中,for循环和range()函数是非常常用的语法结构,用于遍历序列和重复执行一段代码块。本文将详细介绍Python中for循环和range()函数的用法,包括语法、参数、应用场景,并结合实际案例进行分析。

一、for循环的基本用法

在Python中,for循环用于遍历序列(如列表、元组、字符串)或其他可迭代对象(如迭代器、生成器)。其基本语法如下:

for 变量 in 可迭代对象:
    执行语句1
    执行语句2
    ...

其中,变量是每次循环中的元素值,可迭代对象是一个容器或者一个可迭代的对象。在每次循环中,代码块中的语句将被执行。下面是一个简单的例子:

fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
    print(fruit)

运行结果为:

apple
banana
cherry

二、range()函数的用法

range()函数是一个用于生成整数序列的函数,其基本语法如下:

range(start, stop, step)

参数start表示序列的起始值,默认为0;参数stop表示序列的结束值,取不到该值;参数step表示序列中的元素之间的步长,默认为1。下面是一个简单的例子:

for i in range(1, 5):
    print(i)

运行结果为:

1
2
3
4

三、for循环和range()函数的应用场景

  1. 遍历列表
    for循环和range()函数常用于遍历列表,并对列表中的元素进行操作。例如,计算列表中所有元素的和:
numbers = [1, 2, 3, 4, 5]
total = 0
for num in numbers:
    total += num
print(total)

运行结果为:15

  1. 遍历字典
    虽然字典本身是无序的,但是可以通过遍历字典的键或值来进行操作。例如,打印字典中的键和对应的值:
student = {"name": "Alice", "age": 18, "gender": "female"}
for key, value in student.items():
    print(key, value)

运行结果为:

name Alice
age 18
gender female
  1. 迭代器和生成器
    迭代器和生成器是Python中重要的概念,使用for循环和range()函数可以方便地遍历迭代器和生成器。例如,生成Fibonacci数列的生成器:
def fibonacci(n):
    a, b = 0, 1
    for _ in range(n):
        yield a
        a, b = b, a + b

for num in fibonacci(10):
    print(num)

运行结果为:

0
1
1
2
3
5
8
13
21
34

四、案例分析

使用for循环和range()函数实现九九乘法表

九九乘法表是一个经典的编程练习题,可以通过for循环和range()函数来实现。下面是一个简单的例子:

for i in range(1, 10):
    for j in range(1, i+1):
        print(f"{j} x {i} = {i*j}", end="\t")
    print()

运行结果为:

1 x 1 = 1	
1 x 2 = 2	2 x 2 = 4	
1 x 3 = 3	2 x 3 = 6	3 x 3 = 9	
1 x 4 = 4	2 x 4 = 8	3 x 4 = 12	4 x 4 = 16	
1 x 5 = 5	2 x 5 = 10	3 x 5 = 15	4 x 5 = 20	5 x 5 = 25	
1 x 6 = 6	2 x 6 = 12	3 x 6 = 18	4 x 6 = 24	5 x 6 = 30	6 x 6 = 36	
1 x 7 = 7	2 x 7 = 14	3 x 7 = 21	4 x 7 = 28	5 x 7 = 35	6 x 7 = 42	7 x 7 = 49	
1 x 8 = 8	2 x 8 = 16	3 x 8 = 24	4 x 8 = 32	5 x 8 = 40	6 x 8 = 48	7 x 8 = 56	8 x 8 = 64	
1 x 9 = 9	2 x 9 = 18	3 x 9 = 27	4 x 9 = 36	5 x 9 = 45	6 x 9 = 54	7 x 9 = 63	8 x 9 = 72	9 x 9 = 81	

使用for循环和range()函数进行数据统计

for循环和range()函数在数据统计和分析中也是非常有用的工具。下面是一个案例,通过统计学生成绩的平均值和最高分:

scores = [85, 92, 78, 90, 89]
total = 0
max_score = 0

for score in scores:
    total += score
    if score > max_score:
        max_score = score

average = total / len(scores)

print("平均分:", average)
print("最高分:", max_score)

运行结果为:

平均分: 86.8
最高分: 92

使用for循环和range()函数进行文件处理

for循环和range()函数在文件处理中也是经常使用的工具。下面是一个案例,读取文件内容并统计行数:

file_path = "data.txt"
line_count = 0

with open(file_path, "r") as file:
    for _ in file:
        line_count += 1

print("行数:", line_count)

假设data.txt文件内容如下:

Python is a powerful programming language.
It is widely used in various fields.

运行结果为:

行数: 2

使用for循环和range()函数进行图形绘制
for循环和range()函数在图形绘制中也有广泛的应用。下面是一个案例,使用for循环和range()函数绘制直角三角形:

n = 5

for i in range(1, n+1):
    for j in range(1, i+1):
        print("*", end=" ")
    print()

运行结果为:

*
* *
* * *
* * * *
* * * * *

通过这些案例分析,我们可以看到for循环和range()函数在各种场景下的灵活应用。无论是遍历序列、统计数据、处理文件还是绘制图形,for循环和range()函数都能够提供便捷而高效的解决方案。因此,深入理解它们的用法和特性,对于Python编程的学习和实践都是非常重要的。

练习题

练习题:使用for循环和range()函数计算阶乘

阶乘是指从1到n的所有整数的乘积。下面是一个练习题,使用for循环和range()函数计算一个给定数的阶乘:

n = 5
factorial = 1

for i in range(1, n+1):
    factorial *= i

print(factorial)

运行结果为:

120

练习题:使用for循环和range()函数找出列表中的最小值

下面是一个练习题,使用for循环和range()函数找出一个列表中的最小值:

numbers = [15, 8, 27, 10, 6]
min_number = numbers[0]

for i in range(1, len(numbers)):
    if numbers[i] < min_number:
        min_number = numbers[i]

print(min_number)

运行结果为:

6

练习题:使用for循环和range()函数判断一个数是否为质数

质数是指除了1和它本身以外,不能被其他数整除的数。下面是一个练习题,使用for循环和range()函数判断一个数是否为质数:

num = 13
is_prime = True

for i in range(2, num):
    if num % i == 0:
        is_prime = False
        break

if is_prime:
    print(num, "是质数")
else:
    print(num, "不是质数")

运行结果为:

13 是质数

通过完成这些练习题,可以进一步巩固和加深对for循环和range()函数的理解和应用。同时,也能够提升编程能力和解决问题的能力。

结论

通过本文对Python中for循环和range()函数的详细介绍,我们了解了它们的基本用法、应用场景以及案例分析。for循环和range()函数是Python编程中不可或缺的重要工具,能够极大地简化代码的编写和逻辑的实现。熟练掌握它们的用法,将能够提高编程效率和代码质量,为解决实际问题提供更加便利和灵活的方式。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python中的for循环和range()函数用法详解 的相关文章

  • 如何手动计算分类交叉熵?

    当我手动计算二元交叉熵时 我应用 sigmoid 来获取概率 然后使用交叉熵公式并平均结果 logits tf constant 1 1 0 1 2 labels tf constant 0 0 1 1 1 probs tf nn sigm
  • 为什么从 Pandas 1.0 中删除了日期时间?

    我在 pandas 中处理大量数据分析并每天使用 pandas datetime 最近我收到警告 FutureWarning pandas datetime 类已弃用 并将在未来版本中从 pandas 中删除 改为从 datetime 模块
  • 元组有什么用?

    我现在正在学习 Python 课程 我们刚刚介绍了元组作为数据类型之一 我阅读了它的维基百科页面 但是 我无法弄清楚这种数据类型在实践中会有什么用处 我可以提供一些需要一组不可变数字的示例吗 也许是在 Python 中 这与列表有何不同 每
  • Python 中的哈希映射

    我想用Python实现HashMap 我想请求用户输入 根据他的输入 我从 HashMap 中检索一些信息 如果用户输入HashMap的某个键 我想检索相应的值 如何在 Python 中实现此功能 HashMap
  • 如何使用 opencv.omnidir 模块对鱼眼图像进行去扭曲

    我正在尝试使用全向模块 http docs opencv org trunk db dd2 namespacecv 1 1omnidir html用于对鱼眼图像进行扭曲处理Python 我正在尝试适应这一点C 教程 http docs op
  • Python getstatusoutput 替换不返回完整输出

    我发现了这个很棒的替代品getstatusoutput Python 2 中的函数在 Unix 和 Windows 上同样有效 不过我觉得这个方法有问题output被构建 它只返回输出的最后一行 但我不明白为什么 任何帮助都是极好的 def
  • 将 python2.7 与 Emacs 24.3 和 python-mode.el 一起使用

    我是 Emacs 新手 我正在尝试设置我的 python 环境 到目前为止 我已经了解到在 python 缓冲区中使用 python mode el C c C c将当前缓冲区的内容加载到交互式 python shell 中 显然使用了什么
  • Python 2:SMTPServerDisconnected:连接意外关闭

    我在用 Python 发送电子邮件时遇到一个小问题 me my email address you recipient s email address me email protected cdn cgi l email protectio
  • 如何使用python在一个文件中写入多行

    如果我知道要写多少行 我就知道如何将多行写入一个文件 但是 当我想写多行时 问题就出现了 但是 我不知道它们会是多少 我正在开发一个应用程序 它从网站上抓取并将结果的链接存储在文本文件中 但是 我们不知道它会回复多少行 我的代码现在如下 r
  • 如何通过索引列表从 dask 数据框中选择数据?

    我想根据索引列表从 dask 数据框中选择行 我怎样才能做到这一点 Example 假设我有以下 dask 数据框 dict A 1 2 3 4 5 6 7 B 2 3 4 5 6 7 8 index x1 a2 x3 c4 x5 y6 x
  • 如何使用 pybrain 黑盒优化训练神经网络来处理监督数据集?

    我玩了一下 pybrain 了解如何生成具有自定义架构的神经网络 并使用反向传播算法将它们训练为监督数据集 然而 我对优化算法以及任务 学习代理和环境的概念感到困惑 例如 我将如何实现一个神经网络 例如 1 以使用 pybrain 遗传算法
  • pip 列出活动 virtualenv 中的全局包

    将 pip 从 1 4 x 升级到 1 5 后pip freeze输出我的全局安装 系统 软件包的列表 而不是我的 virtualenv 中安装的软件包的列表 我尝试再次降级到 1 4 但这并不能解决我的问题 这有点类似于这个问题 http
  • Python3 在 DirectX 游戏中移动鼠标

    我正在尝试构建一个在 DirectX 游戏中执行一些操作的脚本 除了移动鼠标之外 我一切都正常 是否有任何可用的模块可以移动鼠标 适用于 Windows python 3 Thanks I used pynput https pypi or
  • 从 NumPy ndarray 中选择行

    我只想从 a 中选择某些行NumPy http en wikipedia org wiki NumPy基于第二列中的值的数组 例如 此测试数组的第二列包含从 1 到 10 的整数 gt gt gt test numpy array nump
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • 如何在 Windows 命令行中使用参数运行 Python 脚本

    这是我的蟒蛇hello py script def hello a b print hello and that s your sum sum a b print sum import sys if name main hello sys
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • 根据列 value_counts 过滤数据框(pandas)

    我是第一次尝试熊猫 我有一个包含两列的数据框 user id and string 每个 user id 可能有多个字符串 因此会多次出现在数据帧中 我想从中导出另一个数据框 一个只有那些user ids列出至少有 2 个或更多string
  • 在本地网络上运行 Bokeh 服务器

    我有一个简单的 Bokeh 应用程序 名为app py如下 contents of app py from bokeh client import push session from bokeh embed import server do
  • 模拟pytest中的异常终止

    我的多线程应用程序遇到了一个错误 主线程的任何异常终止 例如 未捕获的异常或某些信号 都会导致其他线程之一死锁 并阻止进程干净退出 我解决了这个问题 但我想添加一个测试来防止回归 但是 我不知道如何在 pytest 中模拟异常终止 如果我只

随机推荐

  • 总离差平方和推导公式

    总离差平方和推导
  • 使用股票程序交易系统应该注意哪些问题?

    尽管使用了程序交易系统 但交易者应该明白 交易的主体是人而不是程序交易系统 交易系统不过是贯彻交易者的思想 执行了交易者的指令而已 交易者仍是交易的主体 这一点不因使用了程序交易系统而改变 交易系统有其高峰期和低谷期 交易系统从大类来分可分
  • stream新特性

    package com jeethink system domain public class Employee public Integer age public String name public Integer getAge ret
  • 十几行代码就可以让你的微信小程序挂掉

    mpvue github 地址请参见 是一个使用Vue js 开发小程序的前端框架 框架基于 Vue js核心 mpvue 修改了 Vue js 的runtime 和compiler 实现 使其可以运行在小程序环境中 从而为小程序开发引入了
  • HTML5

    文章目录 前言 滚动长画幅 实现细节 语义化标签 语言的本地化 前言 本文将分析 AirPods Pro 产品介绍使用的技巧与有趣的第三方库 滚动长画幅 这次AirPods Pro 的产品介绍以一个由用户手动进行滚动推进的长画幅组成 这个长
  • day02-HTML5列表/表格/媒体元素/结构元素

    0目录 补充知识点 HTML5列表 HTML5表格 HTML5媒体元素 HTML5结构元素 1 行内元素和块元素 行内元素 不独占一行 例如 a 标签 strong标签 em标签 块级元素 独占一行 例如 p 标签 h1 h6标签 2 HT
  • Python爬虫系列之爬取猫眼电影,没办法出门就补一下往期电影吧

    前言 今天给大家介绍利用Python爬取并简单分析猫眼电影影评 让我们愉快地开始吧 开发工具 Python版本 3 6 4 相关模块 requests模块 pyecharts模块 jieba模块 scipy模块 wordcloud模块 以及
  • 运行Pangolin时提示以下错误: terminate called after throwing an instance of 'std::runtime_error'

    在运行Pangolin时提示以下错误 terminate called after throwing an instance of std runtime error what Pangolin X11 Unable to retrieve
  • 增强现实代码+注释解析(三)

    1 书名 Mastering OpenCV with Practical Computer Vision Projects 2 章节 Chapter 3 Marker less Augmented Reality 3 书中源代码的最新更新可
  • CustomEditor+ScripableObject 简单用法

    写在前面 看了一整天 算是明白了点 记录一下 要是不知道怎么入门可以看一下 希望能帮到您 Ps 本文一律采用c 进行讲解 用途 自定义inspector 监视器 面板 举个例子 你在ScriptableObejct里声明了一个string类
  • Linux安装——VMware + RedHat

    文章目录 1 安装VMware虚拟机 2 安装RedHat红帽系统 2 1 虚拟机设置 2 2 开启虚拟机 3 cannot updata read only repo 3 1 删除自带yum包 3 2 下载centos版本yum包替换 3
  • Mysql 5.7 / 5.8 性能测试

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 转载于 https my oschina net u 582827 blog 1802981
  • Python训练了个模型,怎么交给Java用呢?

    最近碰到几个人问 如何实现 java 调用他们写好的 Python 应用 模型 这里我就把几种常见的办法做下汇总整理 喜欢本文记得收藏 关注 点赞 注 文末提供技术交流群 推荐文章 李宏毅 机器学习 国语课程 2022 来了 有人把吴恩达老
  • 【应用层】DNS协议

    一 概述 本篇文章基于 计算机网络 和 计算机网络 自顶向下方法 为笔者的读书笔记 主要内容如下所示 DNS提供的服务 互联网的域名结构 DNS服务器的分布 DNS的工作原理 DNS记录 往DNS插入记录 二 DNS提供的服务 域名系统 D
  • (二十九)admin-boot项目之自定义全局拦截404异常

    二十九 自定义全局拦截404异常 项目地址 https gitee com springzb admin boot 如果觉得不错 给个 star 简介 这是一个基础的企业级基础后端脚手架项目 主要由springboot为基础搭建 后期整合一
  • 深入理解Linux内核(第三版)- 进程切换

    为了控制进程的执行 内核必须有能力挂起正在CPU上运行的进程 并恢复以前挂起的某个进程的执行 这种行为被称为进程切换 process switch 任务切换 task switch 或上下文切换 context switch 硬件上下文 尽
  • 5G信令流程详解-45G互操作流程详解

    5G信令流程详解 45G互操作流程详解
  • java打开本机应用程序_Java启动本机应用程序EXE的三种方式

    Java代码 第一种方式 利用cmd方式 执行cmd命令 param command throws IOException public static String executeCmd String command throws IOEx
  • 常见报错01

    1 apt get no process found 如果你在使用apt get命令时出现 apt get no process found 错误消息 可能是以下原因之一 1 没有正在运行的apt get进程 这个错误通常会在你尝试终止一个
  • Python中的for循环和range()函数用法详解

    引言 在Python编程中 for循环和range 函数是非常常用的语法结构 用于遍历序列和重复执行一段代码块 本文将详细介绍Python中for循环和range 函数的用法 包括语法 参数 应用场景 并结合实际案例进行分析 一 for循环