Python行结构(逻辑行、物理行、显式拼接行、隐式拼接行、空白行)

2024-09-05 01:12

本文主要是介绍Python行结构(逻辑行、物理行、显式拼接行、隐式拼接行、空白行),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Python行结构

(逻辑行、物理行、显式拼接行、隐式拼接行、空白行)

本文目录:

零、时光宝盒

一、Python PEP8 编码行规范

1.1、Maximum Line Length 行的最大长度

1.2、在二元运算符之前应该换行吗?

 二、Python行结构

2.1、物理行

 2.2、逻辑行

2.3、显式拼接行

2.4、隐式拼接行

2.5、Blank Lines 空行、空白行

2.6、其他


 零、时光宝盒

2ab463de26a541818271efa176656ae6.png

  最近听到一首歌《有风无风皆自由》,从小到大,我都是平凡的,不争不夺,悄悄行走于人海中,做个谁都不会留意的某某某。可命运偏偏。。。当这一切浮华散去,我还是原来的那个我,与世无争,存在过,有似乎不存在。怀念那些曾经一同走在路上的朋友,不知有多少正在疗伤,你们还好吗?

有风无风皆自由

溪流会转弯,麦子会低头。大雁来了走,又一个春秋。岁月有褶皱,故事在生锈。
头顶的星空,永不朽。
脚下的风霜,融化在白昼。李白的月光,照耀着九州。童年的纸船,中年的渡口。
人海里漂流,不回头。
心若无所求,有风无风皆自由。
向往着远方,寻找理想的温柔。
平凡日子中,不争不夺不忧愁。
行走人海中,做个某某某。
心若无所求,有风无风皆自由
把晚风做酒,陪我越生活荒丘
等一场大雨,洗礼浑浊的眼眸。
雨过天晴后,一路花开一路走。
脚下的风霜,融化在白昼。李白的月光,照耀着九州。童年的纸船,中年的渡口。
人海里漂流,不回头。

     逆境清醒

2024.9.03

7f8eafc867aa425cab7d368ee0eb4dd8.gif

一、Python PEP8 编码行规范

Python PEP8 编码规范中对行的描述如下:

1.1、Maximum Line Length 行的最大长度

  所有行限制的最大字符数为79。
  对于结构限制较少的长文本块(文档字符或者注释),行长度应限制在72个字符以内。

  限制编辑器窗口宽度可以使多个文件并行打开,并且在使用在相邻列中显示两个版本的代码审查工具时效果良好。

  大多数工具中的默认包装会破坏代码的视觉结构,使其更难理解。选择这些限制是为了避免在窗口宽度设置为80的编辑器中换行,即使该工具在换行时在最后一列中放置了标记字形。一些基于网络的工具可能根本不提供动态换行。

  一些团队更喜欢较长的行宽。如果代码主要由一个团队维护,那这个问题就能达成一致,可以将行长限制增加到99个字符,前提是注释和文档字符串仍然以72个字符包装折行。

  Python标准库是保守的,要求将行限制在79个字符以内(文档字符串/注释限制在72个字符以内)。

  换行的首选方式是在括号、方括号和大括号内使用Python的隐含行继续。通过将表达式括在括号中,可以将长串拆分为多行。这些应该优先使用,而不是使用反斜杠来继续行。

  反斜杠有时可能仍然合适。例如,在Python 3.10之前,long,multiple with语句不能使用隐式延续,因此在这种情况下反斜杠是可以接受的:

with open('/path/to/some/file/you/want/to/read') as file_1, \open('/path/to/some/file/being/written', 'w') as file_2:file_2.write(file_1.read())

(有关此类多行语句缩进的进一步想法,请参阅关于多行if语句的讨论。)

python 代码中的缩进规则(史上最全最详细解释)icon-default.png?t=N7T8https://blog.csdn.net/weixin_69553582/article/details/141863803

另一种情况是断言语句。
确保适当地缩进连续的行。

✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆

1.2、在二元运算符之前应该换行吗?

Should a line break before or after a binary operator? 在二元运算符之前应该换行吗?

  几十年来,推荐的风格是在二元运算符之后中断。但这会以两种方式损害可读性:运算符往往分散在屏幕上的不同列中,每个运算符都会从其操作数移动到前一行。

  在这里,必须注意做额外的工作来分辨哪些项目被添加,哪些项目被删除:

# Wrong:
#错误:
# operators sit far away from their operands
#运算符远离操作数
income = (gross_wages +taxable_interest +(dividends - qualified_dividends) -ira_deduction -student_loan_interest)

  为了解决这个可读性问题,数学家和他们的出版商遵循相反的惯例。Donald Knuth在他的《计算机与排版》系列中解释了传统规则:“虽然段落中的公式总是在二进制操作和关系之后中断,但显示的公式总是会在二进制操作之前中断”[3]。


  遵循数学的传统通常会产生更易读的代码:

# Correct:
#正确:
# easy to match operators with operands
#易于将运算符与操作数匹配
income = (gross_wages+ taxable_interest+ (dividends - qualified_dividends)- ira_deduction- student_loan_interest)

  在Python代码中,允许在二元运算符之前或之后中断,只要本地的约定是一致的。对于新代码,建议使用Knuth的样式。

 二、Python行结构

  Python 程序可以拆分为多个 逻辑行。

2.1、物理行

物理行:
  物理行是一序列字符,由行尾序列终止。代码编辑器中显示的代码,每一行内容是一个物理行。包括空行。

  源文件和字符串可使用任意标准平台行终止序列 - Unix ASCII 字符 LF (换行)、 Windows ASCII 字符序列 CR LF (回车换行)、或老式 Macintosh ASCII 字符 CR (回车)。

  不管在哪个平台,这些形式均可等价使用。输入结束也可以用作最终物理行的隐式终止符。

  嵌入 Python 时,传入 Python API 的源码字符串应使用 C 标准惯例换行符(\n,代表 ASCII 字符 LF, 行终止符)。

以下代码代码一共有7行,即有7个物理行。

#!/usr/bin/python
njstr1="人的一生会遇到两个人,"
njstr2="一个惊艳了时光,"
njstr3="一个温柔了岁月。"print(njstr1,njstr2,njstr3)

代码运行后输出结果: 

人的一生会遇到两个人, 一个惊艳了时光, 一个温柔了岁月。 

✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆

 2.2、逻辑行

  NEWLINE 形符表示结束逻辑行。语句不能超出逻辑行的边界,除非句法支持 NEWLINE (例如,复合语句中的多行子语句)。根据显式或隐式 行拼接 规则,一个或多个 物理行 可组成逻辑行。

 代码:

jiang={"njstr1":"人的一生会遇到两个人","njstr2":"一个惊艳了时光","njstr3":"一个温柔了岁月"}
print(jiang)

无论是写成怎样的缩进格式,例如下图:

逻辑行:这个语句,虽然书写为多行,但解释器进行解释时,只当成一个语句处理,即一个逻辑行。所以,无论分开的其他行怎么缩进,都不会影响程序运行结果。

最后代码运行后输出的结果都是同样的: 

 {'njstr1': '人的一生会遇到两个人', 'njstr2': '一个惊艳了时光', 'njstr3': '一个温柔了岁月'}

✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆


2.3、显式拼接行

  两个及两个以上的物理行可用反斜杠(\)拼接为一个逻辑行,

规则如下:

  以不在字符串或注释内的反斜杠结尾时,物理行将与下一行拼接成一个逻辑行,并删除反斜杠及其后的换行符。

例如:

if 1900 < year < 2100 and 1 <= month <= 12 \and 1 <= day <= 31 and 0 <= hour < 24 \and 0 <= minute < 60 and 0 <= second < 60:   # Looks like a valid datereturn 1

反斜杠用法注意事项:

  以反斜杠结尾的行,不能加注释;

  反斜杠也不能拼接注释。

  除字符串字面值外,反斜杠不能拼接形符(如,除字符串字面值外,不能用反斜杠把形符切分至两个物理行)。

  反斜杠只能在代码的字符串字面值里,在其他任何位置都是非法的。

✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆

2.4、隐式拼接行

圆括号、方括号、花括号内的表达式可以分成多个物理行,不必使用反斜杠。

month_names = ['Januari', 'Februari', 'Maart',      # These are the'April',   'Mei',      'Juni',       # Dutch names'Juli',    'Augustus', 'September',  # for the months'Oktober', 'November', 'December']   # of the year

隐式行拼接可含注释;

后续行的缩进并不重要;

还支持空的后续行。

隐式拼接行之间没有 NEWLINE 形符。

三引号字符串支持隐式拼接行,但不支持注释。

✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆

2.5、Blank Lines 空行、空白行

Blank Lines 空行

  用两个空行括住顶级函数和类定义。即:顶层函数和类的定义,前后用两个空行隔开。

  类中的方法定义用一个空行隔开。

  可以(谨慎地)使用额外的空白行来分隔相关功能组。

  在一堆相关的单行代码(例如一组虚拟实现)之间可以省略空行。

  在函数中用空行来表示逻辑部分(谨慎使用)。

  Python接受control-L(即^L)形式的换页符(提要字符)作为空格;许多工具将这些字符视为页面分隔符,因此您可以使用它们来分隔文件相关部分的页面。请注意,一些编辑器和基于web的代码查看器可能无法将control-L识别为表单提要,并将在其位置显示另一个字形。


  只包含空格符、制表符、换页符、注释的逻辑行会被忽略(即不生成 NEWLINE 形符)。

  交互模式输入语句时,空白行的处理方式可能因读取 - 求值 - 打印循环(REPL)的具体实现方式而不同。

  标准交互模式解释器中,完全空白的逻辑行(即连空格或注释都没有)将结束多行复合语句。

✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆✨❆

2.6、其他

  行首含换页符时,缩进计算将忽略该换页符。

  换页符在行首空白符内其他位置的效果未定义(例如,可能导致空格计数重置为零)。

  连续行的缩进层级以堆栈形式生成 INDENT 和 DEDENT 形符,说明如下:

  读取文件第一行前,先向栈推入一个零值,该零值不会被移除。

  推入栈的层级值从底至顶持续增加。

  每个逻辑行开头的行缩进层级将与栈顶行比较。如果相等,则不做处理。如果新行层级较高,则会被推入栈顶,并生成一个 INDENT 形符。如果新行层级较低,则 应当 是栈中的层级数值之一;栈中高于该层级的所有数值都将被移除,每移除一级数值生成一个 DEDENT 形符。文件末尾,栈中剩余的每个大于零的数值生成一个 DEDENT 形符。

  python使用缩进来表示代码块 。缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

  当语句的条件部分足够长,需要跨多行书写时,值得注意的是,两个字符的关键字(即 )加上一个空格和一个左括号的组合会为多行条件语句的后续行创建一个自然的 4 个空格缩进。这可能会与嵌套在语句内的缩进代码套件产生视觉冲突,该代码也会自然缩进到 4 个空格。此 PEP 对于如何(或是否)进一步在视觉上将此类条件行与语句内的嵌套套件区分开来,没有明确立场。在这种情况下,可接受的选项包括但不限于:ifififif

       推荐阅读:

从0开始学python,教程总目录(更新中ing。。。)icon-default.png?t=N7T8https://blog.csdn.net/weixin_69553582/article/details/141649919自言自语的独角戏小丑“讲”的“演讲”——留言给那些曾经一起同行疗伤的朋友icon-default.png?t=N7T8https://blog.csdn.net/weixin_69553582/article/details/1413008932023年上半年信息系统项目管理师真题与答案解释icon-default.png?t=N7T8https://blog.csdn.net/weixin_69553582/article/details/137467224[你找到牵手一辈子的人了吗?] 七夕情人节特辑icon-default.png?t=N7T8https://blog.csdn.net/weixin_69553582/article/details/132425595深度学习框架TensorFlowicon-default.png?t=N7T8https://blog.csdn.net/weixin_69553582/category_12360543.html

9e598365ba5344e282453e71a676a056.jpeg​​​​

b9b9f2b9374646798ca554110a498cda.jpeg​​​​

23f61e3eac99458296be0fedea10019e.jpeg​​​​

给照片换底色(python+opencv)猫十二分类基于大模型的虚拟数字人__虚拟主播实例

bfa502b957c247a7872d7e645d4c6f03.jpeg​​​​

2f073e39924e42d2b33221f4262dcc1d.jpeg​​​​

9d7e2b6a00aa45fd82291f0d5f9eea7e.jpeg​​​​

计算机视觉__基本图像操作(显示、读取、保存)直方图(颜色直方图、灰度直方图)直方图均衡化(调节图像亮度、对比度)

01bfb23f2f894ee0b0164f52e57bbbbc.png​​​​

47c92d6cf9fe4d279a142480a4340a0d.png​​​​

1620a2a7b0914c42b3a8254e94269a79.png​​​​

语音识别实战(python代码)(一)

 人工智能基础篇

 计算机视觉基础__图像特征

93d65dbd09604c4a8ed2c01df0eebc38.png​​​​

 matplotlib 自带绘图样式效果展示速查(28种,全)

074cd3c255224c5aa21ff18fdc25053c.png​​​​

Three.js实例详解___旋转的精灵女孩(附完整代码和资源)(一)

fe88b78e78694570bf2d850ce83b1f69.png​​​​

62e23c3c439f42a1badcd78f02092ed0.png​​​​

cb4b0d4015404390a7b673a2984d676a.png​​​​

立体多层玫瑰绘图源码__玫瑰花python 绘图源码集锦

 Python 3D可视化(一)

让你的作品更出色——词云Word Cloud的制作方法(基于python,WordCloud,stylecloud)

e84d6708316941d49a79ddd4f7fe5b27.png​​​​

938bc5a8bb454a41bfe0d4185da845dc.jpeg​​​​

0a4256d5e96d4624bdca36433237080b.png​​​​

 python Format()函数的用法___实例详解(一)(全,例多)___各种格式化替换,format对齐打印

 用代码写出浪漫__合集(python、matplotlib、Matlab、java绘制爱心、玫瑰花、前端特效玫瑰、爱心)

python爱心源代码集锦(18款)

dc8796ddccbf4aec98ac5d3e09001348.jpeg​​​​

0f09e73712d149ff90f0048a096596c6.png​​​​

40e8b4631e2b486bab2a4ebb5bc9f410.png​​​​

 Python中Print()函数的用法___实例详解(全,例多)

 Python函数方法实例详解全集(更新中...)

 《 Python List 列表全实例详解系列(一)》__系列总目录、列表概念

09e08f86f127431cbfdfe395aa2f8bc9.png​​​​

6d64357a42714dab844bf17483d817c0.png​​​​

用代码过中秋,python海龟月饼你要不要尝一口?

 python练习题目录

03ed644f9b1d411ba41c59e0a5bdcc61.png​​​​

daecd7067e7c45abb875fc7a1a469f23.png​​​​

17b403c4307c4141b8544d02f95ea06c.png​​​​

草莓熊python turtle绘图(风车版)附源代码

 ​草莓熊python turtle绘图代码(玫瑰花版)附源代码

 ​草莓熊python绘图(春节版,圣诞倒数雪花版)附源代码

4d9032c9cdf54f5f9193e45e4532898c.png​​​​

c5feeb25880d49c085b808bf4e041c86.png​​​​

 巴斯光年python turtle绘图__附源代码

皮卡丘python turtle海龟绘图(电力球版)附源代码

80007dbf51944725bf9cf4cfc75c5a13.png​​​​

1ab685d264ed4ae5b510dc7fbd0d1e55.jpeg​​​​

1750390dd9da4b39938a23ab447c6fb6.jpeg​​​​

 Node.js (v19.1.0npm 8.19.3) vue.js安装配置教程(超详细)

 色彩颜色对照表(一)(16进制、RGB、CMYK、HSV、中英文名)

2024年9月多家权威机构____编程语言排行榜__薪酬状况

aa17177aec9b4e5eb19b5d9675302de8.png​​​​​

38266b5036414624875447abd5311e4d.png​​​​

6824ba7870344be68efb5c5f4e1dbbcf.png​​​​

 手机屏幕坏了____怎么把里面的资料导出(18种方法)

【CSDN云IDE】个人使用体验和建议(含超详细操作教程)(python、webGL方向)

 查看jdk安装路径,在windows上实现多个java jdk的共存解决办法,安装java19后终端乱码的解决

1408dd16a76947e4a7eb3c54cd570d95.png​​​​

vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)

fea225cb9ec14b60b2d1b797dd8278a2.png​​​​

bba02a1c4617422c9fbccbf5325850d9.png​​​​

37d6aa3e03e241fa8db72ccdfb8f716b.png​​​​

2023年春节祝福第二弹——送你一只守护兔,让它温暖每一个你【html5 css3】画会动的小兔子,炫酷充电,字体特

 别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(4套)

SVG实例详解系列(一)(svg概述、位图和矢量图区别(图解)、SVG应用实例)

5d409c8f397a45c986ca2af7b7e725c9.png​​​​

6176c4061c72430eb100750af6fc4d0e.png​​​​

1f53fb9c6e8b4482813326affe6a82ff.png​​​​

【程序人生】卡塔尔世界杯元素python海龟绘图(附源代码),世界杯主题前端特效5个(附源码)HTML+CSS+svg绘制精美彩色闪灯圣诞树,HTML+CSS+Js实时新年时间倒数倒计时(附源代码)

 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

fffa2098008b4dc68c00a172f67c538d.png​​​​

5218ac5338014f389c21bdf1bfa1c599.png​​​​

c6374d75c29942f2aa577ce9c5c2e12b.png​​​​

 tomcat11、tomcat10 安装配置(Windows环境)(详细图文)

 Tomcat端口配置(详细)

 Tomcat 启动闪退问题解决集(八大类详细)

