Skip to content

01 环境准备与介绍

Python 介绍

如果你经常使用电脑进行工作,最终你会发现有一些任务想要自动化。例如,你可能希望在大量文本文件中查找和替换,或者以复杂的方式重命名和重新排列一堆照片。也许你想编写一个小型定制数据库、一个专用的图形用户界面应用程序,或者一个简单的游戏。

如果你是一名专业的软件开发人员,可能需要处理多个 C/C++/Java 库,但发现通常的编写/编译/测试/重新编译周期太慢。也许你正在为这样的库编写一个测试套件,却觉得编写测试代码是一项让人破防的任务。

Python 正是为此准备的语言。

你可以为这些任务编写一个脚本,但脚本更擅长处理文件移动和文本数据的修改,不太适合编写图形用户界面应用程序或游戏。你也可以编写 C/C++/Java 程序,但即便是编写一个简单的程序也需要大量开发时间。而 Python 更简单易用,能够更快地完成工作。

Python 虽然简单,但它是一门真正的编程语言,提供了比脚本更多的支持以构建大型程序。另一方面,Python 也提供了比 C 更多的错误检查,而且作为一种高级语言,它内置了高级数据类型,如灵活的数组和字典。

Python 允许你将程序分割成可以在其他 Python 程序中重用的模块。它还附带了大量的标准模块,这些模块可以作为程序的基础,或者作为学习 Python 编程的示例。这些模块中的一些提供了文件 I/O、系统调用、网络编程,甚至GUI(如 Tk)的接口。

Python 是一种解释型语言,在程序开发过程中可以为你节省大量时间,因为不需要编译和链接。解释器可以交互使用,这使得你可以轻松地实验语言的各种功能,编写一次性程序。

Python 使程序编写变得紧凑且可读。且用它编写的程序通常比其他语言写的短得多,原因有以下几点:

  • 通过缩进进行语句分组,而不是使用起始和结束括号 演示
  • 不需要变量或参数声明 演示

Question

准备用 Python 做什么 / 学编程为了什么

安装

Python HTTP Server

初次尝试

交互式的 Python

在命令行中输入python进入交互式界面。

>>> a = "Hello"
>>> print(a)
...
Hello

数字

Python 交互式可以充当一个简单的计算器(加减乘除),无需额外的代码。

>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5  # 似乎是个优势)
1.6

Tip

在 Python 中,涉及到除法的运算,无论其他数字是否为小数,结果永远是小数

其他语言(尤其是严格静态类型的),由参与运算的变量类型而定

也可以有些稍微高级的运算:

>>> 17 // 3  # 整除
5
>>> 17 % 3  # 取余
2
>>> 2 ** 7  # 2的7次方
128

变量

不同于其它语言先声明再赋值,Python 在赋值时也就意味着声明变量。

>>> width = 20
>>> height = 5 * 9
>>> width * height
900

这也就意味着不可能做到仅声明但不赋值变量:

>>> n  # 这变量从未出现过,没有人知道这是什么
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'n' is not defined

字符串

用单/双/三(?)引号包裹东西基本都是字符串

>>> 'hello'
hello
>>> "world"
world
>>> '''awa'''
awa

Why?

拼接:

>>> 'hello' + 'world'
helloworld
>>> 3 * 'hello'  # 甚至可以乘起来
hellohellohello

输入

可以从控制台获取用户的输入,并存储到一个变量上

>>> a = input()  # 回车后就可以输入了
hello
>>> a
'hello'

输出

一个 print() 函数就够了

>>> print(a)
aaaaa

扩展

解释型语言是什么

编译型语言

需通过编译器将源代码编译成机器码,之后才能执行的语言。一般需经过编译、链接这两个步骤。编译是把源代码编译成机器码,链接是把各个模块的机器码和依赖库串连起来生成可执行文件。

优点:编译器一般会对代码进行优化。因为编译只做一次,运行时不需要编译,所以编译型语言的程序执行效率高。

缺点:编译之后如果需要修改就需要整个重新编译。编译的时候根据对应的运行环境生成机器码,不同的操作系统之间运行就会有可能出问题。

代表语言:C、C++

解释型语言

解释性语言的程序不需要编译,在运行程序的时候才逐行解释。

优点:有良好的平台兼容性,在任何环境中都可以运行,前提是安装了解释器。灵活,修改代码的时候直接修改就可以,可以快速部署,不用停机维护。

缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。

代表语言:JavaScript、Python、PHP

混合型语言

当然有人考虑到把这俩rua一块。

比如C#,在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了运行库来运行中间码,中间语言运行库将其保存在dll中,首次运行时由JIT在编译成机器码缓存在内存中,下次直接执行。

动态类型语言和静态类型语言

动态类型语言

Warning

动态类型语言 ≠ 动态语言

静态类型语言 ≠ 静态语言

动态类型语言:在运行时做数据类型检查的语言

动态类型语言的数据类型不是在编译阶段决定的,而是延后到了运行阶段。

比如:Python、Ruby、JavaScript、Swift、PHP。

静态类型语言

静态类型语言是在编译时确定的或者说运行前确定的,编写代码的时候要明确变量的数据类型。

主要语言:C、C++、C#、Java。

探索IO函数

如果有时间就讲(

print函数

input函数

总结

关键知识点 简介
+ 加法
- 减法
* 乘法
/ 除法
// 整除
% 取余
**
input() 输入
print() 输出

FAQ