Python for与while循环的介绍和对应练习题的巩固

for循环

  • 重复执行同一段代码就是循环

循环列表

  • for val in list_name:

  • list_num = [1,2,3,4,5,6,7,8,9]
    for i in list_num:print(i)
    

    image-20240102150306817

  • image-20240102150241816

代码执行顺序

从上往下依次执行

遍历

通过某种顺序把某种集合所有元素都访问一遍

list_food={"火锅","烧烤","张晗","牛魔"}
for food in list_food:print(f"我喜欢吃{food}")

image-20240102151252913

range整数列表

一个参数

  • range(n) 表示[0,n)区间的数字,不包含n

  • #------------range()-------------------
    for i in range(5):print(i)
    
  • image-20240102152617677

两个参数

  • range(a,b) 表示[a,b)区间的数字,不包含n

  • for i in range(1,5):print(i)
    

    image-20240102152803866

三个参数

  • range(a,b,c) 表示[a,b)区间的数字,且间隔c,不包含n,不大于b

  • for i in range(1,10,2): #--->1,3,5,7,9print(i)
    

    image-20240102152914504

while循环

  • while循环是一种控制流循环语句,通常用于不知道具体循环次数的情况

  • while [执行条件]:

  • #---------while--------------------
    num = 0
    while num<10:print(num)num+=1
    
  • image-20240102160507230

break与continue

  • break跳出或者说是终止当前整个循环,循环终止
  • continue跳过本次循环,进行下次循环,实际循环并没有被终止

循环与列表的练习

1470. 重新排列数组

给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。

请你将数组按 [x1,y1,x2,y2,...,xn,yn] 格式重新排列,返回重排后的数组。

示例 1:

输入:nums = [2,5,1,3,4,7], n = 3
输出:[2,3,5,4,1,7] 
解释:由于 x1=2, x2=5, x3=1, y1=3, y2=4, y3=7 ,所以答案为 [2,3,5,4,1,7]

示例 2:

输入:nums = [1,2,3,4,4,3,2,1], n = 4
输出:[1,4,2,3,3,2,4,1]

示例 3:

输入:nums = [1,1,2,2], n = 2
输出:[1,2,1,2]

题解

class Solution:def shuffle(self, nums: List[int], n: int) -> List[int]:ret=[]for i in range(n):ret.append(nums[i])# 前nret.append(nums[i+n])# 后nreturn ret

1920. 基于排列构建数组

给你一个 从 0 开始的排列 nums下标也从 0 开始)。请你构建一个 同样长度 的数组 ans ,其中,对于每个 i0 <= i < nums.length),都满足 ans[i] = nums[nums[i]] 。返回构建好的数组 ans

从 0 开始的排列 nums 是一个由 0nums.length - 10nums.length - 1 也包含在内)的不同整数组成的数组。

示例 1:

输入:nums = [0,2,1,5,3,4]
输出:[0,1,2,4,5,3]
解释:数组 ans 构建如下:
ans = [nums[nums[0]], nums[nums[1]], nums[nums[2]], nums[nums[3]], nums[nums[4]], nums[nums[5]]]= [nums[0], nums[2], nums[1], nums[5], nums[3], nums[4]]= [0,1,2,4,5,3]

示例 2:

输入:nums = [5,0,1,2,3,4]
输出:[4,5,0,1,2,3]
解释:数组 ans 构建如下:
ans = [nums[nums[0]], nums[nums[1]], nums[nums[2]], nums[nums[3]], nums[nums[4]], nums[nums[5]]]= [nums[5], nums[0], nums[1], nums[2], nums[3], nums[4]]= [4,5,0,1,2,3]

题解

class Solution:def buildArray(self, nums: List[int]) -> List[int]:ret = []n = len(nums)for i in range(n):ret.append(nums[nums[i]])return ret

2824. 统计和小于目标的下标对数目

给你一个下标从 0 开始长度为 n 的整数数组 nums 和一个整数 target ,请你返回满足 0 <= i < j < nnums[i] + nums[j] < target 的下标对 (i, j) 的数目。

示例 1:

输入:nums = [-1,1,2,3,1], target = 2
输出:3
解释:总共有 3 个下标对满足题目描述:
- (0, 1)0 < 1 且 nums[0] + nums[1] = 0 < target
- (0, 2)0 < 2 且 nums[0] + nums[2] = 1 < target 
- (0, 4)0 < 4 且 nums[0] + nums[4] = 0 < target
注意 (0, 3) 不计入答案因为 nums[0] + nums[3] 不是严格小于 target 。

示例 2:

