gpt4 book ai didi

python - 我的 for 循环内部函数有什么错误。错误 : "string indices must be integers". 在空闲状态下运行它,但它不会给我错误

转载 作者:太空宇宙 更新时间:2023-11-03 20:56:08 24 4
gpt4 key购买 nike

我正在编写刽子手游戏的代码。其中我从文本文件中随机选择一个单词,然后用户必须逐个字母地猜测该单词。当我从正确的单词迭代循环时,我遇到一个问题。我尝试迭代此循环以将当前单词与猜测的单词进行比较

我尝试了其他网站上的许多解决方案,但都不起作用。我还尝试在空闲状态下逐行运行此代码,但有一些不同,逻辑上两者是相同的,并且在空闲状态下它不会给我任何错误或任何警告

    def guess_word(letr,empty,correct_word):
if(letr.upper() in empty):
return("Already guessed!!" + empty)
elif(letr.upper() in correct_word):
print("You gussing correctly")
n=0
for n in correct_word:
print(type(empty))
if correct_word[n]==letr:
print(type(empty))
empty.replace(empty[n],letr.upper())
n+=1
return(empty)

在主函数中:

while correct_word!=e:
letr=input("Guess your letter: ")
z=guess_word(letr,empty,correct_word)
print((z))

这是我遇到错误的函数。我在此处输入代码`ant,将正确的单词(实际单词)逐个字母(letr)与空(用户猜测的单词)进行比较,并将字母替换为空字符串字母。我还包括了我的主函数的一部分,它显示了我如何调用我的函数

最佳答案

我猜“Correct_word”实际上是一个字符串,所以“n”是一个字符。您不能使用 char 作为索引,因为索引应该是 int 类型。您需要使用 enumerate() 来记录可迭代对象 ( Correct_word ) 的迭代计数:

for i, n in enumerate(correct_word):
print(type(empty))
if n == letr:
print(type(empty))
empty.replace(empty[i],letr.upper())

此外,如果“empty”确实是一个空或伪空(例如充满*)字符串,则以下代码行似乎“功能上”错误;空.替换(空[i],letr.upper())。看看https://www.geeksforgeeks.org/python-string-replace/Change one character in a string? .

关于python - 我的 for 循环内部函数有什么错误。错误 : "string indices must be integers". 在空闲状态下运行它,但它不会给我错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56017273/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com