【Python入门】Python循环语句(for循环的基础语法)

news2024/12/23 22:07:50

在这里插入图片描述
前言


Python循环语句

  • 1. for循环的基础语法
    • 1.1 for循环
    • 1.2 程序中的for循环
    • 1.3 for循环语句
    • 1.4 for循环注意点
    • 1.5 总结
    • 1.6 练习案例:数一数有几个a
  • 2. range语句
    • 2.1 range语句讲解
    • 2.2 for循环遍历range序列
    • 2.3 总结
    • 2.4 练习案例:有几个偶数
  • 3. 变量作用域
    • 3.1 思考
    • 3.2 for循环的变量作用域
    • 3.3 总结

1. for循环的基础语法

1.1 for循环

除了while循环语句外,Python同样提供了for循环语句。
两者能完成的功能基本差不多,但仍有一些区别:

  1. while循环的循环条件是自定义的,自行控制循环条件
  2. for循环是一种”轮询”机制,是对一批内容进行”逐个处理”

for循环就是将”待办事项”逐个完成的循环机制

1.2 程序中的for循环

for 临时变量 in 待处理数据集: 
        循环满足条件时执行的代码

从待处理数据集中:逐个取出数据赋值给临时变量

1.3 for循环语句

遍历字符串

# 定义字符串name
hopy = ”reaipaobu”
# for循环处理字符串
for x in hopy: 
       print(x)

运行结果如下:

r
e
a
i
p
a
o
b
u

可以看出,for循环是将字符串的内容:依次取出
所以,for循环也被称之为:遍历循环

1.4 for循环注意点

# 定义字符串name
name = ”itheima”
# for循环处理字符串
for x in name: 
       print(x)

同while循环不同,for循环是无法定义循环条件的。
只能从被处理的数据集中,依次取出内容进行处理。

所以,理论上讲,Python的for循环无法构建无限循环(被处理的数据集不可能无限大)

1.5 总结

  1. for循环的语法格式是:在这里插入图片描述
  2. for循环的注意点
  • 无法定义循环条件,只能被动取出数据处理
  • 要注意,循环内的语句,需要有空格缩进

1.6 练习案例:数一数有几个a

定义字符串变量name,内容为:“itheima is a brand of itcast”
通过for循环,遍历此字符串,统计有多少个英文字母:“a”
提示:

  1. 计数可以在循环外定义一个整数类型变量用来做累加计数
  2. 判断是否为字母"a",可以通过if语句结合比较运算符来完成

演示for循环的练习题:数一数有几个a

# 统计如下字符串中,有多少个字母a
name = "reaipaobu is a brand of itcast"

# 定义一个变量,用来统计有多少个a
count = 0

# for 循环统计
# for 临时变量 in 被统计的数据:
for x in name:
    if x == "a":
        count += 1

print(f"被统计的字符串中有{count}个a")

代码结果:

被统计的字符串中有5个a。

2. range语句

2.1 range语句讲解

or 临时变量 in 待处理数据集(可迭代对象): 
        循环满足条件时执行的代码

语法中的:待处理数据集,严格来说,称之为:可迭代类型
可迭代类型指,其内容可以一个个依次取出的一种类型,包括:

  • 字符串
  • 列表
  • 元组

目前我们只学习了字符串类型,其余类型在后续章节会详细学习它们
for循环语句,本质上是遍历:可迭代对象。
尽管除字符串外,其它可迭代类型目前没学习到,但不妨碍我们通过学习range语句,获得一个简单的数字序列(可迭代类型的一种)
语法1:
获取一个从0开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0, 1, 2, 3, 4]
代码所示:

# range语法1 range(num)
for x in range(10):
    print(x)

代码结果:

0
1
2
3
4
5
6
7
8
9

语法2:
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
如,range(5, 10)取得的数据是:[5, 6, 7, 8, 9]
代码所示:

# range 语法2 range(num1, num2)
for x in range(5, 10):
#     # 从5开始,到10结束(不包含10本身)的一个数字序列,数字之间间隔是1
    print(x)

代码结果:

5
6
7
8
9

语法3:
获得一个从num1开始,到num2结束的数字序列(不含num2本身)
数字之间的步长,以step为准(step默认为1)
如,range(5, 10, 2)取得的数据是:[5, 7, 9]
代码所示:

# range 语法3 range(num1, num2, step)
for x in range(5, 10, 2):
#     # 从5开始,到10结束(不包含10本身)的一个数字序列,数字之间的间隔是2
    print(x)

代码结果:

5
7
9

2.2 for循环遍历range序列

在这里插入图片描述
运行结果如下:
在这里插入图片描述

