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

news2024/9/24 20:34:56

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,9
        print(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])# 前n
            ret.append(nums[i+n])# 后n

        return 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 = 0
        n = len(nums)
        for i in range(n):
            for x in range(i+1,n):
                if(nums[i]+nums[x]<target):
                    sum+=1
        return sum

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

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

相关文章

SQL必知必会笔记(5~8章)

第五章 高级数据过滤 本章示例表为transcript成绩表&#xff0c;数据库软件选用SQLITE3&#xff0c;具体如下 1、高级过滤也是通过where条件子句实现&#xff0c;辅以and、or、in、not进行实现 2、and语句&#xff1a;and连接的多个条件为与的关系&#xff0c;例如 SELECT * FR…

进阶学习——Linux系统磁盘管理与文件系统

目录 一、磁盘 1.认识磁盘 2.分区 2.1MBR&#xff08;Master Boot Record&#xff09;——主引导记录 2.2GPT分区 2.3磁盘分区结构 3.文件系统 3.1文件系统组成 3.1.1XFS ext4 3.1.2swap 3.1.3FAT16、FAT32 3.1.4NTFS&#xff08;xfs&#xff09; 3.1.5EXT4 3…

uniapp中组件库丰富的Switch 开关选择器使用方法

目录 #平台差异说明 #基础使用 #加载中 #禁用switch #自定义尺寸 #自定义颜色 #自定义样式 #异步控制 API #Switch Props #Switch Event 选择开关用于在打开和关闭状态之间进行切换。 #平台差异说明 App&#xff08;vue&#xff09;App&#xff08;nvue&#xff0…

【每日一题】466. 统计重复个数-2024.1.2

题目&#xff1a; 466. 统计重复个数 定义 str [s, n] 表示 str 由 n 个字符串 s 连接构成。 例如&#xff0c;str ["abc", 3] "abcabcabc" 。 如果可以从 s2 中删除某些字符使其变为 s1&#xff0c;则称字符串 s1 可以从字符串 s2 获得。 例如&…

JavaSE语法之十五:异常(超全!!!)

文章目录 一、异常的概念与体系1. 异常的概念2. 异常的体系结构3. 异常的分类 二、异常的处理方式1. 防御式编程&#xff08;1&#xff09;LBYL 事前防御型&#xff08;2&#xff09;EAFP 时候认错型 2. 异常的抛出3. 异常的捕获&#xff08;1&#xff09;异常声明的 throws&am…

ASP.Net实现海鲜添加(三层架构,异常处理)

演示功能&#xff1a; 点击启动生成页面 点击添加跳转新界面 此处设置文本框多行 点击Button添加 步骤&#xff1a; 1、建文件 下图是三层架构列表&#xff0c;Models里面有模拟数据库中列的类&#xff0c;DAL中有DBHelper和service,BLL中有BllManager文件用于ui界面直接调用…

【愚公系列】2023年12月 HarmonyOS应用开发者高级认证(完美答案)

&#x1f3c6; 作者简介&#xff0c;愚公搬代码 &#x1f3c6;《头衔》&#xff1a;华为云特约编辑&#xff0c;华为云云享专家&#xff0c;华为开发者专家&#xff0c;华为产品云测专家&#xff0c;CSDN博客专家&#xff0c;CSDN商业化专家&#xff0c;阿里云专家博主&#xf…

MFC编程技巧与范例详解01

目录 1、MFC概述 &#xff08;1&#xff09;、MFC为什么不用C语言使用C &#xff08;2&#xff09;、MFC的开发模型文档-视图模型 &#xff08;3&#xff09;、一个完善的MFC程序应该包括 &#xff08;4&#xff09;、MFC常用的类 2、MFC的特性 &#xff08;1&#xff09…

AndroidStudio导入程序、项目(教程)

目录 1. 首先解压压缩包&#xff0c;转为文件夹 2. 打开解压好的项目文件夹&#xff0c;删除.gradle和.idea这两个文件 3. 修改bulid.gradle文件&#xff0c;将gradle的版本型号改成自己的 (1) 传统结构 (2) 简洁结构 4. 打开android stdio软件&#xff0c;导入已经修改好…

test ui-02-UI 测试组件之 Appium 入门介绍