输入:nums = [-6,2,5,-2,-7,-1,3], target = -2
输出:10
解释:总共有 10 个下标对满足题目描述:
- (0, 1)0 < 1 且 nums[0] + nums[1] = -4 < target
- (0, 3)0 < 3 且 nums[0] + nums[3] = -8 < target
- (0, 4)0 < 4 且 nums[0] + nums[4] = -13 < target
- (0, 5)0 < 5 且 nums[0] + nums[5] = -7 < target
- (0, 6)0 < 6 且 nums[0] + nums[6] = -3 < target
- (1, 4)1 < 4 且 nums[1] + nums[4] = -5 < target
- (3, 4)3 < 4 且 nums[3] + nums[4] = -9 < target
- (3, 5)3 < 5 且 nums[3] + nums[5] = -3 < target
- (4, 5)4 < 5 且 nums[4] + nums[5] = -8 < target
- (4, 6)4 < 6 且 nums[4] + nums[6] = -4 < target

题解

class Solution:def countPairs(self, nums: List[int], target: int) -> int:sum = 0n = len(nums)for i in range(n):for x in range(i+1,n):if(nums[i]+nums[x]<target):sum+=1return sum

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

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

相关文章

流媒体学习之路(WebRTC)——GCC分析(4)

流媒体学习之路(WebRTC)——GCC分析&#xff08;4&#xff09; —— 我正在的github给大家开发一个用于做实验的项目 —— github.com/qw225967/Bifrost目标&#xff1a;可以让大家熟悉各类Qos能力、带宽估计能力&#xff0c;提供每个环节关键参数调节接口并实现一个json全配置…

服务器硬件及RAID磁盘阵列详解

文章目录 一、服务器硬件服务器常见故障 二、RAID磁盘阵列详解1、RAID磁盘阵列概述2、RAID 0(条带化存储)3、RAID 1&#xff08;镜像存储&#xff09;4、RAID 55、RAID 66、RAID 10&#xff08;先做镜像&#xff0c;再做条带&#xff09;7、RAID 01&#xff08;先做条带&#x…

通配符证书免费获取

通配符证书是一种特殊的SSL/TLS证书&#xff0c;设计用于保护一个主域名及其无限数量的一级子域名。这种类型的数字证书通过使用一个星号&#xff08;*&#xff09;作为通配符来实现对多个子域的安全加密&#xff0c;使得所有与指定格式匹配的子域名都能在同一个证书下得到安全…

编程语言未来的发展方向

编程语言的未来&#xff1f; 编程语言发展到现在&#xff0c;已经是比较完善并且好用&#xff0c;但这仅仅是对于专业人士来说的。对于普通人来说还是遥不可及。未来编程语言会朝着更加简洁&#xff0c;更加易读的方向去发展&#xff0c;函数式编程和响应式编程会普及。编程语…

机器学习中的监督学习基本算法-逻辑回归简单介绍

逻辑回归 逻辑回归&#xff08;Logistic Regression&#xff09;是一种用于解决二分类问题的统计学习方法&#xff0c;尽管名字中带有"回归"一词&#xff0c;但实际上它是一种分类算法。逻辑回归的主要目标是通过学习从输入特征到一个离散的输出&#xff08;通常是0…

利用Spring Cloud和Java系统设置优化工程项目管理系统源码的二次开发体验

工程项目管理涉及众多环节和角色&#xff0c;如何实现高效协同和信息共享是关键。本文将介绍一个采用先进技术框架的Java版工程项目管理系统&#xff0c;该系统支持前后端分离&#xff0c;功能全面&#xff0c;可满足不同角色的需求。从项目进度图表到施工地图&#xff0c;再到…

熔断、隔离、重试、降级、超时、限流,高可用架构流量治理核心策略全掌握

可用性的定义 在探讨高可用架构之前&#xff0c;让我们以 O2 系统为例&#xff0c;解释一下何谓可用性。O2 是腾讯内部的一个广告投放系统&#xff0c;专注于提升投放效率、分析广告效果&#xff0c;拥有自动化广告投放、AIGC 自动化素材生产等多种功能。 其整体架构概览如下&…

Java最新技术介绍和分析 (202305)

说明&#xff1a;本文完成了2023年5月份&#xff0c;当时最新的LTS版本是Java17&#xff0c;本文在撰写时参考了美团技术团队和阿里JDK团队相关的文章&#xff0c;以及本文也引了用文章中的图片。在此表示感谢&#xff01; Java版本火车 相信老牌的Java开发者和爱好者把Java的…

【技巧】IDEA 使用小技巧(三)