2.3 总结

  1. range语句的功能是:
    获得一个数字序列(可迭代类型的一种)
  2. range语句的语法格式:
    语法1:
    语法2:
    语法3:
  3. range语句的注意事项:
  • 语法1从0开始,到num结束(不含num本身)
  • 语法2从num1开始,到num2结束(不含num2本身)
  • 语法3从num1开始,到num2结束(不含num2本身),步长以step值为准

range的用途很多,多数用在for循环场景

2.4 练习案例:有几个偶数

定义一个数字变量num,内容随意
并使用range()语句,获取从1到num的序列,使用for循环遍历它。
在遍历的过程中,统计有多少偶数出现
提示:

  1. 序列可以使用:range(1, num)得到
  2. 偶数通过if来判断,判断数字余2是否为0即可

3. 变量作用域

3.1 思考

在这里插入图片描述

如图代码,思考一下:
红框中的print语句,能否访问到变量 i ?
规范上:不允许
实际上:可以

3.2 for循环的变量作用域

在这里插入图片描述
回看for循环的语法,我们会发现,将从数据集(序列)中取出的数据赋值给:临时变量
为什么是临时的呢?

临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部

如果在for循环外部访问临时变量:

  1. 实际上是可以访问到的
  2. 在编程规范上,是不允许、不建议这么做的

如果实在需要在循环外访问循环内的临时变量,可以在循环外预先定义

在这里插入图片描述
如图,每一次循环的时候,都会将取出的值赋予i变量。

  1. 由于i变量是在循环之前(外)定义的
  2. 在循环外访问i变量是合理的、允许的

3.3 总结

  1. for循环中的临时变量,其作用域限定为:
    循环内
  2. 这种限定:
  • 是编程规范的限定,而非强制限定
  • 不遵守也能正常运行,但是不建议这样做
  • 如需访问临时变量,可以预先在循环外定义它

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/618346.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

RFID软件:简介、功能和应用范围

在当今快节奏的商业环境中,RFID(射频识别)技术已经成为物流、供应链和库存管理等领域中不可或缺的工具。本文将向您介绍RFID软件的基本知识,探讨其功能和广泛应用的范围。 第一部分:RFID软件简介 RFID软件是一种应用…

【开源项目】SofaBoot实现Spring Bean 异步初始化的源码拆解

使用场景 在实际使用 Spring/Spring Boot 开发中,一些 Bean 在初始化过程中执行准备操作,如拉取远程配置、初始化数据源等等。在应用启动期间,这些 Bean 会增加 Spring 上下文刷新时间,导致应用启动耗时变长。 Demo展示 Spring…

苹果 Apple 发布的 AR 头显 Vision Pro 介绍

苹果今天凌晨的发布会,隆重推出了用了8 年时间研发的AR(增强现实)头戴显示器 Vision Pro。作为苹果 AR系列的最新成员,为用户带来了前所未有的沉浸式增强现实体验。 硬件 12个摄像头 ,包括苹果首个 3D 相机&#xff0c…

【容器云架构】Calico 组件架构

Calico 组件 下图显示了 Kubernetes 的必需和可选 Calico 组件,具有网络和网络策略的本地部署。 Calico 组件 Calico API serverFelixBIRDconfdDikastesCNI pluginDatastore pluginIPAM pluginkube-controllersTyphacalicoctl 云编排器的插件 Plugins for cloud orc…

【vulnhub靶场】node 1

文章目录 前言开启靶机信息收集二层发现三层信息收集 攻击利用web信息收集权限提升后渗透 前言 描述:Node是一个中等级别的boot2root挑战,最初是为HackTheBox创建的。有两个标志可供查找(用户和根标志)和多种不同的技术可供使用。…

IDEA启动图片更改替换(2021.1/2022及其之后的版本)

目录 先说2022.1及其之后的版本: 2022.1之前的版本: 2022其他版本修改方法 最近一直在整理接口数据,盯屏幕太久了,然后打开IDEA突然感觉这个启动页面好刺眼,正好整理工作做完了,中午有空就找了下方法,发现了不少坑,…

项目管理中,如何减少项目风险?

我们公司,有一个项目已经做了一年多了,并且与客户进行了多次沟通,项目需求变更,范围扩大等,项目一直不能完成,客户生气,领导一直催,决定换一个项目经理把,领导让一个同事…

《vue 实践之 three.js 学习》

目录 three.js 学习包安装导包基础API学习Three.js 三要素【图文展示】 透视相机three.js 渲染器 之 WebGLRendererWebGLRenderer 实例化 three.js 学习 个人博客地址: 包安装 "three": "^0.153.0"命令:npm install --save three –…

模板初阶(C++)