Appium简介 正如主页所述&#xff0c;Appium的目标是支持许多不同平台&#xff08;移动、Web、桌面等&#xff09;的UI自动化。 不仅如此&#xff0c;它还旨在支持用不同语言&#xff08;JS、Java、Python等&#xff09;编写的自动化代码。 将所有这些功能组合到一个程序中是…

LabVIEW开发滚筒洗衣机动态监测系统

LabVIEW软件在滚筒洗衣机的动态监测和分析中扮演着关键角色。本案例展示了如何利用LabVIEW开发的系统来优化洗衣机的性能和可靠性。 首先&#xff0c;在建立洗衣机的动力学模型基础上&#xff0c;利用LabVIEW进行了关键零部件的动态优化设计。通过LabVIEW的高级计算和模拟功能…

华清远见作业第二十天——IO(第三天)

思维导图&#xff1a; 使用标准IO完成两个文件的拷贝 代码&#xff1a; #include<stdio.h> #include<string.h> #include<stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int main(int argc, const char *…

【C++】STL 容器 - multiset 容器 ( std::multiset 容器简介 | std::multiset 容器 常用操作 api 简介 )

文章目录 一、mulset 容器1、std::multiset 容器简介2、代码示例 - multiset 容器 二、std::multiset 容器 常用操作 api 简介1、常用 api 简介2、代码示例 - multiset 容器常用操作 一、mulset 容器 1、std::multiset 容器简介 在 C 语言 的 标准模板库 ( STL , Standard Temp…

【LeetCode每日一题】1154. 一年中的第几天(直接计算+调用库函数)

2023-12-31 文章目录 [1154. 一年中的第几天](https://leetcode.cn/problems/day-of-the-year/)方法一&#xff1a;直接计算思路&#xff1a; 方法二&#xff1a;调用库函数思路 1154. 一年中的第几天 方法一&#xff1a;直接计算 思路&#xff1a; 1.根据所给的字符串&#…

如何使用凹凸贴图和位移贴图制作逼真的模型

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 本教程将解释如何应用这些效应背后的理论。在以后的教程中&#xff0…

【网络技术】【Kali Linux】Wireshark嗅探(五)文件传输协议(FTP)

一、实验目的 本次实验使用Wireshark流量分析工具进行网络嗅探&#xff0c;旨在了解文件传输协议&#xff08;FTP&#xff09;的工作原理。 二、FTP协议概述 文件传输协议&#xff08;File Transfer Protocol&#xff09;是互联网上使用得最广泛的文件传输协议&#xff0c;用…

3dmax渲染全景图参数设置 3dmax云渲染插件使用

家经常在互联网上看到制作360度全景图的各种教程&#xff0c;但这些教程往往是片段的&#xff0c;并且细节解释并不充分。为此&#xff0c;以下是一些从业者常用的优良做法&#xff0c;涉及到3ds Max中的场景布局和V-Ray渲染设置&#xff0c;这些建议旨在提供一个更全面和详尽的…

前端插件库-VUE3 使用 vue-codemirror 插件

VUE3 插件 vue-codemirror 使用步骤和实例、基于 CodeMirror &#xff0c;适用于 Vue 的 Web 代码编辑器。 第一步&#xff1a;安装 vue-codemirror & codemirror 包 &#xff0c; 以及语言包 npm install codemirror --save npm install vue-codemirror --savenpm insta…

大数据机器学习TF-IDF 算法+SnowNLP智慧旅游数据分析可视化推荐系统

文章目录 大数据机器学习TF-IDF 算法SnowNLP智慧旅游数据分析可视化推荐系统一、项目概述二、机器学习TF-IDF 算法什么是TF-IDF&#xff1f;TF-IDF介绍名词解释和数学算法 三、SnowNLP四、数据爬虫分析五、项目架构思维导图六、项目UI系统注册登录界面各省份热门城市分析城市热…

FastReport分组后半页空白问题解决办法

在使用FastReport进行分组后&#xff0c;经常会出现‘半页空白’的现象。比如按颜色进行分组&#xff0c;有白、黑、红三个颜色&#xff0c;第一类白色信息展示完成后&#xff0c;紧接着的第二类黑色信息&#xff0c;会从新的一页开始展示&#xff0c;白色信息的末尾会出现半页…