大家好,这是“Python为什么”系列节目的文字稿(文末有观看地址)。

本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 “end” 之类的语法?

Python 的缩进是一个老生常谈的话题,经常有人会提及它,比如 Python 之父在上个月就恰好转发过一篇文章:

因为这篇文章,Guido 还受邀在 Python Bytes 播客上录制了一期节目:

那么,Python 为什么要用缩进来划分代码块呢?

我收集梳理了几份材料,接下来将带大家一起揭晓 Python 这么做的设计原因:

缩进语法,更加优雅

缩进语法,更加清晰

使用缩进,保持一致性,避免造成误读

使用缩进,代码更紧凑,便于浏览,没有累赘

使用缩进,已足够令解释器执行,没必要使用多余的符号

强制缩进,源自古老的 ABC 语言,Guido 是这门语言的设计者之一

其思想可能出自 Don Knuth(高德纳,著名计算机科学家,经典巨著《计算机程序设计艺术》的作者),他在 1974 年提出,在当时是很时髦和前卫的思想

使用缩进,可以终结大括号放在函数名后面还是再换一行的终极争论(据说此话题能令不同派系的程序员大打出手!)

以上罗列的原因主要来源于 Python 官方文档、官方 wiki 以及 Python 之父的早期访谈。

总而言之,Python 使用缩进语法,体现了它非常优雅、清晰的设计美学,对开发者、读者以及解释器,都极为友好。

实话说,我本人非常赞许 Python 的缩进,因此才第一眼就迷上了它,如果是使用了花括号之类的语法,那 Python 就顿时黯淡,也就食之无味了!

大家如何看待 Python 的缩进语法呢?请在评论区发表你的看法吧!

参考材料:

视频地址:

作者:豌豆花下猫

原文地址:https://www.cnblogs.com/pythonista/p/12863969.html

为什么用python缩进来划分代码_Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?...相关推荐

  1. python 括号 垃圾_Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?

    大家好,这是"Python为什么"系列节目的文字稿(文末有观看地址). 本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 "end ...

  2. python花括号代替缩进_Python 为什么甩掉累赘的花括号,使用缩进来划分代码块?...

    人人好,这是"Python为什么"系列节目的文字稿(文末有旁观地址). 本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 "end ...

  3. python代码块使用缩进表示-Python 为什么抛弃累赘的花括号,使用缩进来划分代码块?...

    大家好,这是"Python为什么"系列节目的文字稿(文末有观看地址). 本期话题:Python 为什么使用缩进来划分代码块,而不像其它语言使用花括号 {} 或者 "end ...

  4. python发明者叫什么-编程语言简史:有人不喜欢花括号,于是他发明了 Python

    原标题:编程语言简史:有人不喜欢花括号,于是他发明了 Python 经常有人会说,怎么样才能在和别人竞争岗位的过程中生胜出,又怎么样才能和老板提出要涨薪的要求,这就不得不提到核心竞争力了,那到底什么才 ...

  5. python有哪些代码_Python有哪些神一般的蜜汁操作?(附代码),

    Python有哪些神一般的蜜汁操作?(附代码), 有人说,"Python除了不会生孩子,Python从撩妹到装x,无所不能!什么都会!" 下载视频?我用Python; 玩跳一跳?我 ...

  6. python登录网页账号密码_Python 通过爬虫实现GitHub网页的模拟登录的示例代码

    1. 实例描述 通过爬虫获取网页的信息时,有时需要登录网页后才可以获取网页中的可用数据,例如获取 GitHub 网页中的注册号码时,就需要先登录账号才能在登录后的页面中看到该信息,如下图所示.那么该如 ...

  7. 初学者怎样看懂python代码_Python零基础入门-(如何让人读懂你的代码)文档注释

    目标注释的作用 单行注释(行注释) 多行注释(块注释) 01. 注释的作用使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性 02. 单行注释(行注释)以 # 开头,# 右边的所有 ...

  8. python 定时自动爬取_python实现scrapy爬虫每天定时抓取数据的示例代码

    1. 前言. 1.1. 需求背景. 每天抓取的是同一份商品的数据,用来做趋势分析. 要求每天都需要抓一份,也仅限抓取一份数据. 但是整个爬取数据的过程在时间上并不确定,受本地网络,代理速度,抓取数据量 ...

  9. python下载文件加上日期_Python实现给下载文件显示进度条和下载时间代码

    本篇文章小编给大家分享一下Python实现给下载文件显示进度条和下载时间代码,文章代码介绍的很详细,小编觉得挺不错的,现在分享给大家供大家参考,有需要的小伙伴们可以来看看. 该模块调用了三个库: 1. ...

最新文章

  1. linux wc -l 对io,linux设备驱动归纳总结(五):2.操作硬件——IO内存
  2. 3DSlicer14:Loadable Module
  3. java实现动态验证码源代码——接受ajax的jsp
  4. AttributeError: type object ‘Image‘ has no attribute ‘open‘
  5. c++函数返回值是一个引用
  6. [2017.01.04] 经典排序算法思想及其实现
  7. 什么是直方图,如何使用它来改善照片?
  8. 交通信号管理服务器,矿下交通信号控制系统
  9. JDBC Mybatis 调用 ORACLE 存储过程 函数 返回 varray 类型 function return varray out varray
  10. 情报分析-diamond_threat_model
  11. iOS 刻度尺、iOS 测量尺、iOS开发可移动的尺子、纯代码实现
  12. java EE基础概念了解
  13. 7段均衡器最佳参数_汽车音响7段均衡器设置,七段均衡器常用调校图
  14. 作为一名IT狗,天天加班,快变秃子了,我决定去植发……
  15. 计算机考研之方向解读
  16. 学习VSC配置opencv
  17. 原谅我不是一个阳光的男孩
  18. css 背景效果_css透明度怎么设置?三种css图片透明度的设置方法
  19. SqlServer微软数据库简单介绍
  20. 中国行政区域省市县三级联动json数据(包含港澳台)

热门文章

  1. 在 Windows 中,当一个应用程序窗口被关闭,该应用程序将会保留在哪里?
  2. SAP Spartacus B2B 页面 info icon 设计 - 版本1.0
  3. Firefox开发者工具里的CSS Flexbox Inspector
  4. 以非生产模式的方式启用SAP Spartacus的服务器端渲染SSR
  5. 测试:abstract class不允许出现在Angular依赖注入框架的providers区域内
  6. this.counter$ = store.select(fromExample.getCounterCounter);
  7. SAP Spartacus shipping address页面请求2.1 - setDefaultAddress
  8. 如何利用JavaScript的arguments对象实现用代码打印调用栈的需求
  9. do filtering will real delete note in DB
  10. zhihu 知乎社区里点击了Ctrl + C组合键的技术实现