“type”对象在尝试打印lis时在PYTHON中不可订阅

2024-09-30 20:35:55 发布

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

我希望我的程序不立即输出字符串。我希望它每0.2秒输入一个字符。我写了这段代码,它告诉我“type”对象是不可订阅的。有什么想法吗?在

import sys
import time

botString = " "
#splits sentences into words
botStringSplit = botString.split()
#splits words into characters
listOfBotStringChar = list[botStringSplit]


def botType(botString):
    for i in range(len(botStringSplit)):
        time.sleep(0.2)
        print(listOfBotStringChar[i])


userInput = input("type something")

if "hi" in userInput:
    botString = "Hello friend"
    botType(botString)

更新: 宗多和雅克·高丁建议我改变一下

^{pr2}$

listOfBotStringChar = list(botStringSplit)

这会删除错误(谢谢),但不会输出任何内容。你们知道为什么吗?在


Tags: 字符串inimport程序timetypelistwords
2条回答

你的问题是:

botStringSplit = botString.split()
#splits words into characters
listOfBotStringChar = list[botStringSplit]

.split()已经返回一个列表。因此,当您试图索引到list类型时,您的代码出现问题:list[botStringSplit]。在

如果要转换为列表,请改用括号: list(some_iterable)-但如上所述,这不一定是必需的,因为它相当于:botStringSplit = list(botString.split())

这将执行您想要的(在python3中),如果您在python2中,请将input()切换到raw_input()

^{pr2}$

您的行list[botStringSplit]正在试图查找list类的索引botStringSplit。改为尝试list(botStringSplit)。或者只是botStringSplit,因为它已经是一个列表。在

相关问题 更多 >