Python中的for循环用法详解,一文搞定它

文章目录

  • for循环
    • 1.for循环的基本语法
      • (1)遍历不等长多级容器
      • (2)遍历不等长多级容器
      • (3)遍历等长的容器
    • 2.变量的解包
    • 3.for...else【详细讲解】
    • 4.range对象
    • 5.总结
    • 6.打印 1 ~ 10 跳过5
    • 7.打印菱形小星星

for循环

在Python中,for循环是一种迭代结构,用于遍历可迭代对象(如列表、元组、字符串、字典、集合等)中的元素。

for循环可以解决while循环的局限性
#while循环在遍历数据时的局限性

如下for循环可以实现

lst = [1,2,3,4,5] # ok
i = 0
while i < len(lst):
print(lst[i])
i+=1

用while循环无法实现:

setvar = {“a”,“b”,“c”} # not ok
i = 0
while i < len(setvar):
print(setvar[i])
i+=1
在这里插入图片描述
在这里插入图片描述

1.for循环的基本语法

Iterable 可迭代性数据:1.容器类型数据 2.range对象 3.迭代器
for 变量 in Iterable:
code1

#字符串
container = “北京和深圳温差大概20多度”
#列表
container = [1,2,3,4,4,5]
#元组
container = (“孙开洗”,“孙健”,“孙悟空”)
#集合
container = {“陈璐”,“曹静怡”,“王志国”,“邓鹏”,“合力”}
#字典
container = {“cl”:“风流倜傥”,“cjy”:“拳击选手”,“wzg”:“寻花问柳”,“dp”:“帅气,祖国的栋梁”,“hl”:“你是个好人”}

#遍历数据
for i in container:
print(i)

(1)遍历不等长多级容器

container = [1,2,3,4,("嗄","234",{"马春配","李虎凌","刘子涛"})]
for i in container:# 判断当前元素是否是容器,如果是,进行二次遍历,如果不是,直接打印if isinstance(i,tuple):# ("嗄","234",{"马春配","李虎凌","刘子涛"})for j in i:# 判断当前元素是否是集合,如果是,进行三次遍历,如果不是,直接打印if isinstance(j,set):# j = {"马春配","李虎凌","刘子涛"}for k in j :print(k)else:print(j)# 打印数据else:print(i)

在这里插入图片描述

(2)遍历不等长多级容器

container = [(“刘玉波”,“历史源”,“张光旭”), (“上朝气”,“于朝志”),(“韩瑞晓”,)]
for i in container:
for j in i:
print(j)

(3)遍历等长的容器

container = [(“马云”,“小马哥”,“马春配”) , [“王健林”,“王思聪”,“王志国”],{“王宝强”,“马蓉”,“宋小宝”}]
for a,b,c in container:
print(a,b,c)

在这里插入图片描述

在这里插入图片描述

2.变量的解包

a,b,c = “poi”
a,b = (1,2)
a,b = 1,2
a,b,c = [10,11,12]
a,b = {“林明辉”,“家率先”}
a,b = {“lmh”:“林明辉”,“jsx”:“家率先”}
a,b,c = (“马云”,“小马哥”,“马春配”)
print(a,b,c)
在这里插入图片描述
在这里插入图片描述

3.for…else【详细讲解】

for 临时变量 in 序列:
重复执行的代码

else:
循环正常结束后要执行的代码

所谓else指的是循环正常结束后要执行的代码,即如果是break终止循环的情况。else下方缩进的代码将不执行。

4.range对象

range([开始值,] 结束值 [,步长])
取头舍尾,结束值本身获取不到,获取到它之前的那一个数据

#range(一个值) 默认从0开始
for i in range(5): # 0 ~ 4
print(i)
在这里插入图片描述

#range(二个值)
for i in range(3,8): # 3 4 5 6 7
print(i)

#range(三个值) 正向的从左到右
for i in range(1,11,3): # 1 4 7 10
print(i)

