python - 如何修复“TypeError:切片索引必须是整数或无或具有 __index__ 方法”错误
问题描述
我试图在不和谐机器人的选择数字游戏中区分作为数字的不和谐消息和作为字母的不和谐消息。我想我可以只使用startswith参数来查看消息是否包含数字,但是每当我尝试它时,它都会返回“TypeError:切片索引必须是整数或无或有索引方法”。我怎样才能解决这个问题?
if current_guess.startswith('1','2','3'):
current_guess = int(current_guess)
if best_id == "N/A":
best_guess = current_guess
best_id = current_id
else:
if abs(current_guess-number)<abs(best_guess-number):
best_guess = current_guess
best_id = current_id
else:
return
因为startswith只允许搜索3个参数,所以我只是复制了这段代码3次,每次检查三个数字1-9。
我期待它能够检测消息是否由数字组成,但它只是输出一个我不明白的错误。
line 57, in PAN
if current_guess.startswith('1','2','3'):
TypeError: slice indices must be integers or None or have an __index__ method
解决方案
如果我正确理解您的问题,您想检查消息是否是数字..您可以使用 try / except:
try:
current_guess = int(current_guess)
except ValueError:
# warn user about only being possible to send digits
推荐阅读
- discord.js - 延迟删除事件
- windows - 如何将 MobyLinuxVM.vhdx 移动到另一个驱动器
- javascript - 带有javascript和竞争条件的执行顺序?
- visual-c++ - Visual MFC 2015 - 字符串流与 CString 日语有问题
- google-chrome-extension - 在 PWA 中使用 chrome.storage.sync API
- swift - 在 Swift 中使用 Firebase 发送确认电子邮件
- javascript - Buefy 表后端排序似乎不起作用
- php - 如何使用 Javascript 从 URL 访问 JSON 并将数据提取到刀片中
- objective-c - Objective-C 相当于 Swift "\(variable)"
- sqlite - 如何使用 SQlite 在 QTableView 上声明负数