当前位置: 首页 > news >正文

python测试总结

测试题的基础知识点总结

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.dtcms.com/a/311364.html

相关文章:

  • AIDL当Parcelable序列化的数据类通信时报“Class not found when unmarshalling“找不到该类时的解决方案
  • 【一天一个知识点】RAG遇见推理
  • Linux内核进程管理子系统有什么第十六回 —— 进程主结构详解(12)
  • AIGC系列:本地部署大模型
  • appium中urllib3.exceptions.LocationValueError: No host specified. 的错误解决办法
  • 第15届蓝桥杯Pthon青少组_国赛_中/高级组_2024年9月7日真题
  • 【Linux】多路转接之epoll
  • 使用AWS免费EC2自建RustDesk远程桌面连接服务
  • 什么是AWS Region和AWS Availability Zones
  • 全球化 2.0 | 中国香港教育机构通过云轴科技ZStack实现VMware替代
  • AWS上部署Spring Boot应用的完整指南
  • Allegro-导入网表的两种方式
  • GaussDB having 的用法
  • Ubuntu系统VScode实现opencv(c++)图像翻转和旋转
  • 电力系统分析笔记:发电机与变压器的数学建模与运行状态详解
  • Python打卡Day30 模块和库的导入
  • react 和 react native 的开发过程区别
  • 【相机】曝光时间长-->拖影
  • 【学习笔记】MySQL技术内幕InnoDB存储引擎——第7章 事务
  • openwrt下安装istore(基于pve)
  • Ollama前端:open-webui
  • [Linux入门] Ubuntu 系统中 iptables 的配置与使用
  • JavaScript:Ajax(异步通信技术)
  • 学习模板元编程(2)std::true_type/false_type
  • 垃圾收集器ParNewCMS与底层三色标记算法详解
  • Redisson高并发实战:Netty IO线程免遭阻塞的守护指南
  • JVM 03 类加载机制
  • uniapp scroll-view解析
  • 常用git命令
  • 算法训练营DAY46 第九章 动态规划part13