#range(三个值) 逆向的从右到左
for i in range(10,0,-1): # 10 9 8 7 … 1
print(i)

在这里插入图片描述

5.总结

while 一般用于处理复杂的逻辑关系
for 一般用于迭代数据
部分情况下两个循环可以互相转换;

i = 1
while i <= 9:j = 1while j <= i:print("%d*%d=%2d " % (i,j,i*j) ,end="" )j+=1print()    i +=1for i in range(1,10):for j in range(1,i+1):print("%d*%d=%2d " % (i,j,i*j) ,end="" )print()

for循环乘法口诀
在这里插入图片描述

方向二:
在这里插入图片描述

方向三:
在这里插入图片描述

方向四:
在这里插入图片描述

6.打印 1 ~ 10 跳过5

i = 1
while i <= 10:    if i == 5:i += 1continueprint(i)i +=1for i in range(1,11):if i == 5:continueprint(i)

在这里插入图片描述

7.打印菱形小星星

“”"
*
***









****

“”"

“”"
空格 + 星星 + 换行

总行数:
对于最大行任意个星星n ,总行数: n // 2 + 1
13 -> 7
11 -> 6
9 -> 5
7 -> 4

空格:
对于当前行i , 空格数量 = 总行数 - 当前行
1 => 5
2 => 4
3 => 3
4 => 2
5 => 1
6 => 0

星星:
对于当前行i , 星星数量 = 2 * 当前行 - 1
1 => 1
2 => 3
3 => 5
4 => 7
“”"

n = 13
hang = n // 2 + 1
i = 1
while i <= hang:# 打印空格kongge = hang - iprint(" " * kongge, end="")# 打印星星xingxing = 2 * i - 1print("*" * xingxing, end="")# 打印换行print()i += 1i = hang
while i >= 1:# 打印空格kongge = hang - iprint(" " * kongge, end="")# 打印星星xingxing = 2 * i - 1print("*" * xingxing, end="")# 打印换行print()i -= 1

在这里插入图片描述

方法二:
#打印菱形
“”"
*
***









****

“”"

‘’’
最大行星星数n
n = 2hang - 1
kongge = hang - i
xingxing = 2
i -1

‘’’

n = 13
hang = int((n + 1) / 2)
i = 1
while i <= hang:kongge = hang - iprint(" " * kongge,end='')xingixng = 2*i - 1print(f"*"* xingixng,end='')print()i += 1i = hang
while i >= 1:kongge = hang - iprint(" " * kongge,end='')xingixng = 2*i - 1print(f"*"* xingixng,end='')print()i -= 1

在这里插入图片描述

菱形二
‘’’
*





行数 n 星星 n

kongge = n - i
‘’’

hang = 5
i = 1
while i <= hang:kongge = hang - iprint(f" " * kongge,end='')xingxing = iif i == 1:print("*",end='')else:j = 1while j <= 2*i -1:if j % 2 == 1:print("*",end='')else:print(" ",end='')j += 1print()i += 1i = hang
while i >= 1:kongge = hang - iprint(f" " * kongge,end='')xingxing = iif i == 1:print("*",end='')else:j = 1while j <= 2*i -1:if j % 2 == 1:print("*",end='')else:print(" ",end='')j += 1print()i -= 1

在这里插入图片描述

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

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

相关文章

大众日报《大众日报》投稿要求//投稿邮箱

大众日报《大众日报》投稿要求 《大众日报》2000字符&#xff0c;1个月内&#xff0c;可加急。 《大众日报》教育纯新闻稿&#xff0c;500字左右 《大众日报》理论版&#xff0c;主要收思政稿&#xff0c;先看稿子。2000字符&#xff1b;有稿最快一周 山东党机关报纸《大众日…

感悟笔记——2024年2月5日

今日阅读了一篇挺有深度的文章&#xff0c;主要阐述进入职场后的大部分人&#xff0c;是怎么逐渐沦为螺丝钉的?即使起点巨高的优等生&#xff0c;也不可避免。文章指路&#xff1a; 「优等生思维」正在将你变成「螺丝钉」和「老黄牛」从小到大&#xff0c;我一直都是那个「别…

