有人可以解释这个函数的作用以及它是如何工作的吗?

时间:2016-03-04 06:38:15

标签: python

我的期中考试的一个问题是了解这个功能的作用,我无法阅读它,因为我不明白参数的来源和工作原理。有编程经验的人可以帮忙吗?

def enigma(numList, n, pos):
    length = len(numList)
    if pos == length:
        print('Error')
        return

    newList = []
    for i in range(pos):
        newList = newList + [numList[i]]

    newList = newList + [n]

    tailLength = length - pos
    counter = tailLength
    while counter < length:
        newList = newList + [numList[counter]]
        counter = counter + 1

    return newList

1 个答案:

答案 0 :(得分:0)

多次尝试一些测试数据很快就会显示出功能:

>>> enigma('abcdefghijklm', 'X', 0)
['X']
>>> enigma('abcdefghijklm', 'X', 1)
['a', 'X', 'm']
>>> enigma('abcdefghijklm', 'X', 2)
['a', 'b', 'X', 'l', 'm']
>>> enigma('abcdefghijklm', 'X', 3)
['a', 'b', 'c', 'X', 'k', 'l', 'm']
>>> enigma('abcdefghijklm', 'X', 4)
['a', 'b', 'c', 'd', 'X', 'j', 'k', 'l', 'm']
>>> enigma('abcdefghijklm', 'X', 12)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'X', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm']
>>> enigma('abcdefghijklm', 'X', 13)
Error

代码以空new_list开头,并在三个部分中构建

  • 重复第一个pos个元素
  • 添加n元素
  • 重复追加pos个元素数

pos变得大于中点时,开始和尾随元素部分交叉重复一些项目。