跳至主要內容

注释与空白

大约 5 分钟

注释与空白

import this

Python之禅 by Tim Peters

优美胜于丑陋(Python 以编写优美的代码为目标)

明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

可读性很重要(优美的代码是可读的)

即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

当存在多种可能,不要尝试去猜测

而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

命名空间是一种绝妙的理念,我们应当多加利用!(倡导与号召)

转载自https://blog.csdn.net/gzlaiyonghao/article/details/2151918open in new window

这是一系列原则和哲学,指导Python的设计和编程风格。它强调代码的可读性、简洁性和明确性。

你可以在 python 中使用import this来打印它的原文,并在之后的编程中时常回顾

基本上,编程语言都允许插入大量的注释与空白,来增加可读性与可维护性

空行

python 中的空行都会被忽略

print(1)



print(2)

print(3)

注释

在 python 中,注释是以#开头的内容

注释是给人看的,#后面的内容都会被完全忽视,不会被实际执行

# 这是一行注释,解释器会忽略它

print('awa')  # 这也是注释

   # 注释的内容都会被忽略 print('awa')



print('#当然,在字符串中的不算')

空白

python 中大多数地方加空格都不会产生什么影响

print  ( 1  )

# 加在字符串里面的内容,当然会作为字符串的一部分输出
print('   awa   ')

# 建议在运算符两端加上空格
print(1 + 3 * 5)

但是,由于 python 使用缩进(indent)来区分代码层级,不能在每行的开头随便加空格

虽然稍显严格,但是这对产生整齐的代码很有帮助

print(1)
 print(2) # 这会报错!

对于所有类型的括号,你都可以换行和添加空格,python 会忽略中间的所有空白

有时这对可读性很有帮助

print(
    1 +
    2
)

# 你不必现在就搞懂这些意味着什么,这只是一个示例
print(
    'Hello,',
    'world!',  # 最后一个逗号是可选的
)

print([
    1,
    2,
    3,
])

print({
    3,
    2,
    1,
})

多行字符串

其实字符串也有支持换行的形式,这叫作多行字符串

你写的代码本身也是一串字符串

事实上,你的代码就是作为字符串被解析的

使用'''或者"""来包裹

print(
'''Hello,
world!'''
)

中间所有的空白和换行都会包括进去!

print('''
    Hello,
    world!
''')

转义符

换行符也是一个符号,但是它没法直接表示出来,是一种特殊的符号

在字符串的字面量内部,我们在\后接上特定的内容来表示另一些字符,而不是原本的含义,于是\也被称为转义符

换行符的表示方法是\n,类似的还有制表符\t

这些基本的对应关系是约定俗成的,在绝大多数编程语言中都适用

Python 转义字符逐个详解open in new window

打印换行符

print('awa\nbwb')

转义符还有另外的应用场景

例如,字符串是以'或者"作为标识的,如果我想要在'包裹的字符串里表示'呢?

比如

print('It's me!')

如果这样实现,解释器就会报错,因为这个字符串是用单引号括起来的

但是中间又出现一个单引号,到底是哪两个单引号构成的字符串呢?

于是我们规定,这时使用\',就没有歧义了

print('It\'s me!')

python 有两种引号表示字符串,所以这种情况有更加简单的方案:

print("It's me!")

但是当需要同时表示两种类型的时候,就只能上转义符了

# python中,如果没有对应的转换,则表示原样输出
print('\"Me\":It\'s me!')

续行符

有时我们想要将一些东西拆成多行,但是如果是不支持换行的内容呢

你可以在末尾写一个\并且紧跟着一个换行,这叫作续行符

python 在读取的时候,会跳到下一行,就好像没有换行一样

print(
    'Hello,\
    world!'  # 但是会包括前面的空格
)

续行符后不能有任何内容,注释和空格都不行!

print(
    'Hello,\ # 这会报错!
    world!'
)

续行符可以理解为,对代码中看不见的那个换行符 \n 的转义

挑战: 打印反斜杠

等等,是不是漏了什么……如果我想要表示反斜杠本身呢?

# 在这里填入代码...

关于文件路径的分隔符

事实上,只有 windows 系统中用反斜杠\作为文件路径的分隔符,其他的项目中,linux中都使用/

这导致在 windows 的文件处理程序中经常出现大量的\\(不过基本也能用/代替啦)

参考答案
print('\\')
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v3.0.0-alpha.10