我希望我的程序不立即输出字符串。我希望它每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)
这会删除错误(谢谢),但不会输出任何内容。你们知道为什么吗?在
你的问题是:
.split()
已经返回一个列表。因此,当您试图索引到list
类型时,您的代码出现问题:list[botStringSplit]
。在如果要转换为列表,请改用括号:
list(some_iterable)
-但如上所述,这不一定是必需的,因为它相当于:botStringSplit = list(botString.split())
这将执行您想要的(在python3中),如果您在python2中,请将
^{pr2}$input()
切换到raw_input()
您的行
list[botStringSplit]
正在试图查找list
类的索引botStringSplit
。改为尝试list(botStringSplit)
。或者只是botStringSplit
,因为它已经是一个列表。在相关问题 更多 >
编程相关推荐