已解决:Python Error: IndentationError: expected an indented block 问题

news2024/11/25 20:22:01

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁

在这里插入图片描述


🦄 博客首页:

  • 🐅🐾猫头虎的博客🎐
  • 《面试题大全专栏》 🦕 文章图文并茂🦖生动形象🐅简单易学!欢迎大家来踩踩~🌺
  • 《IDEA开发秘籍专栏》 🐾 学会IDEA常用操作,工作效率翻倍~💐
  • 《100天精通Golang(基础入门篇)》 🐅 学会Golang语言,畅玩云原生,走遍大小厂~💐

🪁🍁 希望本文能够给您带来一定的帮助🌸文章粗浅,敬请批评指正!🐅🐾🍁🐥

文章目录

  • 《已解决:Python Error: IndentationError: expected an indented block 问题》
    • 摘要
    • 引言
    • 正文
      • 什么是`IndentationError`
      • 为什么会出现这个错误
        • 缺少缩进
        • 缩进不一致
        • 混合使用Tab和空格
      • 如何解决
        • 使用自动格式化工具
        • 统一缩进风格
        • 编辑器配置
      • 代码修复示例
      • 如何避免
      • 表格:常见缩进错误及修复
    • 总结
    • 参考资料
    • 在这里插入图片描述
  • 原创声明

《已解决:Python Error: IndentationError: expected an indented block 问题》

摘要

喵哈喽,猫头虎博主在此!?? 今天,我们要深入挖掘一个后端领域中常见的Bug —— Python的IndentationError。咱们程序员的生活中总会遇到一些“缩进不规范,同行两行泪”的时刻,但不要怕,本猫头虎博主用爪子敲键盘也能把这个问题搞定。这个bug简直就是在编程草地上的一个不明显的小坑,我们要做的就是填平它,让代码的路再次变得平坦。接下来,就让我们一起看看这个缩进错误是怎么产生的,以及如何优雅地避免和解决它吧!

引言

在Python的世界里,缩进不仅仅是一种代码美学,更是语法的一部分。正确的缩进能够让解释器理解代码块的结构,而IndentationError则是在告诉我们:“喂,这里你应该缩进一下!”今天,我们就来彻底搞懂这个错误,并学习如何避免它,这样我们就能写出更加清晰和优雅的Python代码。

正文

什么是IndentationError

在Python中,当代码的缩进层级不正确或者不一致时,解释器会抛出一个IndentationError

def greet():
print("Hello, World!")  # 这里缺少缩进,将会引发错误

为什么会出现这个错误

缺少缩进
if True:
print("This will cause an IndentationError.")  # 应该在print前添加缩进
缩进不一致
def foo():
    print("All good.")
     print("This will cause an error.")  # 这一行的缩进与上一行不一致
混合使用Tab和空格

在Python 3中,不能混合使用Tab和空格进行缩进,这会导致IndentationError

如何解决

使用自动格式化工具

使用工具如autopep8或者black可以自动格式化代码,解决缩进问题。

统一缩进风格

选择Tab或空格,并在整个项目中保持一致。

编辑器配置

配置你的文本编辑器或IDE,以便在按下Tab键时插入固定数量的空格(通常是4个)。

代码修复示例

以下是一个修复IndentationError的示例:

# 错误的代码
def bad_indent():
print("This will raise an IndentationError")

# 修复后的代码
def good_indent():
    print("This is correctly indented")

如何避免

为了避免IndentationError

  • 始终使用4个空格的缩进。
  • 不要在同一个文件中混合使用Tab和空格。
  • 使用支持Python缩进的编辑器或IDE。
  • 定期使用代码检查工具检查你的代码风格。

表格:常见缩进错误及修复

错误类型示例代码修复方法
缺少缩进if True: print("Hello")if True:\n print("Hello")
不一致的缩进def foo():\n print("A")\n print("B")def foo():\n print("A")\n print("B")
混合使用Tab和空格if True:\n\tprint("Hello")if True:\n print("Hello")

总结

缩进在Python中是至关重要的,它不仅关系到代码的可读性,更关系到代码是否能够正确执行。避免IndentationError的关键是保持一致的缩进风格,并且在写代码的时候保持警惕。通过使用自动化工具和配置好你的开发环境,你可以大大减少遇到这类错误的机会。记住,好的编程习惯从每一次正确的缩进开始!

参考资料

  • PEP 8 – Style Guide for Python Code
  • Python官方文档:Errors and Exceptions
  • “Automate the Boring Stuff with Python” - by Al Sweigart

希望这篇博客能帮你解决缩进相关的困扰,下次再见,祝你编码愉快,喵!???

在这里插入图片描述

🐅🐾 猫头虎建议程序员必备技术栈一览表📖

