IndexError:字符串索引超出范围python问题

时间:2019-01-17 12:36:20

标签: python

我正在开发一款名为“我会猜出您想到的名字”或“猜我的名字”的游戏。 用户将输入一个字母,程序将尝试在python中使用“ for循环”来猜测字母的位置:

list_of_names  = [ ]
userinput_letter = input('QUESTION : write a letter the name has: ')
new_list_of_names = [ ]
for names in list_of_names  :
  if userinput_letter in list_of_names  :
    new_list_of_names.append(names)
randomname = random.choice(new_list_of_names]
position_of_userletter = randomname.find(userinput_letter)
yn = input('QUESTION : does this letter "'+ userinput_letter +'" in the position "'+ str(position_of_userletter ) +'" (yes/no): ' )
if (yn == 'yes') :
    newlist_ofnames = [ ]
    for namesyes in new_list_of_names:
        if ( namesyes in userinput_letter [position_of_userletter] ) :
            newlist_ofnames.append(namesyes)
print(newlist_ofnames)
  

IndexError:字符串索引超出范围

2 个答案:

答案 0 :(得分:0)

据我了解,userinput_letter只是一个字母,您正在尝试获取一些索引。这就是为什么您会出错。

您应该做些类似的事情

if (len(namesyes) => position_of_userletter and namesyes[position_of_userletter] == userinput_letter):

答案 1 :(得分:0)

首先,在第5行上,您应该放置名称而不是list_of_names。

第二,您应该放置一个循环,如果yn等于“ no”,该循环将重新运行随机选择。

然后代替此行:

    if ( namesyes in userinput_letter [position_of_userletter] ) :

放置此行:

   if (namesyes[postition_of_userletter]== userinput_letter):

希望它能起作用:)