从Python 2到Python 3的刽子手 sRealWord=input(“用大写字母写出刽子手的单词:”) lShownWord=[“”]*len(sRealWord) sInput=“” IlawedGuesss=10 iLetterNumber=0#是[] iRightGuesses=0#was[] 打印(“\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n”) 打印(“让游戏开始吧!”) 打印(“键入结束以结束游戏,或完成10次猜测”) 而(sInput!=“END”和ILLOWEDGUESSES!=0): print(“您要查找的单词是:“+str(lShownWord))###已修复 打印(“你有:“+str(我的下一步)+“猜左”)###修复 sInput=输入(“输入大写字母:”) Illowedguesss-=1##值1##固定 而(iLetterNumber

从Python 2到Python 3的刽子手 sRealWord=input(“用大写字母写出刽子手的单词:”) lShownWord=[“”]*len(sRealWord) sInput=“” IlawedGuesss=10 iLetterNumber=0#是[] iRightGuesses=0#was[] 打印(“\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n”) 打印(“让游戏开始吧!”) 打印(“键入结束以结束游戏,或完成10次猜测”) 而(sInput!=“END”和ILLOWEDGUESSES!=0): print(“您要查找的单词是:“+str(lShownWord))###已修复 打印(“你有:“+str(我的下一步)+“猜左”)###修复 sInput=输入(“输入大写字母:”) Illowedguesss-=1##值1##固定 而(iLetterNumber,python,Python,我决定从Python2中获取一个旧的Hangman代码,并迁移到Python3中进行实践 我认为阻止代码正常工作的行被注释掉并用粗体显示 为了让游戏正常运行,我在代码或代码行中遗漏了什么或做错了什么? 供参考 猜不到的输出正在运行。尽管正确猜测的结果不起作用,因此,当你把单词猜对时,它会继续,就好像它们错了一样。我看到了很多问题。但似乎与蟒蛇2和蟒蛇3无关 如果正确,您可能需要将sInput分配给lShownWord[iLetterNumber]。为此,您只需要一个= 在将iLetterNum

我决定从Python2中获取一个旧的Hangman代码,并迁移到Python3中进行实践

我认为阻止代码正常工作的行被注释掉并用粗体显示

为了让游戏正常运行,我在代码或代码行中遗漏了什么或做错了什么?

供参考


猜不到的输出正在运行。尽管正确猜测的结果不起作用,因此,当你把单词猜对时,它会继续,就好像它们错了一样。

我看到了很多问题。但似乎与蟒蛇2和蟒蛇3无关

  • 如果正确,您可能需要将
    sInput
    分配给
    lShownWord[iLetterNumber]
    。为此,您只需要一个
    =

  • 在将iLetterNumber设置为零之前增加它是没有意义的。我假设您要做的是检查单词的每个字母,每次用户输入单词时。您可以使用while循环并手动重置变量来实现这一点,但它更为惯用,而且使用for循环时更容易出错。for循环自动重置计数器变量,并在每次循环迭代中递增它

  • 小心压痕。在显示正确的字符之前,您不希望首先让用户尝试
    iLowedGuesss
    次。while循环和ifs都位于错误的位置。一旦你把
    if
    语句放入正确的缩进级别,
    elif
    就不再有意义了

  • 如果用户赢了,您可能还想
    中断

  • 这就给我们留下了这个代码

    sRealWord=input(“用大写字母写出刽子手的单词:”)
    lShownWord=[“”]*len(sRealWord)
    sInput=“”
    IlawedGuesss=10
    iRightGuesses=0#was[]
    打印(“\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n”)
    打印(“让游戏开始吧!”)
    打印(“键入结束以结束游戏,或完成10次猜测”)
    而(sInput!=“END”和ILLOWEDGUESSES!=0):
    print(“您要查找的单词是:“+str(lShownWord))###已修复
    打印(“你有:“+str(我的下一步)+“猜左”)###修复
    sInput=输入(“输入大写字母:”)
    Illowedguesss-=1##值1##固定
    对于范围内的iLetterNumber(len(sRealWord)):
    如果(sRealWord[iLetterNumber]==sInput):
    lShownWord[iLetterNumber]=sInput
    iRightGuesses+=1
    如果(iRightGuesses==len(sRealWord)):
    打印(“哇,你赢了!”)
    打破
    如果(IALLowedGuesss==0):
    打印(“你猜对了,游戏结束了!”)
    打破
    
    如果SY您的假设正确,请尝试更改
    elif
    s。非常感谢您对我对Python2和Python3的假设之间的解释和澄清。你的回答和解释非常有帮助。很乐意帮忙!我在想我可以添加一段关于你如何能够自己解决这个问题的内容,但是除了作为第二双眼睛阅读你的代码之外,我并没有使用其他技巧
    sRealWord = input("Write the Hangman Word in Capital Letters: ") 
    lShownWord = ["_"] * len(sRealWord) 
    sInput = ""
    iAllowedGuesses = 10  
    iLetterNumber = 0   #was []
    iRightGuesses = 0   #was [] 
    
    
    print("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n")
    print("Let the Game Begin!")
    print("Type END to close game, or complete your 10 guesses")
    
    while(sInput != "END" and iAllowedGuesses != 0): 
        print("The word you're looking for is: " + str(lShownWord)) ##FIXED
        print("You have: " + str(iAllowedGuesses) + " guesses left") ##FIXED 
        sInput = input("Enter letter in Capital Letters: ")
        iAllowedGuesses -= 1 ##VALUE 1 ##FIXED
    
    while(iLetterNumber < len(sRealWord)) : **###THIS IS NOT WORKING**
       if (sRealWord[iLetterNumber] == sInput) : 
           lShownWord[iLetterNumber] == sInput 
           iRightGuesses += 1    
           iLetterNumber += 1 
           iLetterNumber = 0
       elif (iRightGuesses == len(sRealWord)): ###**THIS IS NOT WORKING**
           print("Woho!, You've won!")
       elif (iAllowedGuesses == 0):
           print("You are out of guesses, Game Over!") ###fixed
           break