python-在下面的代码中获取整数对象是不可迭代的

时间:2019-02-17 16:22:07

标签: python python-3.x

嗨,当我在python中的代码下运行时,我遇到了一个异常int对象不可迭代的情况。你能让我知道我在这里想念什么吗?

def myfunc(string):
    temp = ''
    for i,l in range(0,len(string)):
        if(i%2==0):
            temp +=l.upper()
        else:
            temp +=l.lower()
    return temp

3 个答案:

答案 0 :(得分:2)

看看list(range(0,len(string)))的结果:

>>> string = "Hello"
>>> list(range(0,len(string)))
[0, 1, 2, 3, 4]

这是 integers 的列表。 for i, l in ...尝试将此可发音元素分解为两个变量il。显然,不可能对整数执行此操作。继续上一个示例:

>>> i, l = _[0]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: cannot unpack non-iterable int object

您可能正在寻找以下内容:

for i, l in enumerate(string):
    ...

enumerate产生(index, value)对:

>>> list(enumerate(string))
[(0, 'H'), (1, 'e'), (2, 'l'), (3, 'l'), (4, 'o')]

答案 1 :(得分:0)

for i,l in range(0,len(string)):

range返回间隔中的整数迭代

应该是:

for i in range(0,len(string)):

答案 2 :(得分:0)

我假设您希望所有在偶数位置的字符都大写而在奇数位置的字符都小写 因此,我相信这会起作用。 快乐编码。

def myfunc(string):
temp = ''
for i in range(0,len(string)):
    if(i%2==0):
        temp +=string[i].upper()
    else:
        temp +=string[i].lower()
return(temp)