关于Python
1.Python 不需要将其编译成二进制码。你只需要直接从源代码 运行 该程序。在程
序内部,Python 会将源代码转换为称为字节码的中间形式,尔后再转换成你的电脑所使用的
语言,并运行它。实际上,这一流程使得 Python 更加易于使用,你不必再担心该如何编译程
序,或如何保证适当的库被正确的链接并加载等等步骤。这也同样使得 Python 程序更便携且
易于迁移。
2.通过 Python 来运行的你的程序有两种方法——使用交互式解释器提示符或直接运行一个源代
码文件。
基础
1.记住单引号括起的字符串和双引号括起的字符串是一样的——它们不存在任何区别。
2.用format()进行格式化方法:Python 中 format 方法所做的事情便是将每个参数值替换至格式所在的位置
age = 20
name = ‘Swaroop’
print(‘{0} was {1} years old when he wrote this book’.format(name, age))
print(‘Why is {0} playing with that python?’.format(name))
OR
age = 20
name = ‘Swaroop’
print(‘{} was {} years old when he wrote this book’.format(name, age))
print(‘Why is {} playing with that python?’.format(name))
# 对于浮点数 ‘0.333’ 保留小数点(.)后三位
print(‘{0:.3f}’.format(1.0/3))
# 使用下划线填充文本,并保持文字处于中间位置
# 使用 (^) 定义 ‘___hello___’字符串长度为 11
print(‘{0:_^11}’.format(‘hello’))
# 基于关键词输出 ‘Swaroop wrote A Byte of Python’
print(‘{name} wrote {book}’.format(name=’Swaroop’, book=’A Byte of Python’))
3.用end指定空白结尾:
print(‘a’, end=”)
print(‘b’, end=”)
得到:
ab
指定空格结尾:
print(‘a’, end=’ ‘)
print(‘b’, end=’ ‘)
print(‘c’)
得到:
a b c
(print默认以新一行\n结尾)
4.通过转义序列(Escape Sequence)来通过 \ 指定单引号
\n 表示新的一行的开始
\t表示制表符
一个放置在末尾的反斜杠表示字符串将在下一行继
续,但不会添加新的一行,如:
“This is the first sentence. \
This is the second sentence.” 实际上表示
“This is the first sentence. This is the second sentence.”
5.如果你需要指定一些未经过特殊处理的字符串,比如转义序列,那么你需要在字符串前增加
r 或 R 来指定一个 原始(Raw) 字符串。下面是一个例子:
r”Newlines are indicated by \n”
在处理正则表达式时应全程使用原始字符串。否则,将会有大量 Backwhacking 需要处
理。举例说明的话,反向引用可以通过 ‘\\1′ 或 r’\1’ 来实现。
变量
1.如何编写 Python 程序
从今以后,保存和运行 Python 程序的标准步骤如下:
对于 PyCharm 用户
1. 打开 PyCharm。
2. 以给定的文件名创建新文件。
3. 输入案例中给出的代码。
4. 右键并运行当前文件。
注意:每当你需要提供 命令行参数(Command Line Arguments)时,点击 Run -> Edit
Configurations 并在 Script parameters: 部分输入相应参数,并点击 OK 按钮:
2.逻辑行与物理行
物理行(Physical Line)是你在编写程序时 你所看到 的内容
逻辑行(Logical Line)是 Python 所看到 的单个语句。Python 会假定每一 物理行 会对应一个 逻辑行
Python 之中暗含这样一种期望:Python 鼓励每一行使用一句独立语句从而使得代码更加可
读。
强烈建议你对于每一行物理行最多只写入一行逻辑行。这个观点就是说你不应该使
用分号。实际上,我从未在 Python 程序中使用、甚至是见过一个分号。
如果你有一行非常长的代码,你可以通过使用反斜杠将
其拆分成多个物理行。这被称作显式行连接(Explicit Line Joining)
s = ‘This is a string. \
This continues the string.’
print(s)
输出:
This is a string. This continues the string.
在某些情况下,会存在一个隐含的假设,允许你不使用反斜杠。这一情况即逻辑行以括号开
始,它可以是方括号或花括号,但不能是结束括号。这被称作 隐式行连接(Implicit Line
Joining)。你可以在后面当我们讨论列表(List)的章节时了解这一点
缩进
1.空白区在各行的开头非常重要。这被称作 缩进
(Indentation)。在逻辑行的开头留下空白区(使用空格或制表符)用以确定各逻辑行的缩
进级别,而后者又可用于确定语句的分组。这意味着放置在一起的语句必须拥有相同的缩进。
每一组这样的语句被称为 块(block)
使用四个空格来缩进。这是来自 Python 语言官方的建议。
Python 将始终对块使用缩进,并且绝不会使用大括号。
运算符与表达式
1. 3+5 则输出 8 。 ‘a’ + ‘b’ 则输出 ‘ab’ 。
控制流
1.要记住 elif 和 else 部分都是可选的。一个最小规模且有效的 if 语句是这样的:
if True:
print(‘Yes, it is true’)
2.range 函数生成这一数字序列,range(1,5) 将输出序列 [1, 2, 3, 4] 。range(1,5,2) 将会输出 [1, 3] 。
range() 每次只会生成一个数字,如果你希望获得完整的数字列表,要
在使用 range() 时调用 list() 。例如下面这样: list(range(5)) ,它将会返回 [0, 1, 2,
3, 4] 。
函数
1.因为在不使用 global 语句的情况下,不可能为一个定义于
函数之外的变量赋值。
2.global 语句用以声明 x 是一个全局变量——因此,当我们在函数中为 x 进行赋值时,这
一改动将影响到我们在主代码块中使用的 x 的值。
3.默认参数:你可以通过在函数定义时附加一个
赋值运算符( = )来为参数指定默认参数值。默认参数值应该是不可变的
在函数的参数列表中拥
有默认参数值的参数不能位于没有默认参数值的参数之前。def func(a, b=5) 是有效的,
但 def func(a=5, b) 是无效的。
def func(a, b=5, c=10):
print(‘a is’, a, ‘and b is’, b, ‘and c is’, c)
func(3, 7)
func(25, c=24)
func(c=50, a=100)
4.可变参数:当我们声明一个诸如 *param 的星号参数时,从此处开始直到结束的所有位置参数
(Positional Arguments)都将被收集并汇集成一个称为“param”的元组(Tuple)。
类似地,当我们声明一个诸如 **param 的双星号参数时,从此处开始直至结束的所有关键字
参数都将被收集并汇集成一个名为 param 的字典(Dictionary)。
5.文档字符串(Documentation Strings)