嗨,当我在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
答案 0 :(得分:2)
看看list(range(0,len(string)))
的结果:
>>> string = "Hello"
>>> list(range(0,len(string)))
[0, 1, 2, 3, 4]
这是 integers 的列表。 for i, l in ...
尝试将此可发音元素分解为两个变量i
和l
。显然,不可能对整数执行此操作。继续上一个示例:
>>> 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)