本文章主要梳理回顾enumerate()和 range()两个python的内置函数的用法,顺便包含对上篇文章对 Python办公自动化实现考试系统生成Word试卷【2】这篇文章部分知识点分享。有问题请在评论区留言指正,感谢。
目录
1.enumerate 的用法
enumerate在Python中的含义是“枚举”,即列举、计数。它是一个内置函数,用于将一个可迭代对象(如列表、字符串等)组成一个索引序列,从而在迭代过程中同时获取元素的索引和值。
这个函数用的还挺多,特别是在处理元组、列表或者其他可迭代对象,因为它可以简化代码,使开发者能够更直接地访问每个元素的索引和值。
1.1 参数
enumerate(list,[start=0])
list是一个序列、迭代器或其他支持迭代的对象。
start 可选参数,表示索引的起始值。
1.2 返回值
enumerate()
返回一个枚举对象,该对象是一个迭代器,产生一个包含索引和对应值的元组。
我们在Python办公自动化实现考试系统生成Word试卷【2】这一篇文章中也有用到。在生成错乱答案选项中: questionitem.option 是没有序列号的,经过 enumerate内置函数处理后返回一个枚举对象,该对象是一个迭代器,产生一个包含索引和对应值的元组。
document.add_paragraph(('ABCD')[index]+str(option))这一句是向word文档中加入段落,内容是每次循环得到的 ('ABCD')[0] + 答案选项内容:
即 A答案选项内容 B答案选项内容 C答案选项内容 D答案选项内容
2.range()的用法
range()也是Python3的内置函数,返回的是一个可迭代对象(类型是对象),而不是列表类型。Python3 list() 函数是对象迭代器,可以把 range() 返回的可迭代对象转为一个列表,返回的变量类型为列表。
2.1 参数
range(stop)
range(start, stop[, step])
- start: 计数从 start 开始。默认是从 0 开始。例如 range(5) 等价于 range(0, 5)
- stop: 计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是 [0, 1, 2, 3, 4] 没有 5
- step:步长,默认为 1。例如:range(0, 5) 等价于 range(0, 5, 1)
在Python办公自动化实现考试系统生成Word试卷【2】这篇文章中:
for i in range(sheet.nrows):
print(i)
#等同于
for i in range(11):
print(i)
#0
#1
#2
#3
#4
#5
#7
#8
#9
#10
判断当 i 大于1时,即跳过第一行数据,因为第一行标题,从第二行的第一列开始取到单元格的value值赋值给新的对象属性中。 依次获取整行的数据。然后for循环获取下一行数据直至遍历整个文档的总行数。
最终把obj的值添加到questionlist中,经过顺序打乱后返回。
具体试题生成word试卷请参考: Python办公自动化实现考试系统生成Word试卷【2】-CSDN博客
本文章也是记录方便以后查看,欢迎大家参考共同学习,共同进步,如果有问题欢迎大家评论区留言指正,感谢。
更多内容: