013Python基础知识(补充)

Python基础知识


1、逻辑行和物理行


你所看到的代码中的行即为 物理行 ,而python将一条语言当作一个 逻辑行

python假设一个物理行对应一个逻辑行。

逻辑行的例子是形如print('Hello World')的单条语句,如果它独占一行(就象你在编辑器看到的),那么它也是一个物理行。

python本身鼓励每条语句占一行 ,这样可读性更强。

如果你希望在一个物理行包含多个逻辑行,则必须使用分号 ; 显式一个逻辑行/语句的结束. 例,

i = 5
print(i)

与下面的等效

 i = 5;
 print(i);

这样写的效果也一样

 i = 5; print(i);

甚至可以这样写

 i = 5; print(i)

虽然有多种写法,但我强烈建议你一个物理行只包含一个逻辑行。不过当逻辑行太长,也可以把它写成多个物理行。

这些办法都是为了尽可能避免分号,使得代码的可读性更强。事实上我从不使用甚至都没在python程序中看到过分号

下面是一个将逻辑行扩展为多个物理行的例子,它被称做 显式行合并(explicit line joining)

s = 'This is a string. \
 This continues the string.'
 print(s)

相应的输出为:

 This is a string. This continues the string.

与之类似的,

 print\
 (i)

相当于

 print(i)

另外某些情况下会导致 隐式行合并(implicit line joining) ,比如逻辑行使用了大中小括号,此时无需反斜杠。

在后面我们会使用列表编写程序,届时你会看到这种用法。

2、缩进


在python中空白字符是非常重要的,更具体的说是 每行开头的空白字符十分重要 。这被称作缩进。

逻辑行开头的空白字符(空格和制表符tab)用于确定逻辑行的缩进级别,依此按顺序将语句分组。

也就是说同组的语句必须拥有相同的缩进级别,而这些语句组被称作。下一章我们会看到块的重要性。

现在你需要牢记的是 错误的缩进会导致程序出错,举个例子:

 i = 5
  print('Value is ', i) #错误! 注意本行的开头多了一个空格.
 print('I repeat, the value is ', i)

运行上面代码会得到下面的错误信息:

 File "whitespace.py", line 4
 print('Value is ', i) # Error! Notice a single space at the start of the line
    ^
 IndentationError: unexpected indent

你可能注意到了程序的第2行的开头多了一个空格。错误信息告诉我们程序的语法是非法的,即程序的编写有问题。

这也意味着你不能随便开始新的语句块(除了主块, 我们一直在主块内编写)。

如何缩进

不要混合使用制表符和空格来缩进,因为这在跨越不同的平台的时候,无法正常工作。我 强烈建议 你在每个缩进层次使用 四个空格 或 单个制表符 。

选择这两种缩进风格之一。更加重要的是,选择一种风格,然后一贯地使用它,即 只 使用这一种风格。

关于空格和制表符的选择,可以参考 知乎上的讨论

3、单语句块


我们已经看到每个语句块都根据它的缩进级别将彼此区分开。不过有一个例外。

如果某语句块只包含单条语句,你可以把它放到同一行,例如条件语句或循环语句。

下面的例子清楚的说明了这点:

>>> flag = True
>>> if flag: print 'Yes'
...
Yes

注意上面的单条语句被放置到同一行而没有作为单独的块。

虽然你利用这点可以让程序变的更短,但我强烈建议你避免使用它(除了错误检测),主要原因是使用适当的缩进可以更方便的添加额外的语句。

4、编码方式


Python 2 里,.py文件默认的编码方式为ASCII。而Python 3 的源码的默认编码方式为UTF‐8。

如果想使用一种不同的编码方式来保存 Python 代码,我们可以在每个文件的第一行(或者hash-bang下)放置编码声明(encoding declaration):

# -*- coding: <encoding name> -*-

了解更多信息,可以参阅 PEP 263: 指定Python源码的编码方式

猜你喜欢

转载自www.cnblogs.com/FirstReed/p/11731525.html
今日推荐