💡 后端技术 Backend:

  1. 编程语言:
    • 🔥 Golang
    • 🐍 Python
    • ☕ Java
    • 💎 Ruby
    • 🐘 PHP
    • 🌐 Node.js (JavaScript / TypeScript)
    • 🦀 Rust
    • ⚙️ C# (.NET Core)
  2. 数据库技术:
    • 📖 SQL(例如: PostgreSQL, MySQL, SQL Server, Oracle)
    • 📓 NoSQL(例如: MongoDB, Cassandra, Redis)
  3. 框架和库:
    • 🌐 Express (Node.js)
    • 🛤️ Rails (Ruby)
    • 🌌 Django, Flask (Python)
    • 🍃 Spring Boot (Java)
    • 🎨 ASP.NET Core (C#)
  4. 云原生技术:
    • 🐳 Docker
    • ☸️ Kubernetes
    • ⛵ Helm
    • 🔥 Serverless
    • 🌩️ AWS Lambda
    • ☁️ Google Cloud Functions
    • 📦 Microservices
  5. API 和通讯:
    • 📜 RESTful APIs
    • 📡 GraphQL
    • 🌌 WebSockets
    • 🐤 gRPC
  6. 中间件和消息传递:
    • 📨 RabbitMQ
    • 🐦 Kafka
  7. 版本控制:
    • 📚 Git (以及 GitHub, GitLab, Bitbucket)
  8. 持续集成与部署 (CI/CD):
    • 🚀 Jenkins
    • 🛠️ Travis CI, CircleCI, GitLab CI
  9. 测试:
    • 🧪 单元测试
    • 🔄 集成测试
    • 🔍 端到端测试
  10. 安全性:
    • 🔐 OAuth, JWT
    • 🛡️ Web Application Firewall (WAF)
    • 🚫 Rate Limiting and Throttling

原创声明

======= ·

  • 原创作者: 猫头虎
  • 编辑 : CaracalTiger

作者wx: [ libin9iOak ]
公众号:猫头虎技术团队

学习复习

本文为原创文章,版权归作者所有。未经许可,禁止转载、复制或引用。

作者保证信息真实可靠,但不对准确性和完整性承担责任

未经许可,禁止商业用途。

如有疑问或建议,请联系作者。

感谢您的支持与尊重。

点击下方名片,加入IT技术核心学习团队。一起探索科技的未来,共同成长。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1191005.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

API低代码开发应用场景

什么是API低代码开发平台 API低代码开发平台是一种基于低代码开发的技术平台,它可以帮助企业快速构建和部署API应用程序。该平台通过提供可视化的开发工具、预定义的组件和模板、自动化的代码生成等功能,使得开发者可以在不需要编写大量代码的情况下&am…

数据结构之单链表基本操作

🤷‍♀️🤷‍♀️🤷‍♀️ 今天给大家分享的是单链表的基本操作。 清风的个人主页 🎉欢迎👍点赞✍评论❤️收藏 😛😛😛希望我的文章能对你有所帮助,有不足的地方还请各位…

公众号标签

公众号标签 本章节,讲解公众号标签的相关内容,支持对标签进行创建、查询、修改、删除等操作,也可以对用户进行打标签、取消标签等操作,对应 《微信公众号官方文档 —— 用户标签管理》 (opens new window)文档。 #1. 表结构 公众…

ubuntu 火焰图脚本

环境ubuntu1804 x86_64 #!/bin/bash if [ "$2_" "_" ];thenecho "usage ./fire.sh oncpu/offcpu pid"exit fiif [ "$1_" "oncpu_" ];thensudo perf record -F 99 -p $2 -g -- sleep 10syncsudo perf script > out.pe…

openai自定义API操作 API 返回值说明

custom-自定义API操作 openai.custom 公共参数 名称类型必须描述keyString是调用key(获取测试key)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheStrin…

python爬虫hook定位技巧、反调试技巧、常用辅助工具

一、浏览器调试面板介绍 二、hook定位、反调试 Hook 是一种钩子技术,在系统没有调用函数之前,钩子程序就先得到控制权,这时钩子函数既可以加工处理(改变)该函数的执行行为,也可以强制结束消息的传递。简单…

Vue23-props配置功能

Vue2&3-props配置功能 Vue2-props配置 功能:接收从其他组件传过来的数据,将数据从静态转为动态注意: 同一层组件不能使用props,必须是父组件传子组件的形式。父组件传数据,子组件接收数据。不能什么数据都接收&a…

虚幻C+++基础 day3

常见的游戏机制 Actor机关门 创建一个Actor类,添加两个静态网格与一个触发器 UBoxComponentUStaticMeshComponent 头文件: #include “Components/BoxComponent.h”#include “Components/StaticMeshComponent.h” TriggerDoor.h // Fill out your …

两个int(32位)整数m和n的二进制表达中,求有多少个位(bit)不同?

我先来讲一讲这道题的大概意思:假设我们输入的是 0 和 1: 0的32位二进制中为:000……0(32位) 1的32位二进制中为:000……1(32位) 那么就有一位不同。 方法一: 既然是二进制中,那么就是满二进一,就像…

操作系统·进程管理

2.1 前趋图和程序执行 2.1.1 前趋图 前趋图是一个有向无循环图,记为DAG,可用于描述程序/进程之间执行的前后关系,无循环关系可实现顺序执行。 2.1.2 程序的顺序执行 在计算机系统中只有一个程序在运行,这个程序独占系统中所有资…

基于FPGA的PCIe-Aurora 8/10音频数据协议转换系统设计阅读笔记

文章可知网下载阅读,该论文设计了一种 PC 到光纤模块(基于Aurora的光纤传输)的数据通路,成功完成了Aurora 以及 DDR 等模块的功能验证。 学习内容: 本次主要学习了Pcie高速串行总线协议、Aurora高速串行总线协议、DDR相…

Android 11.0 禁止弹出系统simlock的锁卡弹窗功能实现

1.前言 在11.0的系统rom产品定制化开发中,在关于定制sim卡定制机的一款产品中,需要实现simlock锁卡功能,在系统实现锁卡功能以后,在开机的过程中,或者是在插入sim卡 后,当系统检测到是禁用的sim卡后,就会弹出simlock锁卡弹窗,要求输入puk 解锁密码,功能需求禁用这个弹…

树莓派4B的测试记录(CPU、FFMPEG)

本文是用来记录树莓派 4B 的一些测试记录。 温度 下面记录中的风扇和大风扇是这样的: 为什么要用大风扇呢?因为小风扇在外壳上,气流通过外壳的珊格会有啸叫,声音不大但是很烦人,大风扇没这个问题,并且同样…

QMetaType和QVariant使用

描述 QMetaType和QVariant可以结合使用,用于在运行时确定数据类型。 QMetaType是Qt提供的用于管理各种数据类型的类,它可以帮助我们在运行时动态地创建、销毁、复制和比较数据类型。我们可以使用QMetaType来注册我们自己的数据类型,并为其提…

用于图像处理的高斯滤波器 (LoG) 拉普拉斯

一、说明 欢迎来到拉普拉斯和高斯滤波器的拉普拉斯的故事。LoG是先进行高斯处理,继而进行拉普拉斯算子的图像处理算法。用拉普拉斯具有过零功能,实现边缘岭脊提取。 二、LoG算法简述 在这篇博客中,让我们看看拉普拉斯滤波器和高斯滤波器的拉普…

【STM32】STM32的Cube和HAL生态

1.单片机软件开发的时代变化 1.单片机的演进过程 (1)第1代:4004、8008、Zilog那个年代(大约1980年代之前) (2)第2代:51、PIC8/16、AVR那个年代(大约2005年前) (3)第3代:51、PIC32、Cortex-M0、…

Python Selenium Headless:以 Headless 模式打开 Chrome 浏览器

本篇文章介绍了如何在 Python 中使用 Selenium 运行浏览器无头模式。 在 Python 中使用 Selenium 以无头模式运行 Chrome 浏览器 要说 headless 浏览器,你也可以称它们为真正的浏览器,只不过它们是在后台运行的; 您将无法在任何地方看到它们,但它们仍在后台运行。 在某些…

拓世科技集团打造数字人营销解决方案,为车企提供新的“增长担当”

汽车,已经渐渐融入了现代人的日常生活,从高端的身份标志转变为普罗大众的出行选择,它驶入了千家万户,成为了我们日常出行的可靠伙伴,见证着人们的生活故事和时代的变迁。 中国汽车市场的蓬勃发展引起了业内外的广泛关…

达梦数据库-Win10安装

目录结构 前言达梦数据库达梦数据库适用场景达梦数据库 PK MySQL达梦数据库安装数据库下载解压下载的压缩文件安装详细步骤安装关键节点配置 DM管理工具启动DM管理工具DM管理工具连接达梦数据库 参考链接 前言 达梦数据库Win10系统安装整理; 达梦数据库 达梦数据库…

Netty第三部

继续Netty第二部的内容 一、ChannelHandler 1、ChannelHandler接口 ChannelHandler是Netty的主要组件,处理所有的入站和出站数据的应用程序逻辑的容器,可以应用在数据的格式转换、异常处理、数据报文统计等 继承ChannelHandler的两个子接口&#xff…