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.mzph.cn/news/670446.shtml

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

相关文章

【Linux】select、poll、epoll代码

将fd设置成非阻塞 void setNonBlock(int fd) {int res fcntl(fd, F_GETFL);if (res < 0){std::cerr << "错误" << strerror(errno) << std::endl;return;}fcntl(fd, F_SETFL, res | O_NONBLOCK); } select 1.select系统调用是用来让我们的程…

【ESP32+Python】WIFI连接包括固定账号密码+选择WIFI在输入密码

import network import time# 创建WLAN对象 wlan network.WLAN(network.STA_IF)def scan_and_display_wifi_networks():# 激活接口wlan.active(True)# 扫描附近的WiFi网络networks wlan.scan()print("可用的WiFi网络&#xff1a;")for i, net in enumerate(network…

leetcode 744.寻找比目标字母大的最小字母

本题是二分查找板块中的一个简单题目&#xff0c;不过二分查找比较注重于细节。所以我会着重点出来。 思考&#xff1a;从查找字母这一个要求来说&#xff0c;我们要么选择遍历&#xff0c;要么选择二分查找&#xff0c;因为这里是非递减的&#xff0c;那么我们自然的就会想到…

Flink 动态表 (Dynamic Table) 解读

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

鸿蒙 WiFi 扫描流程(2)

接着上篇没有记录完的&#xff0c;我们继续梳理&#xff0c;需要上一篇做基础的请看&#xff1a;鸿蒙 WiFi 扫描流程&#xff08;1&#xff09; 上一篇我们讲到 scan_service.cpp 里面的 SingleScan 方法&#xff0c;继续这个方法往下看&#xff1a; // foundation/communicat…

Python基础知识:Python函数的定义、创建与调用

Python本质上是一种编程语言&#xff0c;通过编写运行代码的方式实现工作目标。读者可以想象&#xff0c;如果针对机器学习或数据统计分析的每种方法或统计量计算都要用户自行编写代码&#xff0c;那么显然在很多情况下是无法满足用户便捷开展分析的要求的&#xff0c;用户体验…

docer compose部署simple-docker

简介 一个看似简陋但是功能足够用的docker管理工具 安装 创建目录 mkdir -p /opt/simple-docker cd /opt/simple-docker 创建并启动容器 编写docker-compose.yml文件,内容如下 version: 3 services: redis: image: redis:latest restart: always web: image: registry.cn-…

HR看了都想点开的简历:吸睛模板+撰写技巧

工作致富的第一步&#xff1a;写一份好的简历。一个独特、简单、清晰的个人简历模板可以更好地吸引雇主的注意和兴趣&#xff0c;并帮助你在许多求职者中脱颖而出。如何制作一份令人印象深刻的简历&#xff1f;巧妙地使用个人简历模板是一个不错的选择。在本文中&#xff0c;我…

线性代数:矩阵的初等变换

目录 一、初等行变换 行阶梯 / 行最简 性质 二、矩阵的标准型 三、矩阵的等价 四、初等矩阵 五、重要性质与定理 一、初等行变换 行阶梯 / 行最简 性质 二、矩阵的标准型 三、矩阵的等价 四、初等矩阵 五、重要性质与定理

Java快速输入输出的实现

在Java编程中&#xff0c;我们经常需要从标准输入读取数据&#xff0c;或者将结果输出到标准输出。为了提高输入输出的效率&#xff0c;我们可以使用快速输入输出的方法。下面是一个示例类Read&#xff0c;它提供了一系列方法来实现快速的输入输出操作。 import java.io.*;cla…

Git - 每次 git pull/push 时需要账号和密码解决方案

问题描述 在提交项目代码或者拉取代码的时候&#xff0c;每次 git 都要输入用户名密码&#xff0c;很烦~ 解决方案 让服务器记下来用户名和密码&#xff0c;此时输入一次&#xff0c;以后再 git push /pull 的时候就不用再输账号和密码了 # 配置 git 记录用户名和密码 git c…

