Python缩进问题(数字猜测游戏)
当我尝试运行代码时,它会显示:Python缩进问题(数字猜测游戏),python,Python,当我尝试运行代码时,它会显示: if again == "y": ^ TabError:缩进中制表符和空格的使用不一致 我的代码是: import random def game(): wrong_guesses = [1,2,3,4,5] num = random.randint(0,100) guess = input("Guess a number bewtween 1 and 100, you have five tries "
if again == "y":
^
TabError:缩进中制表符和空格的使用不一致
我的代码是:
import random
def game():
wrong_guesses = [1,2,3,4,5]
num = random.randint(0,100)
guess = input("Guess a number bewtween 1 and 100, you have five tries ")
def wrong_guess():
wrong_guesses.remove()
print("That is not the number, You have {} guesses left".format(len(wrong_guesses)))
def right_guess():
if guess == num:
print("Congratulations! You guessed the number. You had {} guesses left".format(len(wrong_guesses)))
play_again()
def game_over():
if len(wrong_guesses) == 0:
break
play_again()
def play_again():
again = input("Would you like to play again? [y/n}")
if again == "y":
game()
elif again == "n":
break
game()
错误说明了一切 TabError:缩进中制表符和空格的使用不一致
这意味着您的代码中必须有相互交织的空格和制表符。尝试删除所有空白并仅使用空格(4替换选项卡)。此问题已被多次回答,例如: 因此,首先,请在StackOverflow上发布新问题之前找出答案 但是,要提供我的答案:
选项卡error
准确地告诉您代码无法运行的原因。制表符与空格的使用不一致(例如,您同时使用制表符和空格)。解决方案是选择制表符或空格,然后以独占方式切换到该制表符或空格
虽然Python不要求您专门使用空格,但PEP8样式指南建议使用空格。您应该能够将编辑器配置为将选项卡转换为空格。PEP8:
此外,尽管语法正确,您可能应该将
play_
函数中的elif
子句更改为else
(或者至少在elif
之后添加一个else
子句);我之所以这样说,是因为您目前没有处理除“y”和“n”之外的任何输入。更不用说你的代码是递归调用game()
,而不是在无限循环中运行,这会导致程序在某一点崩溃;为此,我建议将游戏重构为,而True:
循环,然后中断
将中断游戏循环——这是传统上游戏循环在高层的工作方式。最简单的解决方案是:不要在python代码中使用制表符。在现有代码中,将所有选项卡替换为4个空格。将编辑器配置为在按tab键时创建4个空格。您还有另一个与缩进相关的问题:最后一个if
语句位于函数play\u
中。(根据程序逻辑,必须在外面。)好的,谢谢。谢谢你的帮助,但不是我有一个不同的问题。它给了我同样的错误信息,但现在游戏()在页面的最底部。我找到了答案。