文章目录
- 1. 问题描述
- 2. 设置文本编辑器的规则
- 2.1 PyCharm 设置
- 2.2 Visual Studio Code 设置
今天写代码遇到一个滑稽的问题,python代码的换行也有规则,于是记录一下
1. 问题描述
在刷LeetCode验证二叉树的时候我写了如下代码:
if (not helper(node.right, val, upper))
or (not helper(node.left, lower, val)):
return False
但在pycharm中这行代码是报错的,原因如下:
- 条件表达式不应该用括号包围分开到两行书写。
- 不能在
if
条件表达式结束的行使用括号后直接断行。
if
后的条件表达式被错误地分成了两行,并且括号没有正确地封闭,导致 Python 解析器无法正确理解我的意图。
正确的写法
if (not helper(node.right, val, upper) or
not helper(node.left, lower, val)):
return False
或者也可以使用反斜杠 \
来表示行的继续:
if not helper(node.right, val, upper) \
or not helper(node.left, lower, val):
return False
常见注意点
- 保持括号平衡:确保所有的开括号和闭括号成对出现。
- 逻辑行与物理行:Python 中,通常一条语句(逻辑行)写在一行上(物理行),但可以使用括号或反斜杠来分行书写较长的语句。
- 避免不必要的括号:虽然括号有助于提高代码的可读性,但在 Python 的
if
语句中过多的括号是不必要的,除非是为了明确复杂表达式的优先级。
2. 设置文本编辑器的规则
2.1 PyCharm 设置
在 PyCharm 中,可以设置标尺(ruler),可以直接观察代码行的长度。设置方法如下:
- 首先打开 File(文件) > Settings(设置)
- 导航至 Editor(编辑器) > Code Style(代码样式)。
- 在 强制换行位置和视觉指南 中输入
79
。
这样设置后,PyCharm 会在每个打开的文件中的第79列位置显示一条垂直线,这帮助我在编码时直观地看到是否超过了行长度限制。
2.2 Visual Studio Code 设置
Visual Studio Code (VS Code) 也支持类似的设置:
- 打开设置,可以通过点击左下角的齿轮图标,选择 Settings。
- 在搜索框中输入 “rulers”,找到 Editor: Rulers。
- 点击 “Add Item” 并输入
79
,然后按Enter确认。
设置后,VS Code 同样会在编辑器中每行的第79个字符处显示一条垂直的标线。
当然,pycharm或者右下方也会显示当前的鼠标位置;使用代码格式化也可以
推荐我的相关专栏: python 错误记录