IDEA 使用小技巧&#xff08;三&#xff09; 配置目录Ctrl 鼠标方法缩小字体 配置目录 IDEA 在使用的过程中会在 C 盘的用户目录下写入相关配置&#xff0c;目录如下&#xff1a; "C:\Users\个人用户名\AppData\Local\JetBrains" "C:\Users\个人用户名\AppDa…

Halcon顶帽运算与底帽运算的应用

Halcon顶帽运算与底帽运算的应用 文章目录 Halcon顶帽运算与底帽运算的应用1. 提取小的物件2. 校正非均匀光照 正如上文所说的&#xff0c;顶帽运算返回的像素部分是尺寸比结构元素小的&#xff0c;并且比较亮的局部小区域&#xff1b;底帽运算返回的像素部分是尺寸比结构元素小…

打造炫酷粒子效果的前端利器tsParticles

前端潮流速递 &#xff1a;打造炫酷粒子效果的前端利器tsParticles 在现代前端开发中&#xff0c;动画和视觉效果是吸引用户的关键元素之一。而实现炫酷而引人入胜的粒子效果&#xff0c;常常需要耗费大量的时间和精力。然而&#xff0c;有了 tsParticles&#xff0c;这一切变…

网络安全—PGP8.1软件应用

文章目录 安装PGP8了解工作原理 PGP使用准备工作加密与解密加密者视角&#xff08;发送方&#xff09;接收者视角&#xff08;接收方&#xff09; 签名签名方&#xff08;发送方&#xff09;验证签名方&#xff08;接收方&#xff09; 补充加密签名一段文字签名后的格式 验证解…

Java中关键词strictfp有什么作用?

在Java中&#xff0c;关键词strictfp用于声明一个方法、类或接口是严格遵守浮点数计算规范的。 具体作用包括&#xff1a; 保证浮点数计算的结果在不同平台上是一致的&#xff0c;避免由于浮点数计算的不精确性导致的结果不确定性。 指定了严格的浮点数计算规则&#xff0c;禁…

【解决】Unity 设置跨设备分辨率表现

开发平台&#xff1a;Unity 2018版本以上 开发语言&#xff1a;CSharp 编程平台&#xff1a;Visual Studio 2022   问题描述 使用 UnityEngine.dll 中关于设置分辨率的方法时&#xff0c;无法满足应用以设定分辨率进行屏幕显示问题。因而造成画面不同程度的拉伸情况。而这种情…

机器学习-基于Word2vec搜狐新闻文本分类实验

机器学习-基于Word2vec搜狐新闻文本分类实验 实验介绍 Word2vec是一群用来产生词向量的相关模型&#xff0c;由Google公司在2013年开放。Word2vec可以根据给定的语料库&#xff0c;通过优化后的训练模型快速有效地将一个词语表达成向量形式&#xff0c;为自然语言处理领域的应…

C# StringBuilder对比string的优点和15大案例

文章目录 StringBuilder和String 对比1. **循环内字符串连接**2. **构建大型日志消息**3. **格式化长字符串**4. **SQL 查询构造**5. **从文件读取并合并行**6. **拼接数组元素**7. **格式化电子邮件模板**8. **处理用户输入流**9. **JSON 或 XML 格式的序列化与构建**10. **动…

leetcode算法题之递归--二叉树中的深搜总结

递归的本质是找重复的子问题 文章目录 1.计算布尔二叉树的值2.从根节点到叶节点数字之和3.二叉树剪枝4.验证二叉搜索树5.二叉搜索树中第K小的元素6.二叉树的所有路径 1.计算布尔二叉树的值 计算布尔二叉树的值 class Solution { public:bool evaluateTree(TreeNode* root) …

Spring Cloud + Vue前后端分离-第9章 大文件断点续与极速秒传

源代码在GitHub - 629y/course: Spring Cloud Vue前后端分离-在线课程 ​​​​​​Spring Cloud Vue前后端分离-第9章 大文件断点续与极速秒传 作为一个视频网站&#xff0c;一个文件小则几十M&#xff0c;大则上G&#xff0c;上传一个大文件受网络影响很大&#xff0c;文…

【网络技术】【Kali Linux】Wireshark嗅探(四)域名系统(DNS)

一、实验目的 本次实验使用wireshark流量分析工具进行网络嗅探&#xff0c;旨在了解域名系统&#xff08;DNS&#xff09;的工作原理。 二、域名系统概述 简单来说&#xff0c;域名系统&#xff08;Domain Name System, DNS&#xff09;将域名&#xff08;可以理解为“网址”…