"无法连接' str'和' int'对象"错误

时间:2014-06-28 03:17:37

标签: python string for-loop

当我尝试运行以下代码时,我不断收到“无法连接'str'和'int'对象”错误。我指出第6行是问题的根源,但我真的看不出错误!我的类型似乎是一致的。

def DashInsert(num): 
  num_str = str(num)
  new_str = ''

  for i in num_str:
    var1 = num_str[i:i+1]
    var2 = num_str[i+1:i+2]

    if var1 % 2 == 1 and var2 % 2 == 1:
      new_str = new_str + num_str[i:i+1] + "-"
    else:
      new_str = new_str + num_str[i:i+1]

  return new_str

# keep this function call here  
# to see how to enter arguments in Python scroll down
print DashInsert(raw_input())  

1 个答案:

答案 0 :(得分:7)

for i in num_str:

i在这种情况下不是索引,它是一个字符串字符。

例如,如果代码中的num为42,则工作流程为:

num_str = str(42) # '42'
for i in num_str: # First iteration
    var1 = num_str['4':'4'+1] # Python: '4' + 1 = ERROR

您可能正在寻找的是:

for i, c in enumerate(num_str):
    var1 = num_str[0:0+1] # Python: 0 + 1 = 1

请参阅this answer