【Java 数据结构】泛型进阶

泛型 1 什么是泛型2 引出泛型2.1 语法 3 泛型类的使用3.1 语法3.2 示例3.3 类型推导(Type Inference) 泛型是如何编译的擦除机制裸类型4 泛型的上界4.1 语法4.2 示例4.3 复杂示例 5 泛型方法5.1 定义语法5.2 示例5.3 使用示例-可以类型推导5.4 使用示例-不使用类型推导 6 通配符…

AI嵌入式K210项目(26)-二维码识别

文章目录 前言一、什么是二维码&#xff1f;二、实验准备三、实验过程四、API接口总结 前言 本章介绍基于机器视觉实现二维码识别&#xff0c;主要包含两个过程&#xff0c;首先检测图像中是否有二维码&#xff0c;如果有则框出并打印二维码信息&#xff1b; 一、什么是二维码…

分享65个节日PPT,总有一款适合您

分享65个节日PPT&#xff0c;总有一款适合您 65个节日PPT下载链接&#xff1a;https://pan.baidu.com/s/1hc1M5gfYK8eDxQVsK8O9xQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 学习知识费力气&#xff0c;收集整理更不易。知…

AE2023 After Effects 2023

After Effects 2023是一款非常强大的视频编辑软件&#xff0c;提供了许多新功能和改进&#xff0c;使得视频编辑和合成更加高效和灵活。以下是一些After Effects 2023的特色功能&#xff1a; 新合成预设列表&#xff1a;After Effects 2023彻底修改了预设列表&#xff0c;使其…

VSTO打包Word插件WPS也支持

启动AdvancedInstallerPortable.exe打包软件 选择“加载项” 选择“office加载项”之后点“创建项目” 四、输入自已的插件名和公司名 任选一种包类型 五、选择包的保存位置 勾选“vsto office加载项” 六、选择要打包的项目debug文件夹 选择相应版本 配置相应环境 选择语言 添…

Axios设置token到请求头的三种方式

1、为什么要携带token? 用户登录时&#xff0c;后端会返回一个token&#xff0c;并且保存到浏览器的localstorage中&#xff0c;可以根据localstorage中的token判断用户是否登录&#xff0c;登录后才有权限访问相关的页面&#xff0c;所以当发送请求时&#xff0c;都要携带to…

LLM(大语言模型)——大模型简介

目录 概述 发展历程 大语言模型的概念 LLM的应用和影响 大模型的能力、特点 大模型的能力 涌现能力&#xff08;energent abilities&#xff09; 作为基座模型支持多元应用的能力 支持对话作为统一入口的能力 大模型的特点 常见大模型 闭源LLM&#xff08;未公开源…

【VSTO开发-WPS】下调试

重点2步&#xff1a; 1、注册表添加 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\WPP\AddinsWL] "项目名称"""2、visual studio 运行后&#xff0c;要选中附加到调试&#xff0c;并指定启动项目。 如PPT输入WPP搜…

2024Node.js零基础教程(小白友好型),nodejs新手到高手,(五)NodeJS入门——http模块

044_http模块_创建HTTP服务端 hello&#xff0c;大家好&#xff0c;那这个小节我们来使用 nodejs 创建一个 http 的服务&#xff0c;有了这个 http 服务之后&#xff0c;我们就可以处理浏览器所发送过来的请求&#xff0c;并且还可以给这个浏览器返回响应。 顺便说一下&#x…

索引文件的建立与查询示例(六)

在上一节&#xff0c;我们将链表写入了文件&#xff0c;共写入5个节点的数据&#xff0c;小计80字节。在这一节&#xff0c;我们试着读取文件中的内容&#xff0c;看是否能展示至屏幕上。 //按块大小进行读取&#xff0c;定义头结点的大小void readfromFile(const char *filena…