目录 泛型编程 引入 模板 函数模板 函数模板的概念 函数模板格式 函数模板的原理 函数模板的实例化 隐式实例化 显式实例化 模板参数的匹配原则 类模板 类模板的定义格式 类模板的实例化 泛型编程 引入 我们在实际编写代码中,经常会遇到不同的类型需要实现同一种功…

使用纯C#语言实现4K图像平移显示性能的潜能测试

在介绍“熊猫视图.Net图形控件”系列文章中, 【“熊猫视图.Net图形控件”介绍链接】https://blog.csdn.net/mosangbike/article/details/126026801有对显示图像文件的测试结果,当时测试的不太严谨。今天抽时间详细测试了一下。 从网上找了一张Jpg图像作…

windows下安装配置 elasticsearch | kibana | analysis-ik

简介 elasticsearch是一款非常强大的开源搜索引擎,支持Restful风格,可以帮助我们从海量的数据中快速找到用户所需要的内容。是当前最流的开源企业级搜索引擎,能够达到近实时搜索、稳定、可靠、快速、安装使用方便。 elasticsearch结合kibana、…

wireshark使用-(2)运行时自动分包

现如今的网络通信分析基本都逃不开wireshark这个工具,而运行长时间的网络包往往过大,我们只想关注指定时间段的网络包,所以分包就显得尤为重要,好在wireshark工具自带这个功能,方便运行时能自动按时间,按大…

05.JavaWeb-Servlet(上)

目录 1.Servlet基础 1.1 Servlet概述 1.2 Servlet开发入门 1.2.1 Servlet接口及实现类 1.2.2实现Servlet程序 2.Servlet的请求与响应 2.1HttpServletRequest 2.1.1获取请求参数(常用) 2.1.2 获取请求方法 2.1.3获取与请求关联的会话对象 2.1.…

Vue总结

这里写自定义目录标题 一、Vue基本结介绍1、Vue 项目示例2、Vue 开发工具3、HTML 基本结构4、HTML 常用标签二、vue常用指令1、v-model 双向绑定a、v-model 修饰符2、插值3、条件渲染1、v-if 和 v-show 区别4、v-on 简介5、属性绑定6、 v-for 简介三、vue环境安装1、Vue 脚手架…

node基础与fs模块学习笔记

了解Node.js与内置模块 什么是Node.js? Node.js is an open-source, cross-platform JavaScript runtime environment. node.js是一个开源跨平台的js运行环境。 前端的运行环境就是浏览器。 注意:Node.js中无法调用DOM和BOM等浏览器内置API。 Node.js中的顶级对象…

【大数据工具】Zookeeper 分布式集群和伪分布式安装

Zookeeper 安装 zookeeper 安装包下载地址:https://archive.apache.org/dist/zookeeper/ 1. 伪分布式部署 说明:伪分布即在一台服务器上通过不同端口模拟出分布式集群的效果,分布式一般 3 台起,一主两从。 说明:伪…

华为OD机试真题 Java 实现【斗地主之顺子】【2023 B卷 100分】,附详细解题思路

一、题目描述 在斗地主扑克牌游戏中,扑克牌由小到大的顺序为: 3.4.5.6.7.8.9.10.J.Q.K A.2,玩家可以出的扑克牌阵型有: 单张、对子、顺子、飞机、炸弹等。 其中顺子的出牌规则为: 由至少 5 张由小到大连续递增的扑克牌组成,且不能包含 2。 …

RK1126 NPU yolov5 6.2

基于 rk npu , 实现 yolov5 6.2 模型推理 实现过程 ⚡️​ 编译 opencv 需根据自己路径修改. cmake -D CMAKE_BUILD_TYPERELEASE \-D CMAKE_C_COMPILER./gcc-arm-8.3-2019.02-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc \-D CMAKE_CXX_COMPILER./gc…

VMware虚拟机Ubuntu磁盘空间扩充详细教程

文章目录 一、写在前面二、具体步骤三、最后总结 一、写在前面 最近在做Linux内核相关实验的时候,发现有时候我们编译出来的内核太大,如果VMware虚拟机空间分配不足会导致编译Linux内核失败,经过摸索,发现可以扩充Ubuntu的磁盘空间…

【Rust日报】2023-06-05 Effective Rust: 35种提升 Rust 代码的方法

Effective Rust: 35种提升Rust代码的方法 这是一本关于 Rust 的最佳实践指南的电子书,其中包含了很多 Rust 编程的技巧和建议。 这篇指南分为多个章节,涵盖了 Rust 编程的各个方面, 他分别从 类型, 概念, 依赖, 工具 等几大类上阐述了 35 种提高 Rust 代…