Python 程序设计入门(020)—— 循环结构程序设计(1):for 循环

Python 程序设计入门(020)—— 循环结构程序设计(1):for 循环

目录

  • Python 程序设计入门(020)—— 循环结构程序设计(1):for 循环
    • 一、for 循环的语法
    • 二、for 循环中使用 range() 函数
    • 三、for … else 语句
    • 四、for 表达式

一、for 循环的语法

for 循环是一个计次循环,适用于枚举或遍历序列和迭代对象中的元素,一般应用于循环次数已知的情况下。for 循环的语法格式如下:

for 迭代变量 in 对象:循环体

说明:

(1)迭代变量:用于保存读取出的值。

(2)对象:要遍历或迭代的对象,可以是任何有序的序列对象,比如:字符串、列表、元组等。

(3)循环体:一组需要重复执行的语句。

(4)Python 采用代码缩进和冒号(:)区分代码层次。for 循环表达式行尾的冒号和下一行的缩进(通常采用 4 个空格作为一个缩进量)表示一个代码块的开始,缩进结束则表示一个代码块的结束。使用 for 循环时,必须严格按照缩进规则编写代码。

例如:

(1)提取出字符串中的数字、字母、英文符号与其他字符。

str1 = "ds3,3jH.iee/我fj*32的&号30U,码河。……H54南"
digit = ""
letter = ""
pun = ""
other = ""
for item in str1:if ord(item) in range(48,58):  # 数字的ASCII码为48-57digit += itemelif ord(item) in range(65,91) or ord(item) in range(97,123):  # 大写字母的ASCII码为65-90,小写字母的ASCII码为97-122letter += itemelif ord(item) < 128:  # 去除数字和字母pun += itemelse:  # 其他字符(ASCII码大于127)other += item
print("数字为:",digit)
print("字母为:",letter)
print("英文字符为:",pun)
print("其他字符:",other)程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
数字为: 33323054
字母为: dsjHieefjUH
英文字符为: ,./*&
其他字符: 我的号,码河。……南

(2)遍历列表数据

list1 = ["Tom","Jerry","Kate","Black"]
for item in list1:print(item)
print("="*30)
for item in range(len(list1)):print(list1[item])程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
Tom
Jerry
Kate
Black
==============================
Tom
Jerry
Kate
Black

(3)遍历元组数据

tuple1 = (["Tom",20],["Jerry",22],["Kate",18],["Black",19])
for item in tuple1:print("Name:",item[0],"\tAge:",item[1])
print("="*30)
for item in tuple1:print("姓名:{}\t年龄:{}".format(item[0],item[1]))
print("="*30)
for item in tuple1:for i in item:print(i,end="\t")print()程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
Name: Tom 	Age: 20
Name: Jerry 	Age: 22
Name: Kate 	Age: 18
Name: Black 	Age: 19
==============================
姓名:Tom	年龄:20
姓名:Jerry	年龄:22
姓名:Kate	年龄:18
姓名:Black	年龄:19
==============================
Tom	20	
Jerry	22	
Kate	18	
Black	19	

(4)遍历字典数据

dict1 = {"Tom":20,"Jerry":22,"Kate":18,"Black":19}
for key in dict1.keys():print("Name:{}\tAge:{}".format(key,dict1.get(key)))
print("="*30)
for item in dict1.items():print("Name:{}\tAge:{}".format(item[0],item[1]))程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
Name:Tom	Age:20
Name:Jerry	Age:22
Name:Kate	Age:18
Name:Black	Age:19
==============================
Name:Tom	Age:20
Name:Jerry	Age:22
Name:Kate	Age:18
Name:Black	Age:19

二、for 循环中使用 range() 函数

for 循环通过迭代变量遍历对象中的每个元素。通过索引遍历对象时,经常使用 range() 函数,以生成一系列连续的整数。range() 函数的格式如下:

range([start,] end[, step])
说明:
(1)start:指定计数的起始值。如果省略,则从0开始计数。
(2)end:指定计数的结束值,该参数不能省略,当函数中只有一个参数时即表示技术的结束值。生成的序列不包括结束值。比如 range(5),生成的序列为[0-4]range(1,11),生成的序列为[1-10]。
(3)step:指定步长,即两个数之间的间隔,如果省略则步长为1。
(4)在使用 range() 函数时,如果只有一个参数,则指定的是end;如果有两个参数,则指定的是start和end;指定三个参数时,第一个参数为start,第二个参数为end,第三个参数为step。

例如:

(1)遍历列表元素

list1 = ["Tom","Jerry","Kate","Black"]
for i in list1:print("{}".format(i),end="\t")
print()
print("="*30)
for i in range(len(list1)):print("{}".format(list1[i]),end="\t")程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
Tom	Jerry	Kate	Black	
==============================
Tom	Jerry	Kate	Black	

(2)计算 5!(1*2*3*4*5)

f = 1
for i in range(1,6):f *= i
print("5!结果为:",f)程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
5!结果为: 120

(3)计算 1-100 中所有奇数的和

sum1 = 0
for i in range(1,101,2):sum1 += i
print("1-100的和:",sum1)程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
1-100的和: 2500

三、for … else 语句

for 循环可以添加一个 else 分支语句。只有当 for 循环语句正常执行后,才会执行 else 语句。如果 for 循环语句中遇到 break 或 exit(0) 语句,同时又符合跳出的条件,则不会执行 else 语句。for … else 语句的语法格式如下:

for <迭代变量> in <遍历结构>:语句块1
else:语句块2

说明:else 后面的语句会在 for 循环执行完成的情况下执行。

例如:

(1)else 语句被执行

代码如下:

num = 97
for i in range(2,int(num**0.5) + 1):if num % i == 0:break
else:print("{}是一个素数。".format(num))程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
97是一个素数。

(2)else 语句没有被执行

num = 95
for i in range(2,int(num**0.5) + 1):if num % i == 0:print("{}不是一个素数。".format(num))break
else:print("{}是一个素数。".format(num))程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
95不是一个素数。

四、for 表达式

for 表达式可以利用迭代对象创建新的序列,for 表达式也称为序列递推式。语法格式如下:

[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ]

例如:

(1)求 2-100 之间的素数

list1 = [2]
for i in range(3,101):if 0 not in [i%j for j in range(2,int(i**0.5) + 1)]:list1.append(i)
print(list1)程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

(2)处理列表数据

list1 = ["Tom","Jerry","Kate","Black"]
list2 = ["Name:" + item for item in list1]
print(list2)程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
['Name:Tom', 'Name:Jerry', 'Name:Kate', 'Name:Black']

(3)使用 zip() 函数组合多个列表

list1 = ["Tom","Jerry","Kate","Black"]
list2 = [21,20,18,19]
list3 = [name + ":" + str(age) for name,age in zip(list1,list2)]
print(list3)程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
['Tom:21', 'Jerry:20', 'Kate:18', 'Black:19']

(4)for 表达式中使用条件

list1=[x ** 2 for x in range(1,10) if x % 2 == 0]            # 返回1-9之间偶数的平方组成的列表
num = [2*x if x>=2 and x<=5 else x**2 for x in range(1,11)]  # 如果x的值介于2和5之间返回 2*x,否则返回 x**2
print(list1)
print(num)程序的运行结果为:
===================== RESTART: C:\Python\Python38\First.py =====================
[4, 16, 36, 64]
[1, 4, 6, 8, 10, 36, 49, 64, 81, 100]

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

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

相关文章

ZDH-wemock模块

本次介绍基于版本v5.1.1 目录 项目源码 预览地址 安装包下载地址 wemock模块 wemock模块前端 配置首页 配置mock wemock服务 下载地址 打包 运行 效果展示 项目源码 zdh_web: https://github.com/zhaoyachao/zdh_web zdh_mock: https://github.com/zhaoyachao/z…

TCGA数据下载推荐:R语言easyTCGA包

#使用easyTCGA获取数据 #清空 rm(listls()) gc() # 安装bioconductor上面的R包 options(BioC_mirror"https://mirrors.tuna.tsinghua.edu.cn/bioconductor") if(!require("BiocManager")) install.packages("BiocManager") if(!require("TC…

怎样让音频速度变慢?请跟随以下方法进行操作

怎样让音频速度变慢&#xff1f;在会议录音过程中&#xff0c;经常会遇到主讲人语速过快&#xff0c;导致我们无法清晰听到对方说的内容。如果我们能够减慢音频速度&#xff0c;就能更好地记录对方的讲话内容。此外&#xff0c;在听到快速播放的外语或方言时&#xff0c;我们也…

LA@2@1@线性方程组和简单矩阵方程有解判定定理

文章目录 矩阵方程有解判定定理线性方程组有解判定特化:齐次线性方程组有解判定推广:矩阵方程 A X B AXB AXB有解判定证明推论 矩阵方程有解判定定理 线性方程组有解判定 线性方程组 A x b A\bold{x}\bold{b} Axb有解的充分必要条件是它的系数矩阵A和增广矩阵 ( A , b ) (A,…

机器人的运动范围

声明 该系列文章仅仅展示个人的解题思路和分析过程&#xff0c;并非一定是优质题解&#xff0c;重要的是通过分析和解决问题能让我们逐渐熟练和成长&#xff0c;从新手到大佬离不开一个磨练的过程&#xff0c;加油&#xff01; 原题链接 机器人的运动范围https://leetcode.c…

高等数学教材重难点题型总结(二)导数与微分

本章重点题目较少&#xff0c;除了*标题页没什么特别难的&#xff0c;本帖出于总结性的角度考虑并未囊概全部的*标&#xff0c;最后会出一期*标题的全部内容整理&#xff0c;在攻克重难点的基础上更上一层楼。 1.根据定义求某点处的导数值 2.通过定义证明导数 3.左右导数的相关…

【数据库】P4 过滤数据 WHERE

过滤数据 WHERE 简介WHERE 子句操作符检测单个值案例范围值检查 BETWEEN AND空值检查 NULL 简介 数据库表一般包含大量的数据&#xff0c;很少需要检索表中的所有行。我们只检索所需数据需要指定搜索条件(search criteria)&#xff0c;搜索条件也称为过滤条件(filter conditio…

完全备份、增量备份、差异备份、binlog日志

Top NSD DBA DAY06 案例1&#xff1a;完全备份与恢复案例2&#xff1a;增量备份与恢复案例3&#xff1a;差异备份与恢复案例4&#xff1a;binlog日志 1 案例1&#xff1a;完全备份与恢复 1.1 问题 练习物理备份与恢复练习mysqldump备份与恢复 1.2 方案 在数据库服务器192…

问AI一个严肃的问题

chatgpt的问世再一次掀起了AI的浪潮&#xff0c;其实我一直在想&#xff0c;AI和人类的关系未来会怎样发展&#xff0c;我们未来会怎样和AI相处&#xff0c;AI真的会完全取代人类吗&#xff0c;带着这个问题&#xff0c;我问了下chatgpt&#xff0c;看一看它是怎么看待这个问题…

Modbus工业RFID设备在自动化生产线中的应用

传统半自动化生产线在运作的过程&#xff0c;因为技工的熟练程度&#xff0c;专业素养的不同&#xff0c;在制造过程中过多的人为干预&#xff0c;工厂将很难对每条生产线的产能进行标准化管理和优化。如果半自动化生产线系统是通过前道工序的作业结果和检测结果来决定产品在下…

react实现模拟弹框遮罩的自定义hook

需求描述 点击按钮用于检测鼠标是否命中按钮 代码实现 import React from react; import {useState, useEffect, useRef} from react;// 封装一个hook用来检测当前点击事件是否在某个元素之外 function useClickOutSide(ref,cb) {useEffect(()>{const handleClickOutside…

JMeter接口自动化测试实例—JMeter引用javaScript

Jmeter提供了JSR223 PreProcessor前置处理器&#xff0c;通过该工具融合了Java 8 Nashorn 脚本引擎&#xff0c;可以执行js脚本以便对脚本进行前置处理。其中比较典型的应用就是通过执行js脚本对前端数据进行rsa加密&#xff0c;如登录密码加密。但在这里我就简单的应用javaScr…

PyTorch翻译官网教程-NLP FROM SCRATCH: GENERATING NAMES WITH A CHARACTER-LEVEL RNN

官网链接 NLP From Scratch: Generating Names with a Character-Level RNN — PyTorch Tutorials 2.0.1cu117 documentation 使用字符级RNN生成名字 这是我们关于“NLP From Scratch”的三篇教程中的第二篇。在第一个教程中</intermediate/char_rnn_classification_tutor…

ChatGPT爆火,会给教育带来什么样的影响或者冲击?

近来&#xff0c;人工智能聊天机器人ChatGPT连上热搜&#xff0c;火爆全网。ChatGPT拥有强大的信息整合能力、自然语言处理能力&#xff0c;可谓是“上知天文&#xff0c;下知地理”&#xff0c;而且还能根据要求进行聊天、撰写文章等。 ChatGPT一经推出&#xff0c;便迅速在社…

stop job is running for Advanced key-value store

今天虚拟机磁盘撑满了&#xff0c;本来还能凑合运行&#xff0c;结果重启了下&#xff0c;就报了这个 stop job is running for Advanced key-value store (1min 59s / no limit) 解决方式很简单&#xff0c; 1、虚拟机关电源&#xff0c;任务管理器&#xff0c;关闭VM&#x…

OpenCV-Python中的图像处理-图像直方图

OpenCV-Python中的图像处理-图像直方图 图像直方图统计直方图绘制直方图Matplotlib绘制灰度直方图Matplotlib绘制RGB直方图 使用掩膜统计直方图直方图均衡化Numpy图像直方图均衡化OpenCV中的直方图均衡化CLAHE 有限对比适应性直方图均衡化 2D直方图OpenCV中的2D直方图Numpy中2D…

当Visual Studio遇到 “当前不会命中断点.还没有为该文档加载任何符号“的情况

1.配置项目调试路径&#xff1a; 2.问题解决方案&#xff1a; VS配置调试路径不是默认路径时&#xff0c;需要看生成的文件是否在配置路径内&#xff0c;如果不在的话&#xff0c;可能发生"当前不会命中断点.还没有为该文档加载任何符号"的情况&#xff1b; 右键项…

Kotlin语法

整理关键语法列表如下&#xff1a; https://developer.android.com/kotlin/interop?hlzh-cn官方指导链接 语法形式 说明 println("count ${countnum}")字符串里取值运算 val count 2 var sum 0 类型自动推导 val 定义只读变量&#xff0c;优先 var定义可变变量…

计算机竞赛 python+opencv+深度学习实现二维码识别

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; pythonopencv深度学习实现二维码识别 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;3分 该项目较为新颖&…

HotSpot虚拟机之字节码执行引擎

目录 一、栈帧 1. 栈帧结构 2. 基于栈的解释执行过程 二、方法调用 1. 方法调用指令 2. 分派 三、动态类型语言 四、参考资料 一、栈帧 1. 栈帧结构 栈帧是Java虚拟机栈进行方法调用和执行的数据结构&#xff0c;是方法最基本的执行单元&#xff0c;是栈的元素。一个栈…