python - 我在 Codewars 中遇到此错误,但在 PyCharm 中可以正常工作吗?
问题描述
这是我正在研究的问题!
拆分字符串
完成解决方案,以便将字符串拆分为两个字符对。如果字符串包含奇数个字符,那么它应该用下划线 ('_') 替换最后一对中缺少的第二个字符。
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()
解决方案
问题是您将 a 初始化为整数a=0
如果 s 是偶数,a = s + "_"
则不执行该行。所以a
在这种情况下仍然是一个整数。
这就是为什么(len(a) // 2)
给出错误。len
不适用于整数,仅适用于字符串。
要解决此问题,请初始化a=s
推荐阅读
- javascript - 当我最小化屏幕时,html页面被限制并且divs滑动
- javascript - php看不到简单的ajax post变量
- python - 在具有可变文件数的 bash 脚本中使用 pygount
- terraform - 使用 terraform paln 时出现 Terraform 版本问题
- reactjs - 分叉的 NPM 包在生产中不起作用
- python - 使用 python-vlc 播放文件后,VLC 播放器窗口消失
- c# - 找到最近坐标的最快方法
- java - HtppServletRequest getParameterValues 返回 Null
- pyspark - 在 pyspark 中将 Dataframe 输出到 .csv
- java - (Permission denied)] 将文件上传到 Amazon S3 时发生