You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python代码与视频一致却报错,求解答缩进及变量等三类问题

问题分析与解决方案

你碰到的三个问题全都是缩进不一致闹的——Python对代码缩进要求特别严,同一层级的代码必须用相同数量的空格(别混着用制表符)。

逐个错误拆解

  1. "Unindent amount does not match previous indent":
    意思是你代码里的缩进数量前后不统一。看你第二个函数get_number_of_lines(),while True:那行的缩进比第一个函数里的while多了个空格,导致后面代码的层级全乱了,Python识别不出代码块的归属。

  2. "return can be used only within a function":
    因为return lines那行的缩进没和函数内的代码对齐,Python误以为这行代码不在get_number_of_lines()函数里,所以报错说return不能用在函数外。

  3. "lines is not defined":
    还是缩进锅——lines是在while循环里定义的,但缩进乱了之后,Python觉得你是在循环外(甚至函数外)调用这个变量,当然会提示未定义。

修正后的代码

MAX_LINES = 3

def deposit():
    while True:
        amount = input("What would you like to deposit? $")
        if amount.isdigit():
            amount = int(amount)
            if amount > 0:
                break
            else:
                print("Amount must be greater than 0. ")
        else:
            print("Please enter a number. ")

    return amount
   
def get_number_of_lines():
    while True:  # 这里统一用4个空格缩进,和第一个函数保持一致
        lines = input("Enter the number of lines to bet on (1-" + str(MAX_LINES) + ")? ")
        if lines.isdigit():
            lines = int(lines)
            if 1 <= lines <= MAX_LINES:
                break
            else:
                print("Please enter a valid number of lines. ")
        else:
            print("Please enter a number. ")
            
    return lines  # 缩进和函数内的while循环同级,确保在函数范围内

小提醒

  • 写Python代码统一用4个空格做缩进,别用Tab,更不能空格Tab混着来;
  • 复制视频里的代码后一定要检查缩进,有时候视频排版或者复制工具会搞乱缩进格式。

内容的提问来源于stack exchange,提问作者kristof

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 21:01:19