首页 > 解决方案 > 打印字符串的中间字符时出错

问题描述

尝试使用以下代码打印字符串的中间字符时:

def mid(a):
    return a[(len(a) + 1) / 2]
    
print(mid("abc"))

我得到错误:

TypeError: string indices must be integers

将其更改为:

 def mid(a):
    return a[(len(a) - 1) // 2 : (len(a) + 2) // 2]
    
print(mid("abc"))

输出:

b

为什么直接抓取中间值返回TypeError,但抓取第0个值然后中间值实际上有效?

标签: pythonpython-3.x

解决方案


除法返回一个浮点数。你想要楼层划分。

>>> 4/2
2.0
>>> 4//2
2

似乎您修复了此问题而没有注意到您更改的代码。


推荐阅读