测试题的基础知识点总结

1.循环求和
for循环步长(range(2,101,2)
while循环+条件判断(i%2==0
生成器表达式(sum(i for i in range )
所以:sum(range(1,101,2))(奇数和)和sum+=1(应加i

2.字符串切片
拼接:"Py"+"thon"[1:3]"Py"+"th"="Python"
切片规则:[start:end]前闭后开

3.列表排序
A.sort(reverse=True):降序排列输出[8,5,2,1]

4.变量作用域
局部变量在函数结束后销毁

5.递归函数
递归计算:recursive(5)=5*recursive(4)//2
最终输出5
过程:5*(4*(3*(2*(1*1//2)//2)//2)//2

6.列表创建
正确:列表推导式[x for x in range(1,6)]
字符串转列表:list('12345')['1','2','3','4','5'](需再转int
所以list range(应为list(range(1,6))

7.异常类型
索引越界:[1,2,3][3]
除零错误:1/0
参数错误:len('abc',11)len只接受1参数)
类型错误:len(None)None无长度)

8.列表推导式嵌套循环
[x*y for x in list 1 for y in list[2]→笛卡尔积

9.斐波那契递归
func(4)=func(3)+func(2)=(func(2)+func(1))+(func(1)+func(0))=(1+1)+(1+0)=3
终止条件是n<=1时返回n

10.全局变量
global x是声明全局变量
bar()中调用foo()修改全局x
最后输出15

11.条件判断
ifx:x可为任意对象(空值False,非空True)

12.对象引用
a=[1,2]b=[1,2]是两个独立对象

13.列表方法
remove(item)按值删除元素
按索引删除用pop(index)dellist[index]

14.列表切片

15.分支结构
特点:多个elifelse在最后、仅执行一个分支,前两项和最后一项

16.类型转换

17.递归终止条件
缺少终止条件会无限递归:deff(n): return n*f(n1)(无n==0判断)
直接调用自身:deff(n): return f(n)

18.循环控制
break:跳出循环
continue:跳过本次迭代
return:跳出函数(间接跳出循环)

19.切片规则
list[1:3]返回索引1到2的元素→错误(索引3不包含)

20.变量作用域
函数内部变量默认局部→错误(需global声明全局变量)

21.列表元素类型
列表可混合类型→正确(如[1,"a",True]

22.is==
is比较内存地址,==比较值

23.字符串不可变
字符串创建后不可修改(修改需创建新字符串)

24.动态类型
Python变量无需声明类型

25.列表元素访问
索引list[index]list.pop(index)

26.列表操作
合法:+(拼接)、*(重复)、索引访问
非法:``(列表不支持减法)

27.基本数据类型
正确:floatstr
错误:array(非基础类型)、“数据类型”(无效)

28.变量本质
变量是对象的引用
不可变对象(如元组)无法修改

29.递归生成列表
func(3)=func(2)+[3]=(func(1)+[2])+[3]=([1]+[2])+[3]=[1,2,3]

30.递归特性
必须有终止条件;可能导致栈溢出;可转化为循环

31.作用域规则
全局变量函数内可直接访问;global修改全局变量;局部变量函数外不可访问

32.列表原地修改
原地修改方法:append(),extend(),insert()
非原地:lst=lst+[1](创建新列表)

33.局部变量优先级
func()x是局部变量
输出[3,4,5](局部)和[1,2](全局)

34.局部变量声明顺序
func()print(x)x=20
所以出现UnboundLocalError(未定义)

35.多重赋值
c,d,a,b=d,b,a,c等价于c=4,d=2,a=1,b=3

36.嵌套列表扁平化
遍历子列表并合并 flatten([[1,2],[3,4]])→[1,2,3,4]

37.函数参数传递
列表传参时,lst=lst+[4]创建新对象 original不变,modified[1,2,3,4]

38.列表副本
double()返回新列表 nums不变,result[2,4,6]

46.多返回值
函数返回元组(a+b,a*b) sum=7,product=12

47.函数特性
函数可以无参数

48.阶乘递归
factorial(3)=3*factorial(2)=3*2*factorial(1)=3*2*1*1=6

49.列表可变性
函数内修改列表影响原对象 my_list变为[1,2,3,4]

50.嵌套列表生成
二维列表:[[i+j for j in range(2)] for i in range(3)] 输出 [[0,1],[1,2],[2,3]]

51.循环中修改列表
pop(i)后列表长度变化所以i只在非删除时递增,输出[1,3,5]

52.列表交集去重
求交集并去重:intersect(a,b)=[2,3,4] 所以sum=9

53.字符串反转
split()切分单词,insert(0,word)倒序插入,输出"learn to fun is Python"

54.字典计数
统计元音频率,e出现4次(Hello和test),o出现3次,总和7

55.字符串处理逻辑
i%2==0,输出"hello world this is a test"

56.栈操作模拟
peek输出栈顶,依次输出2,2,4所以栈最终为[1,2,4]sum=7

57.嵌套列表计数
递归统计嵌套列表中2的出现次数→结果为4

58.字典合并
合并字典并累加相同键,merged={'a':1,'b':5,'c':4}1+5+4=10

59.等差数列判断
检查相邻元素差是否为1 [5,6,7,8]

60.累加和列表
cumulative_sum([3,1,4,1,5])→[3,4,8,9,14]

61.字符计数
统计字母频率→'a'出现5次(abracadabra),'z'未出现→结果5

62.模块知识
math模块无round()方法(Python内置函数)→错误说法

63.迭代器协议
可迭代对象,如列表,需用iter()转迭代器才支持next()

64.字典浅拷贝
b=a.copy()创建副本,所以修改b不影响a,a[1]仍为'a'

65.集合操作异常
s.remove(2)返回Nones.discard(None)无效,所以s={1,3}

这次考试彻底暴露了我在变量作用域上的认知漏洞,明明背熟了global关键字,实战时还是分不清函数里修改的到底该是全局变量还是局部;数据结构操作更是重灾区,列表切片总手滑多切一位,字典合并时傻傻分不清赋值和浅拷贝的区别,集合运算差点把&|搞反。流程控制虽然基础,但for循环里删列表元素直接导致索引崩盘,if-elif-else分支不能漏写。最头疼的是递归函数,终止条件如果少一行就无限循环,还差点忘了递归层数太深会爆栈。我现在终于懂了:写代码不是拼手速,而是得时刻警惕边界异常,索引len-1,改容器前先问自己会不会影响循环。所以下次刷题前,我决定先画三张图:作用域、对象引用、递归调用树。

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

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

相关文章

识别和分类恶意软件样本的工具YARA

YARA 是一个用于识别和分类恶意软件样本的工具,广泛应用于恶意软件分析、威胁情报、入侵检测等领域。它通过编写规则(YARA Rules)来匹配文件中的特定字符串、十六进制模式、正则表达式等特征。 一、YARA 的基本使用方法 1. 安装 YARA Linux(Ubuntu/Debian) sudo apt-ge…

GaussDB 约束的语法

1 约束的作用约束是作用于数据表中列上的规则&#xff0c;用于限制表中数据的类型。约束的存在保证了数据库中数据的精确性和可靠性。约束有列级和表级之分&#xff0c;列级约束作用于单一的列&#xff0c;而表级约束作用于整张数据表。下面是 GaussDB SQL 中常用的约束。NOT …

SecurityContextHolder 管理安全上下文的核心组件详解

SecurityContextHolder 管理安全上下文的核心组件详解在 Spring Security 中&#xff0c;SecurityContextHolder 是​​安全上下文&#xff08;Security Context&#xff09;的核心存储容器​​&#xff0c;其核心作用是​​在当前线程中保存当前用户的认证信息&#xff08;如用…

c++详解系列(引用指针)

目录 1.什么是引用 2.引用的定义 3.引用的特性 4.引用的使用 4.1引用传参 4.2传引用返回 5.const引用&#xff08;在引用的定义前用const修饰&#xff09; 5.1对于引用 5.2对于指针 6.引用&指针 总结 1.什么是引用 引用就是给变量起别名&#xff0c;一个变量可以…

深度学习loss总结(二)

对于目前深度学习主流任务学习,loss的设置至关重要。下面就不同任务的loss设置进行如下总结: (1)目标检测 2D/3D目标检测中的 Loss(损失函数)是训练模型时优化目标的核心,通常包括位置、类别、尺寸、方向等多个方面。以下是目前 常见的 2D 和 3D 目标检测 Loss 分类与…

【Linux网络】netstat 的 -anptu 各个参数各自表示什么意思?

netstat 是一个网络统计工具&#xff0c;它可以显示网络连接、路由表、接口统计、伪装连接和多播成员资格。在 netstat 命令中&#xff0c;不同的参数可以用来定制输出的内容。 你提到的 -anptu 参数组合各自的功能如下&#xff1a; -a (all): 显示所有活动的连接和监听端口。它…

[硬件电路-115]:模拟电路 - 信号处理电路 - 功能放大器工作分类、工作原理、常见芯片

功能放大器是以特定功能为核心的集成化放大电路&#xff0c;通过将运算放大器与外围电阻、电容等元件集成在单一芯片中&#xff0c;实现标准化、高性能的信号放大功能。其核心优势在于简化设计流程、提升系统稳定性&#xff0c;并针对特定应用场景优化性能参数。以下从定义、分…

双网卡UDP广播通信机制详解

UDP广播通信机制详解 一、通信流程分析 发送阶段 通过Client.Bind(192.168.0.3, 60000)将UDP套接字绑定到指定网卡和端口设置RemoteHost "255.255.255.255"实现全网段广播数据流向&#xff1a;192.168.0.3:60000 → 255.255.255.255:50000 接收阶段 设备响应数据应返…

从遮挡难题到精准测量:激光频率梳技术如何实现深孔 3D 轮廓的 2um 级重复精度?

一、深孔 3D 轮廓测量的遮挡困境深孔结构&#xff08;如航空发动机燃油喷嘴孔、模具冷却孔&#xff09;因孔深大&#xff08;常超 100mm&#xff09;、深径比高&#xff08;&#xff1e;10:1&#xff09;&#xff0c;其 3D 轮廓测量长期受限于光学遮挡难题。传统光学测量技术&a…

.NET 依赖注入(DI)全面解析

文章目录一、依赖注入核心原理1. 控制反转(IoC)与DI关系2. .NET DI核心组件二、服务生命周期1. 三种生命周期类型三、DI容器实现原理1. 服务注册流程2. 服务解析流程四、高级实现方法1. 工厂模式注册2. 泛型服务注册3. 多实现解决方案五、ASP.NET Core中的DI集成1. 控制器注入2…

K8S部署ELK(二):部署Kafka消息队列

目录 1. Kafka 简介 1.1 Kafka 核心概念 &#xff08;1&#xff09;消息系统 vs. 流处理平台 &#xff08;2&#xff09;核心组件 1.2 Kafka 核心特性 &#xff08;1&#xff09;高吞吐 & 低延迟 &#xff08;2&#xff09;持久化存储 &#xff08;3&#xff09;分…

Rust进阶-part1-智能指针概述-box指针

Rust进阶[part1]_智能指针概述&box指针 智能指针概述 在Rust中,智能指针是一类特殊的数据结构,它们不仅像普通指针一样可以引用数据,还带有额外的元数据和功能。与普通指针不同,智能指针通常使用结构体实现,并且会实现 Deref 和 Drop 等特定的trait,以提供更强大的…

C++扩展 --- 并发支持库(补充1)

C扩展 --- 并发支持库&#xff08;下&#xff09;https://blog.csdn.net/Small_entreprene/article/details/149606406?fromshareblogdetail&sharetypeblogdetail&sharerId149606406&sharereferPC&sharesourceSmall_entreprene&sharefromfrom_link atom…

在Three.js中导入和添加自定义网格的最佳实践 - 综合指南

探索在Three.js中导入和添加自定义网格的最佳实践。本指南涵盖增强 3D 项目的技术、技巧和实际示例。 添加图片注释&#xff0c;不超过 140 字&#xff08;可选&#xff09; 强烈建议使用 GLTF 格式来集成 3D 几何体&#xff0c;提供简化的流程&#xff0c;并固有地支持动画、…

Redis知识点(1)

目录 Redis Redis和MySQL的区别 Redis的高可用方案 Redis可以用来做什么 Redis的数据类型 字符串 列表 哈希 集合 有序集合 Bitmap Redis为什么快呢&#xff1f; I/O多路复用 说说select,poll,epoll,kqueue,IOCP的区别 Redis为什么早期选择单线程&#xff1f; …

使用iptables封禁恶意ip异常请求

查看后端日志发现一IP&#xff08;103.76.250.29&#xff09;频繁请求不存在的资源路径​​&#xff08;如 /api/v1/guest/comm/config、/theme/default/assets/compoments.js 等&#xff09;&#xff0c;并伴随对根路径 / 的正常访问。这种行为的可能性包括恶意扫描、自动化工…

BehaviorTree.Ros2 编译教程

1. 源码下载 git clone https://github.com/BehaviorTree/BehaviorTree.ROS2.git2. 编译过程 源码中有3个项目: btcpp_ros2_interfacesbtcpp_ros2_interfacesbtcpp_ros2_samples 2.1 编译btcpp_ros2_interfaces: colcon --packages-select btcpp_ros2_interfaces2.2 编译 …

AR智能巡检系统:制造业设备管理的效率革新

随着工业4.0和数字化转型的加速&#xff0c;设备管理在制造业、能源、交通等关键领域的重要性愈发凸显。传统设备巡检依赖人工记录和纸质报告&#xff0c;不仅效率低下&#xff0c;还容易因人为疏忽导致数据错误或安全隐患。然而&#xff0c;增强现实&#xff08;AR www.teamhe…

破解海外仓客户响应难题:自动化系统是关键

在跨境电商蓬勃发展的当下&#xff0c;海外仓作为连接卖家与终端消费者的重要枢纽&#xff0c;其服务效率直接影响着卖家的运营成果。其中&#xff0c;即时客户响应一直是行业痛点&#xff0c;尤其对中小型海外仓而言&#xff0c;单纯依靠人力维持全天候服务意味着高昂的成本压…

PyTorch基础——张量计算

文章目录PyTorch基础——张量计算1 什么是张量计算&#xff1f;2 基本算术运算2.1 加法运算2.1.2 torch.add2.1.3 a.add(b) 与 a.add_(b)a.add(b) 方法a.add_(b) 方法核心区别2.2 减法运算2.2.1 toch.sub()2.2.2 a.sub(b) 和a.sub_(b)a.sub(b) 方法a.sub_(b) 方法核心区别使用建…