租游戏服务器多少钱1个月?一年价格多少?

游戏服务器租用多少钱一年&#xff1f;1个月游戏服务器费用多少&#xff1f;阿里云游戏服务器26元1个月、腾讯云游戏服务器32元&#xff0c;游戏服务器配置从4核16G、4核32G、8核32G、16核64G等配置可选&#xff0c;可以选择轻量应用服务器和云服务器&#xff0c;阿腾云atengyu…

SpringBoot注解--04--01--注解@Mapper在IDEA中自动注入警告的解决方案

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 问题原因 解决方案方法1&#xff1a;为 Autowired 注解设置required false方法2&#xff1a;用 Resource 替换 Autowired方法3&#xff1a;在Mapper接口上加上Repo…

跟着pink老师前端入门教程-day19

一、移动WEB开发之流式布局 1、 移动端基础 1.1 浏览器现状 PC端常见浏览器&#xff1a;360浏览器、谷歌浏览器、火狐浏览器、QQ浏览器、百度浏览器、搜狗浏览器、IE浏览器。 移动端常见浏览器&#xff1a;UC浏览器&#xff0c;QQ浏览器&#xff0c;欧朋浏览器&#xff0…

论文阅读-Transformer-based language models for software vulnerability detection

「分享了一批文献给你&#xff0c;请您通过浏览器打开 https://www.ivysci.com/web/share/biblios/D2xqz52xQJ4RKceFXAFaDU/ 您还可以一键导入到 ivySCI 文献管理软件阅读&#xff0c;并在论文中引用 」 本文主旨&#xff1a;本文提出了一个系统的框架来利用基于Transformer的语…

Kubernetes实战(二十五)-快速下载k8s.gcr.io,gcr.io,quay.io镜像

1 背景 在云计算和云原生的环境下&#xff0c;不可避免的会使用很多镜像创建容器&#xff0c;其中有些镜像只有谷歌镜像仓库才有&#xff0c;但是国内不可以直接下载谷歌仓库的镜像&#xff0c;下面推荐几种方法&#xff0c; k8s.gcr.io/gcr.io 是谷歌的镜像仓库&#xff0c;…

LaTeX基本公式语法

Markdown支持通过LaTeX插入复杂的数学公式。 行内公式与块级公式 行内公式&#xff1a;使用一对美元符号$...$标记&#xff1a; 欧拉公式可以表示为 e i π 1 0 e^{i\pi} 1 0 eiπ10&#xff0c;这是一个著名的等式。 块级公式&#xff1a;使用一对双美元符号$$...$$标记…

宠物空气净化器适合养猫家庭吗?除猫毛好的猫用空气净化器推荐

宠物掉毛是一个普遍存在的问题&#xff0c;尤其在脱毛季节&#xff0c;毛发似乎无处不在。这给家中的小孩和老人带来了很多麻烦&#xff0c;他们容易流鼻涕、过敏等不适。此外&#xff0c;宠物有时还会不规矩地拉扯和撒尿&#xff0c;这股气味实在是难以忍受。家人们对宠物的存…

Java——Arrays常用方法

Arrays常用方法 Java 中的 Arrays 类提供了一系列静态方法&#xff0c;可以用来操作数组。 1. sort() 方法——默认升序排序 Arrays.sort() 方法用于对数组进行排序。该方法有多个重载版本&#xff0c;可以对不同类型的数组进行排序。 public static void sort(int[] arr) …

算法学习——LeetCode力扣哈希表篇2

算法学习——LeetCode力扣哈希表篇2 454. 四数相加 II 454. 四数相加 II - 力扣&#xff08;LeetCode&#xff09; 描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 &#xff0c;数组长度都是 n &#xff0c;请你计算有多少个元组 (i, j, k, l) 能满足&#xff1a; 0 …