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.hqwc.cn/news/317777.html

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

相关文章

微信公众号请求获取相关权限后端代码

用微信的东西&#xff0c;总要避免到各种与微信那边的交互。 1.首先要有个接口&#xff0c;证明你是服务端&#xff08;填写服务器配置&#xff09; 接入概述 | 微信开放文档 主代码 /*** 服务器配置验证* param* return*/PassTokenGetMapping("/giveWxCheck")publi…

一文讲清数据资产入表实操

《中共中央 国务院关于构建数据基础制度更好发挥数据要素作用的意见》已发布一年&#xff0c;数据资产化和入表已成为2023年的热门话题&#xff0c;随着2023年底国家数据局吹风《"数据要素x"三年行动计划&#xff08;2024-2026年&#xff09;》即将发布&#xff0c;这…

面试题:Linux命令大全

序号命令对应英文作用1ls [目录名]list查看当前目录下的内容2pwdprint work directory查看当前所在目录3cd [目录名]change directory切换目录4touch [文件名]touch如果文件不存在,创建文件5mkdir [目录名]make directory创建目录6rm [文件名]remove删除指定文件 ls 查看当前目…

LDD学习笔记 -- Linux内核模块

LDD学习笔记 -- 内核模块 简介LKM类型Static Linux Kernel ModuleDynamic Linux Kernel ModuleLKM编写语法 syntax详细描述内核头文件用户空间头文件Module Initialization FunctionModule Cleanup FunctionKeyword & Tag宏 __init __exitLKM入口注册Module Metadate&#…

成都谷达冠楠:抖店创业需要多少钱成本

随着互联网的发展&#xff0c;越来越多的人选择在网上开设自己的店铺&#xff0c;其中抖音小店因其独特的推广方式和巨大的流量优势&#xff0c;成为了许多人创业的首选。那么&#xff0c;开一家抖音小店需要多少成本呢?这是许多创业者关心的问题。 首先&#xff0c;我们需要明…

1.3 day3 IO进程线程

使用标准IO进行文件拷贝 #include <myhead.h> int main(int argc, const char *argv[]) {if(argc!3)//外部传参{printf("input error\n");}//定义两个文件指针FILE *fpNULL;FILE *cfpNULL;if((fpfopen(argv[1],"r"))NULL){perror("fopen error…

如何将图像数据转换为.mat文件,mat文件内是cell封装的struct格式的数据

在我看论文&#xff1a;《 Holistically-nested Edge Detection (HED) 》的时候&#xff0c;对论文中有关边缘结果的评价指标很感兴趣&#xff0c;于是我就研究了如何计算这些指标 如果有同样感兴趣或者有需要的小伙伴可以下载这里的代码&#xff1a;GitHub - xwjabc/hed: A P…

单片机原理及应用:独立式键盘控制LED与多功能按键识别

今天来介绍另一个外设——按键与LED的配合工作&#xff0c;与开关不同&#xff0c;按键需要注意消除抖动带来的影响&#xff0c;代码逻辑也会更复杂一写&#xff0c;下面先为大家介绍独立式键盘的相关知识。 单片机的独立式键盘指的是一种不依赖于计算机或其他外部设备的键盘输…

Calibre PEX Hspice Netlist提取步骤(数模芯片提取spice netlist流程)

在数模混合芯片中&#xff0c;通常模拟需要数字模块通过calibre工具来提取Hspice netlist用于功耗仿真。注意这里的spice netlist和做Calibre的spice netlist是不太一样的。 另外在做calibre pex时需要确保当前的design LVS已经pass。否则功耗仿真可能会不准。 Calibre LVS常…

rime中州韵小狼毫 inputShow lua Translator 输入字符透传翻译器

在 rime中州韵小狼毫 help lua Translator 中我们分享了如何使用 lua 脚本定义一个 translator&#xff0c;并以 五笔・拼音 为例引用了该 translator&#xff0c;并且达到了预期的效果。 今天&#xff0c;我们继续通过 lua 脚本为 rime中州韵/小狼毫 输入法打造一个 translat…

JRT控制打印机

本次测试打印机控制和纸张方向控制。 打印机状态 选择打印机 控制纸张 定义纸张 旋转纸张 不旋转纸张 A4

BLE Mesh蓝牙组网技术详细解析之Access Layer访问层(六)

目录 一、什么是BLE Mesh Access Layer访问层&#xff1f; 二、Access payload 2.1 Opcode 三、Access layer behavior 3.1 Access layer发送消息的流程 3.2 Access layer接收消息的流程 3.3 Unacknowledged and acknowledged messages 3.3.1 Unacknowledged message …