Python学习——【2.3】for循环
文章目录
- 【2.3】for循环
- 一、for循环基础语法
- (一)基础语法
- ※、练习
- (二)range语句
- ※、练习
- (三)变量作用域
- 二、for循环嵌套使用
- ※、练习
【2.3】for循环
一、for循环基础语法
(一)基础语法
除了while循环语句外,Python还提供了for循环语句。两者能完成的功能差不多,但仍有所侧重:
1.while循环的循环条件是自定义的,自行控制循环条件;
2.for循环是一种轮询机制,是对一批内容进行逐个处理。
for循环语法如下:
for 临时变量 in 待处理数据集:循环满足条件时执行的代码
从待处理数据集中,逐个取出数据并赋给临时变量。
示例(遍历字符串):
# 定义字符串name
name = "zhangsan"# for循环处理字符串
for x in name:print(x)
输出结果如下:
z
h
a
n
g
s
a
n
注意:
1.与while循环不同,for循环是无法定义循环条件的,只能从被处理的数据集中依次取出内容进行处理。
2.所以,理论上讲,Python的for循环无法构建无限循环(因为被处理的数据集不可能无限大)。
3.for循环内的语句,同样需要注意正确缩进。
※、练习
案例:数一数有几个a
定义字符串变量name,内容为:I eat an apple every day.
通过for循环,遍历此字符串,统计有多少个英文字母a。
我的代码
name = "I eat an apple every day."
count = 0for x in name:if x == 'a':count += 1print(f"{name}中共含有:{count}个字母a")
(二)range语句
对于for循环语法:
for 临时变量 in 待处理数据集:循环满足条件时执行的代码
对于语法中的待处理数据集,严格来说,其被称作:序列类型。
序列类型指,其内容可以一个个依次取出的一种类型,包括:
- 字符串;
- 列表;
- 元组;
- 等等。
for循环语句,本质上是遍历序列类型。
range语句的功能:获得一个数字序列
语法一:
range(num)
获取一个从0开始,到num结束(不含num本身)的数字序列。
如range(5)获得的数据是:[0, 1, 2, 3, 4]。
语法二:
range(num1, num2)
获得一个从num1开始,到num2结束(不含num2本身)的数字序列。
如range(5, 10)获得的数据是:[5, 6, 7, 8, 9]。
语法三:
range(num1, num2, step)
获得一个从num1开始,到num2结束(不含num2本身)的数字序列。
数字之间的步长,以step为准(step默认值为1)。
如range(5, 10, 2)获得的数据是:[5, 7, 9]。
※、练习
案例:有几个偶数
定义一个数字变量num,内容随意。
使用range()语句,获取从1到num的序列,使用for循环遍历它。
在遍历的过程中,统计有多少偶数出现。
我的代码
num = 20
count = 0for i in range(1, num + 1):if i % 2 == 0:count += 1print(f"从1到{num}共有{count}个偶数。")
(三)变量作用域
思考一个问题:
for i in range(5):print(i)print(i)
如上代码,思考一下:最下面那行print(i)语句,能否访问到变量i?
答:规范上不允许;实际上可以。
for循环的变量作用域问题
for 临时变量 in 待处理数据集:循环满足条件时执行的代码
回顾for循环的语法,从数据集中取出的数据赋值给临时变量。顾名思义,它为什么叫“临时变量”呢?
临时变量,在编程规范上,作用范围(作用域),只限定在for循环内部。
而如果在for循环外部访问临时变量:
1.实际上是可以访问到的;
2.在编程规范上,是不允许、不建议这么做的。
如何在for循环外部访问“临时变量”
把临时变量在for循环外部先定义一下即可。这样一来,它本身就是for循环外部的一个普通变量,只不过for循环对它进行了若干次操作而已,后续我再访问它的时候也是正常访问一个普通变量。
i = 0for i in range(5):print(i)print(i)
二、for循环嵌套使用
语法如下:
for 临时变量 in 待处理数据集:循环满足条件应做的事情1循环满足条件应做的事情2循环满足条件应做的事情N...for 临时变量 in 待处理数据集:循环满足条件应做的事情1循环满足条件应做的事情2循环满足条件应做的事情N...
示例:
i = 1for i in range(1, 101):print(f"今天是向小美表白的第{i}天,坚持。")for j in range(1, 11):print(f"送给小美的第{j}朵玫瑰花。")print(f"小美,我喜欢你(第{i}天的表白结束。)")print(f"第{i}天,表白成功。")
另外,while和for也可以相互嵌套。
※、练习
案例:for循环打印九九乘法表
通过for循环,输出如下九九乘法表内容:
1 * 1 = 1
1 * 2 = 2 2 * 2 = 4
1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
1 * 9 = 9 2 * 9 = 18 3 * 9 = 27 4 * 9 = 36 5 * 9 = 45 6 * 9 = 54 7 * 9 = 63 8 * 9 = 72 9 * 9 = 81
我的代码
for i in range(1, 10):for j in range(1, i + 1):print(f"{j} * {i} = {i * j}\t", end='')print()
相关文章:
Python学习——【2.3】for循环
文章目录 【2.3】for循环一、for循环基础语法(一)基础语法※、练习 (二)range语句※、练习 (三)变量作用域 二、for循环嵌套使用※、练习 【2.3】for循环 一、for循环基础语法 (一)…...
Element UI:初步探索 Vue.js 的高效 UI 框架
Element UI:初步探索 Vue.js 的高效 UI 框架 一 . ElementUI 基本使用1.1 Element 介绍1.2 Element 快速入门1.3 基础布局1.4 容器布局1.5 表单组件1.6 表格组件1.6.1 基础表格1.6.2 带斑马纹表格1.6.3 带边框表格1.6.4 带状态的表格 1.7 导航栏组件讲解 二 . 学生列…...
React Native防止重复点击
项目中遇到了点击按钮重复提交的问题,防止重复点击首先是想到的是给点击事件一个定时,下次触发的条件是要距离上一次点击的时间大于N秒的之后才能再执行。 // 防重复点击函数 export const preventRepeatPress {lastPressTi1me: 0, // 上次点击时间…...
如何将Git本地代码推送到Gitee云端仓库
如何将Git本地代码推送到Gitee云端仓库 在使用Git进行版本控制时,将本地代码推送到远程仓库是一个基本且重要的操作。本文将详细介绍如何将你的Git本地代码推送到Gitee(码云)云端仓库。Gitee是一个国内非常流行的代码托管平台,类…...
架构师论文备考-论云原生架构及其应用
摘要 2022年3月,我有幸参与了公司的新智慧公交系统的研发工作。该系统基于B/S架构设计,并以多租户SaaS平台化为发展目标,旨在创建一个功能更全面、性能更卓越、稳定性更强、用户体验更佳的公交调度一体化平台。在这一项目中,我主要…...
12.java面向对象:java构造器
构造器 一个类即使什么都不写,也会存在一个方法。 假如我创建了一个类叫Student里面什么都不写,然后使用StudentDemo创建对象,运行没有结果,也没有报错。 public class Student {}public class StudentDemo {public static voi…...
微服务之间的安全通信
在微服务架构中,服务之间的通信是系统的核心部分。然而,由于服务的分布式和独立性,确保它们之间的通信安全至关重要。如果没有适当的安全机制,微服务系统可能会暴露在各种网络攻击和安全漏洞中。本文将讨论几种常见的微服务间安全…...
全面掌握 Jest:从零开始的测试指南(下篇)
在上一篇测试指南中,我们介绍了Jest 的背景、如何初始化项目、常用的匹配器语法以及钩子函数的使用。这一篇篇将继续深入探讨 Jest 的高级特性,包括 Mock 函数、异步请求的处理、Mock 请求的模拟、类的模拟以及定时器的模拟、snapshot 的使用。通过这些技…...
如何利用UML进行领域建模
如何利用UML进行领域建模 领域建模是通过创建抽象模型来反映业务领域中的核心概念、实体及其之间的关系。UML(统一建模语言)是进行领域建模的常用工具,它能帮助我们可视化地设计系统架构和业务逻辑。在这篇讲解中,我们将详细解释…...
Vue实用操作篇-1-第一个 Vue 程序
安装 Vue 非常的简便,只需下载好 Vue 对应的 .js 文件,在 html 中引入 vue.js 即可使用 Vue 下载好了 vue.js 我们便可以编写我们的第一个 vue 程序了 <!doctype html> <html lang"zh-CN"><head><meta charset"utf…...
Qwen2-VL的微调及量化
一、Qwen2-VL简介 Qwen2-VL是Qwen-VL的升级版本,能力更强,性能全面提升。尤其是72B参数的版本更是取了惊人的成绩。它可以读懂不同分辨率和不同长宽比的图片,在 MathVista、DocVQA、RealWorldQA、MTVQA 等基准测试创下全球领先的表现…...
[数据集][目标检测]车窗状态检测车窗开关检测数据集VOC+YOLO格式299张3类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):299 标注数量(xml文件个数):299 标注数量(txt文件个数):299 标注类别…...
自动泊车系统中的YOLOv8 pose关键点车位线检测
自动泊车系统中的YOLOv8关键点车位线检测技术解析 引言 随着智能驾驶技术的快速发展,自动泊车功能成为了现代汽车的重要组成部分。它不仅能够提高驾驶的安全性,还能在一定程度上解决城市停车难的问题。在自动泊车系统中,准确识别停车位的位置…...
Java html生成pdf和图片
在 Java 项目中将 HTML 生成图片是一项常见需求,特别是用于生成报告、预览页面截图等。不同的库和工具在渲染能力、性能以及支持的功能上有所不同。以下是几种主流的技术选型和对比,帮助你选择适合的解决方案。 技术对比总结 技术名称优点缺点适用场景…...
JavaWeb笔记整理——Redis
目录 Redis数据类型 各种数据类型的特点 Redis常用命令 字符串操作命令 哈希操作命令 列表操作命令 集合操作命令 有序集合操作命令 通用命令 在Java中操作Redis Spring Data Redis的使用方式 操作字符串类型的数据 编辑操作hash类型的数据 编辑 操作列表类…...
数据库(mysql)常用命令
一.常见的数据库端口号 Mysql默认端口:3306 oracle 默认端口:1521 Sql server 默认端口:1433 注:Mysql采用 的是C/S(客户端/服务器端)架构 二.sql 语法基础 服务器,数据库,数据表,记录,字段之间的关系: 一台Mysql服务器可以管理多个数据库 一个数据库可以存在多张二维表…...
源网荷储一体化新型电力系统解决方案
风光装机快速增长,加剧电力系统不可控性。截至2023H1,我国风电装机389.21GW,太阳能装机470.67GW,风光合计占总装机的31.76%。其中,2023年H1我国风电新增装机22.99GW,对比22年同期新增12.94GW,同…...
树莓派安装 OpenCV 教程
以下是在树莓派上安装 OpenCV 的教程: 笔者当前Python版本:3.7.3 一、更新树莓派系统 在终端中运行以下命令: sudo apt update sudo apt upgrade二、安装必要的依赖项 安装构建工具和图像 I/O 库: sudo apt install build-e…...
01,大数据总结,zookeeper
1 ,zookeeper :概述 1.1,zookeeper:作用 1 ,大数据领域 :存储配置数据 例如:hadoop 的 ha 配置信息,hbase 的配置信息,都存储在 zookeeper 2 ,应用领…...
伪工厂模式制造敌人
实现效果 1.敌人方实现 敌人代码 using UnityEngine; using UnityEngine.UI;public class EnemyBasics : MonoBehaviour {public int EnemySpeed { get; internal set; }public int EnemyAttackDistance { get; internal set; }public int EnemyChaseDistance { get; interna…...
保姆级教程:在OBBDetection项目中为DOTA数据集定制检测结果可视化(mmdetection 2.2)
深度定制OBBDetection检测结果可视化:DOTA数据集高级实践指南 在旋转目标检测领域,DOTA数据集因其复杂的航拍场景和多角度目标特性,对结果可视化提出了独特挑战。本文将带您从零构建一套完整的可视化解决方案,涵盖从基础配置到高级…...
Qwen3-TTS-Tokenizer-12Hz快速上手:Web界面一键处理音频文件
Qwen3-TTS-Tokenizer-12Hz快速上手:Web界面一键处理音频文件 1. 为什么选择Qwen3-TTS-Tokenizer-12Hz? 想象一下,你正在开发一个语音社交应用,用户上传的音频文件体积大、传输慢,服务器存储成本居高不下。传统压缩算…...
从RGA注意力机制到实战:行人重识别模型核心代码与论文精讲
1. RGA注意力机制原理解析 行人重识别(Person Re-identification)是计算机视觉领域的重要课题,而注意力机制在其中扮演着关键角色。RGA(Relation-aware Global Attention)机制通过建立全局关系感知模型,显…...
DLSS Swapper智能工具:游戏性能优化与版本管理完全指南
DLSS Swapper智能工具:游戏性能优化与版本管理完全指南 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为游戏玩家设计的深度学习超级采样(DLSS)版本管理工具,能够自动扫描…...
避坑指南:MoE训练中AllToAll通信的配置与性能调优(以DeepSpeed为例)
MoE训练实战:AllToAll通信性能调优与DeepSpeed配置避坑指南 当你在500张GPU的集群上启动MoE模型训练时,控制台突然刷出"AllToAll timeout"的红色警告——这不是假设场景,而是去年我们在训练千亿参数模型时真实遭遇的噩梦。AllToAll…...
SystemVerilog实战:在Vivado 2023.1中实现跨文件clog2计算的3种方法
SystemVerilog实战:在Vivado 2023.1中实现跨文件clog2计算的3种方法 当我们将传统Verilog项目迁移到SystemVerilog环境时,经常会遇到$clog2函数的兼容性问题。这个看似简单的对数计算函数,在不同工具链和文件类型中的表现可能大相径庭。特别是…...
SPM12实战:从nii文件元数据解析到精准slice timing配置
1. 理解nii文件与slice timing的基础概念 当你第一次拿到fMRI的nii格式数据时,可能会被这个黑箱般的文件格式搞得一头雾水。nii文件就像是把整个大脑扫描过程打包成一个数字包裹,里面不仅包含三维的脑部图像数据,还隐藏着关键的扫描参数。我在…...
抖音无水印下载完全指南:5分钟掌握批量下载核心技巧
抖音无水印下载完全指南:5分钟掌握批量下载核心技巧 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback support…...
小白也能玩转GLM-4V-9B:免费开源多模态模型部署全流程
小白也能玩转GLM-4V-9B:免费开源多模态模型部署全流程 1. 环境准备与快速部署 1.1 硬件要求与系统配置 GLM-4V-9B作为90亿参数的多模态模型,对硬件有一定要求: GPU推荐:至少24GB显存的显卡(如RTX 4090)…...
FairyGUI在CocosCreator中的高级应用:异步加载、事件处理与性能优化技巧
FairyGUI在CocosCreator中的高阶实战:异步架构设计与性能调优全指南 当你的CocosCreator项目UI复杂度达到临界点时,传统的资源加载和事件处理方式往往会成为性能瓶颈。FairyGUI作为专业UI解决方案,其深度集成能力可以彻底改变这种局面——但真…...
