我写了这个代码:
`
def key_gen(l):
lettersi = ()
for a in range(l[0], l[4]):
letters1 = lettersi + (a,)
for b in range(l[5], l[9]):
letters2 = lettersi + (b,)
for c in range(l[10], l[14]):
letters3 = lettersi + (c,)
for d in range(l[15], l[19]):
letters4 = lettersi + (d,)
for e in range(l[20], l[24]):
letters5 = lettersi + (e,)
key = letters1 + letter2+ letter3 + letters4 + letters5
return key
`
我运行它,当我在python shell上时…:
letters = ('A','B','C','D','E','F', 'G','H','I','J', ' ', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Z', '.')
>>>key_gen(letters)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 3, in key_gen
TypeError: 'str' object cannot be interpreted as an integer
我不知道我在这里犯了什么错误,因为我是python的初学者,但我希望输出是这样的。你知道怎么修吗?你知道吗
>>>key_gen(letters)
((‘A’, ‘B’, ‘C’, ‘D’, ‘E’), (‘F’, ‘G’, ‘H’, ‘I’, ‘J’), (‘ ’, ‘L’, ‘M’, ‘N’, ‘O’), (‘P’, ‘Q’, ‘R’, ‘S’, ‘T’), (‘U’, ‘V’, ‘X’, ‘Z’, ‘.’))
也许我定义的函数不能读取字符串的元组,但我不知道怎么做,我已经在谷歌上搜索过了,找不到任何东西。你知道吗
^{} 期望它的参数是
int
类型,通过传递l[0]
,实际上是作为char'A'
传递它。我想你要做的是:有一些现有的方法可以实现你想要实现的目标。参考:How do you split a list into evenly sized chunks?。但我本该做的事却没有提到。我的方法是使用列表切片和列表理解作为:
相关问题 更多 >
编程相关推荐