013Python基础知识(补充)
Posted FirstReed
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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源码的编码方式 。
以上是关于013Python基础知识(补充)的主要内容,如果未能解决你的问题,请参考以下文章