这篇关于Python行结构(逻辑行、物理行、显式拼接行、隐式拼接行、空白行)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1137552

相关文章

python: 多模块(.py)中全局变量的导入

文章目录 global关键字可变类型和不可变类型数据的内存地址单模块(单个py文件)的全局变量示例总结 多模块(多个py文件)的全局变量from x import x导入全局变量示例 import x导入全局变量示例 总结 global关键字 global 的作用范围是模块(.py)级别: 当你在一个模块(文件)中使用 global 声明变量时,这个变量只在该模块的全局命名空

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

usaco 1.3 Mixing Milk (结构体排序 qsort) and hdu 2020(sort)

到了这题学会了结构体排序 于是回去修改了 1.2 milking cows 的算法~ 结构体排序核心: 1.结构体定义 struct Milk{int price;int milks;}milk[5000]; 2.自定义的比较函数,若返回值为正,qsort 函数判定a>b ;为负,a<b;为0,a==b; int milkcmp(const void *va,c

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

nudepy,一个有趣的 Python 库!

更多资料获取 📚 个人网站:ipengtao.com 大家好,今天为大家分享一个有趣的 Python 库 - nudepy。 Github地址:https://github.com/hhatto/nude.py 在图像处理和计算机视觉应用中,检测图像中的不适当内容(例如裸露图像)是一个重要的任务。nudepy 是一个基于 Python 的库,专门用于检测图像中的不适当内容。该

自定义类型:结构体(续)

目录 一. 结构体的内存对齐 1.1 为什么存在内存对齐? 1.2 修改默认对齐数 二. 结构体传参 三. 结构体实现位段 一. 结构体的内存对齐 在前面的文章里我们已经讲过一部分的内存对齐的知识,并举出了两个例子,我们再举出两个例子继续说明: struct S3{double a;int b;char c;};int mian(){printf("%zd\n",s

pip-tools:打造可重复、可控的 Python 开发环境,解决依赖关系,让代码更稳定

在 Python 开发中,管理依赖关系是一项繁琐且容易出错的任务。手动更新依赖版本、处理冲突、确保一致性等等,都可能让开发者感到头疼。而 pip-tools 为开发者提供了一套稳定可靠的解决方案。 什么是 pip-tools? pip-tools 是一组命令行工具,旨在简化 Python 依赖关系的管理,确保项目环境的稳定性和可重复性。它主要包含两个核心工具:pip-compile 和 pip

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出 在数字化时代,文本到语音(Text-to-Speech, TTS)技术已成为人机交互的关键桥梁,无论是为视障人士提供辅助阅读,还是为智能助手注入声音的灵魂,TTS 技术都扮演着至关重要的角色。从最初的拼接式方法到参数化技术,再到现今的深度学习解决方案,TTS 技术经历了一段长足的进步。这篇文章将带您穿越时

HTML提交表单给python

python 代码 from flask import Flask, request, render_template, redirect, url_forapp = Flask(__name__)@app.route('/')def form():# 渲染表单页面return render_template('./index.html')@app.route('/submit_form',