关于 python 的缩进「建议收藏」

关于 python 的缩进「建议收藏」python对缩进是敏感的,而大多教程对应缩进也只是几句话带过,对新手十分不友好,本文就把python常见的缩进问题做了一些整理。

大家好,又见面了,我是你们的朋友全栈君。


引言

python 对缩进是敏感的,而大多教程对缩进规则,往往就几句话带过,对于没有其他语言基础的初学者,十分不友好,本文就把python常见的缩进问题做了一些整理。


一、Python缩进长度及缩进字符

常看到一些Python缩进错误的解读,“tab符和空格做为缩进不能混用”“缩进一定是4个空格”。实际上并没有这些限制,例如图中的示例就可以正常运行。

在这里插入图片描述

空格tab符通常都以空白形式显示。如果混用,代码容易意混淆,增加维护及调试的困难、降低了代码易读性。因此 Python PEP8 编码规范,指导使用4个空格作为缩进。而实际开发,比较复杂的代码则会选择2个空格做为缩进,这样更易于阅读那些嵌套比较深的代码。
在这里插入图片描述

二、Python代码缩进规则

1.物理行和逻辑行的概念

判断缩进,首先要区分物理行和逻辑行,缩进是针对逻辑行的。

物理行:代码编辑器中显示的代码,每一行内容是一个物理行。
在这里插入图片描述

逻辑行:Python解释器对代码进行解释,一个语句是一个逻辑行。
在这里插入图片描述


python代码中

1、使用";"号将两个或多个逻辑行合并成一个物理行。
2、使用"\"号连接两个物理行。
3、字典、列表等变量赋值语句,是可以直接书写为多个物理行的。

在这里插入图片描述


2.缩进规则

1、逻辑行的“首行”需要顶格,即无缩进(也就是一份源码的第一个逻辑行)
代码如下(示例):

在这里插入图片描述


2、相同逻辑层保持相同的缩进
在这里插入图片描述


3、”:”标记一个新的逻辑层
增加缩进表示进入下一个代码层
减少缩进表示返回上一个代码层
在这里插入图片描述


三、常用python IDE的缩进相关

1、常用的IDE都会有自动缩进的机制,即输入“:”号之后,按“回车”会自动进行缩进。
例如pycharm的代码编辑:
在这里插入图片描述
2、设置使用什么字符标识缩进、tab符做为缩进、一个tab代替几个空格、行连接缩进量,等等。


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125214.html原文链接:https://javaforall.net

(0)
上一篇 2022年4月19日 上午9:20
下一篇 2022年4月19日 上午9:40


相关推荐

  • ie11安装程序遇到错误_ie11卸载不了发生错误

    ie11安装程序遇到错误_ie11卸载不了发生错误初始故障:360浏览器、ie浏览器启动后卡死,首先卸载360浏览器,出现异常,随后程序卸载中卸载ie11,重新添加时,报错0x8000ffff故障描述:无法安装ie相关内容,所有浏览器无法下载软件程序,windows搜索按钮打开无内容,所有windows组件无法添加,报错0x8000ffff,程序可选功能卸载ie11失败解决步骤:1.sfc/scannow,提示修复程序运行中,请重新启动。删除pending.xml,使用sfc/scannow扫描出错误文件,提示无法修复2.使用DISM.exe

    2026年3月7日
    5
  • pre标签

    pre标签今天正式开始学习前端的 HTML 部分 虽然以前有接触 但是今天学到一个新标签 pre 预编排标签 pre 可以使文本完全按照源文件中的编排格式 一模一样地在浏览器中显示 pre 标签的一个常见应用就是用来表示计算机的源代码 可以导致段落断开的标签 例如标题 p 和 address 标签 绝不能包含在 pre 所定义的块里 尽管有些浏览器会把段落结束标签解释为简单地换行 但是这种行为在

    2026年3月19日
    2
  • 框架结构和砖混结构的区别_react框架官网

    框架结构和砖混结构的区别_react框架官网实现:创建四个组件,分别是头组件,尾组件,list组件,item组件,存在于这个mvc中的。在APP.js中分别引入前三个个组件(item组件是存在于list中的,所以在list中引入item组件)在app.js中写好初始数据,在list中显示出来const{todos}=this.propsreturn(<ul>{todos.map(todo=>{return<Itemkey={

    2025年10月31日
    4
  • 【TARS】分布式存储系统DCache

    【TARS】分布式存储系统DCache0 学习链接 TARS 基金会的介绍链接 1 初识 DCacheDCache 是一个基于 TARS 框架开发的分布式 NoSQL 存储系统 支持多种数据结构 包括了 key value 键值对 k k row 多键值 list 列表 set 集合 zset 有序集合 等 满足多种业务需求 其中 key value 是最简单也是最常用的类型 我们只需完成以下步骤即可在服务中使用 key value 缓存服务创建 KV 缓存模块获取 DCache 接口文件创建缓存服务代理调用缓

    2026年3月26日
    3
  • 关于虚拟机(centos7)没有ens33 ip地址的解决方法(已解决)

    关于虚拟机(centos7)没有ens33 ip地址的解决方法(已解决)点击 esc 键 然后输入 wq 注意这里是冒号加 wq 保存退出 输入 ifconfigens3 有了 ip 地址 出现下图这样的情况发现没有 ens33 将最后 ONBOOT no 改为 yes 即可 接着重启网络服务就可以看到 ip 地址 输入 i 进行编辑 出现下图表示已经重启成功 这样就开启了 ens33

    2026年3月16日
    2
  • 常见JVM面试题及答案整理[通俗易懂]

    常见JVM面试题及答案整理[通俗易懂]前言总结了JVM一些经典面试题,分享出我自己的解题思路,希望对大家有帮助,有哪里你觉得不正确的话,欢迎指出,后续有空会更新。1.什么情况下会发生栈内存溢出。思路:描述栈定义,再描述为什么会溢出,再说明一下相关配置参数,OK的话可以给面试官手写是一个栈溢出的demo。我的答案:栈是线程私有的,他的生命周期与线程相同,每个方法在执行的时候都会创建一个栈帧,用来存储局部变量表,操作…

    2022年6月9日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号