python - 打印字符串的中间字符时出错
问题描述
尝试使用以下代码打印字符串的中间字符时:
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个值然后中间值实际上有效?
解决方案
除法返回一个浮点数。你想要楼层划分。
>>> 4/2
2.0
>>> 4//2
2
似乎您修复了此问题而没有注意到您更改的代码。
推荐阅读
- python - 提取所有行值并创建类似于 Count Vectorizer 的新列
- amazon-web-services - rclone - 如何列出 AWS S3 存储桶中包含最新文件的目录?
- r - 从 R 中的 EFA 输出创建数据框
- shell - 在 Linux 终端中 Ping
- sql - 在所有表中搜索字符串并按该字符串在一行中出现的次数排序(SQLite)
- javascript - 目前正在开发一个待办事项应用程序练习,但在保存和拉取 localStorage 逻辑方面陷入困境
- python - “不支持的操作数类型”错误消息
- javascript - 是否有可用于设置属性的可选链接的建议
- java - Java - 垂直直方图故障排除:最大值损坏?
- azure-data-factory - Azure 工厂 v2 通配符