Python教程(廖雪峰)_1
§.1 Python简介
Python有哪些缺点呢?
- 运行速度慢
C语言:编译型语言。运行前直接编译成CPU能执行的机器码,所以非常快。
Python:解释型语言。执行时会一行行地翻译成CPU能理解的机器码,翻译过程非常耗时,所以很慢。 - 代码不能加密。
凡是编译型的语言,不用发布源代码,只需要把编译后的机器码(xxx.exe)发布出去;而解释型的语言,则必须把源码发布出去。
§.2 安装Python
略。
§.2.1 Python解释器
CPython:官方版本的解释器,用C语言开发的
IPython:基于CPython之上的一个交互式解释器
PyPy:采用JIT技术,对Python代码进行动态编译,显著提高执行速度。(PyPy和CPython有一些是不同的,可能会有不同的结果。需要了解PyPy和CPython的不同点)
Jython:在Java平台上的Python解释器,编译成Java字节码执行。
IronPython:在微软.Net平台上的Python解释器,编译成.Net的字节码。
小结:Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法是通过网络调用来交互,确保各程序之间的独立性。
§.3 第一个Python程序
在Python交互式模式下,可以直接输入代码,然后执行并立刻得到结果。在命令行模式下,可以直接运行.py
文件。
§.3.1 使用文本编辑器
§.3.2 Python代码运行助手
§.3.3 输入和输出
输入是Input,输出是Output。 input() 和 print() 是在命令行下面最基本的输入和输出因此,我们把输入输出统称为Input/Output,或者简写为IO。
§.4 Python基础
Python使用缩进来组织代码块。Python程序是大小写敏感的。
§.4.1 数据类型和变量
数据类型
- 整数:1,-1000,0xff00(十六进制)
整数运算永远是精确的,没有大小限制 - 浮点数:1.23,1.23e9,-9.01e-5
浮点数运算可能有误差,如3.15+0.01 = 3.1599999999999997
没有大小限制,但是超出一定范围就直接表示为 inf(无限大) - 字符串:’abc‘,“xyz”
用转义字符\可以转义很多字符,用r\’\’表示\’\’内部的字符串默认不转义,用\’\’\’……\’\’\’ 的格式表示多行内容 - 布尔值:True,False
布尔值可以用and、or和not运算。 - 空值:None
变量
变量名必须是大小写英文、数字和下划线的组合,且不能用数字开头。同一个变量可以反复赋值,且可以是不同类型的变量。Python这种变量本身类型不固定的语言称之为动态语言。
执行赋值语句 a = \’ABC\’ ,解释器创建了字符串 \’ABC\’ 和变量 a ,并把 a指向 \’ABC\’
常量
通常用全部大写的变量名表示常量: PI = 3.14159265359
§.4.1 字符串和编码
字符编码
字符 | ASCII (单字节) | Unicode (双字节) | UTF-8 (可变长字节) |
A | 01000001 | 00000000 01000001 | 01000001 |
中 | – | 01001110 00101101 | 11100100 10111000 10101101 |
在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编码。
字符串
在Python 3中,字符串是以Unicode编码的。对于单个字符的编码,Python提供了ord()
函数获取字符的整数表示,chr()
函数把编码转换为对应的字符。
由于Python的字符串类型是str
,一个字符对应若干个字节。bytes
类型的数据用带b
前缀,每个字符都只占用一个字节。
str
通过encode()
方法可以编码为指定的bytes。
在bytes
中,无法显示为ASCII字符的字节,用\x##
显示。要把bytes
变为str
,就需要用decode()
方法。
为了避免乱码问题,应当始终坚持使用UTF-8编码对str
和bytes
进行转换。在保存源代码时,就需要确保文本编辑器正在使用UTF-8 without BOM编码,务必指定保存为UTF-8编码。
- 为了让它按UTF-8编码读取,我们通常在文件开头写上这两行:
#!/usr/bin/env python3 # -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,否则,你在源代码中写的中文输出可能会有乱码。
格式化
- 在Python中,采用的格式化方式和C语言是一致的,用
%
实现,举例如下: - 是使用字符串的
format()
方法>>> \'Hello, {0}, 成绩提升了 {1:.1f}%\'.format(\'小明\', 17.125) \'Hello, 小明, 成绩提升了 17.1%\'
§.4.1 数据类型和变量
§.4.1 数据类型和变量