我在Codewars中遇到了这个错误,但在PyCharm中效果很好?

2024-04-18 05:00:39 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我正在研究的问题

分割字符串

完成解决方案,以便将字符串拆分为两个字符对。如果字符串包含奇数个字符,则应将最后一对中缺少的第二个字符替换为下划线(“”)

def solution(s):
    answer = []
    a = 0
    if (len(s) % 2) != 0:
        a = s + "_"
    for i in range(len(a) // 2):
        answer.append(a[2 * i:2 * i + 2])
    return answer

Traceback (most recent call last):
  File "main.py", line 13, in <module>
    test.assert_equals(solution(inp), exp)
  File "/home/codewarrior/solution.py", line 6, in solution
    for i in range(len(a) // 2):
TypeError: object of type 'int' has no len()

Tags: 字符串answerinpyforlendefline
1条回答
网友
1楼 · 发布于 2024-04-18 05:00:39

问题是您正在将初始化为整数a=0

如果s是偶数,则不执行a = s + "_"行。因此a在这种情况下仍然是一个整数

这就是(len(a) // 2)给出错误的原因len不能处理整数,只能处理字符串

要解决此问题,请初始化a=s

相关问题 更多 >