
Python 基础
1.1 计算机组成
- 硬件
- 软件
硬件
CPU(中央处理器)、存储器(内存储器、外存储器)、输入输出设备
- 内存储器:断电即失
- 外存储器:永久存储
软件:系统软件和应用软件
系统软件:windows系列、mac操作系统、安卓、linux、iso...
协调、管理、控制计算机硬件资源
应用软件:钉钉、浏览器...(针对某一类特定功能而开发的软件就叫做应用软件)
1.2 常用Dos命令
文件和目录操作
| 命令 | 描述 | 示例 |
|---|---|---|
Win + R | 打开 dos 窗口 | win + r |
dir | 列出当前目录中的文件和子目录。 | dir |
cd | 改变当前目录。 | cd Documents |
md (等价于 mkdir) | 创建新目录。 | md NewFolder |
rd (等价于 rmdir) | 删除目录。 | rd OldFolder |
copy | 复制文件。 | copy file1.txt file2.txt |
del | 删除文件。 | del unwanted.txt |
ren | 重命名文件或目录。 | ren oldname.txt newname.txt |
tree /f | 显示当前目录的树形结构 | tree /f |
mdir 目录1\目录2\... | 创建递归目录(需要使用windows的风格\来区分) | mkdir test\hello |
rd [/S] [/Q] [drive:]path | 删除递归目录 | rd [/S] [/Q] [drive:]path |
文件内容查看和编辑
| 命令 | 描述 | 示例 |
|---|---|---|
type | 显示文本文件的内容。 | type readme.txt |
edit | 使用 DOS 自带的文本编辑器编辑文件。 | edit document.txt |
echo | (创建)向文件中写入内容 | echo "Hello" > hello.txt |
系统信息和操作
| 命令 | 描述 | 示例 |
|---|---|---|
cls | 清除屏幕内容。 | cls |
date | 显示或设置系统日期。 | date |
time | 显示或设置系统时间。 | time |
echo | 显示消息或启用/禁用批处理文件的命令回显功能。 | echo Hello, World! |
exit | 退出当前的 DOS 会话或批处理程序。 | exit |
命令 /? | 查看命令使用帮助。 | rd /? |
其他实用命令
| 命令 | 描述 | 示例 |
|---|---|---|
attrib | 显示或更改文件属性。 | attrib +h file.txt |
xcopy | 复制文件和目录树。 | xcopy source\*.* destination\ /s |
chkdsk | 检查磁盘状态。 | chkdsk C: |
format | 格式化磁盘。 | format C: (慎用,会清空磁盘内容) |
tasklist | 显示当前正在运行的进程列表。 | tasklist |
1.3 进制
- 十进制(Decimal):这是我们通常使用的基数为 10 的进制表示方法。例如:
42 - 二进制(Binary):基数为 2,使用前缀
0b或0B表示。例如:0b1010表示十进制的10。 - 八进制(Octal):基数为 8,使用前缀
0o或0O表示。例如:0o52表示十进制的42。 - 十六进制(Hexadecimal):基数为 16,使用前缀
0x或0X表示。例如:0x2A表示十进制的42。
在 Python 中,可以使用内置函数来在不同进制之间进行转换:
bin(x):将整数x转换为二进制表示形式(字符串)。oct(x):将整数x转换为八进制表示形式(字符串)。hex(x):将整数x转换为十六进制表示形式(字符串)。
1.4 编程语言
专业术语解释:
编程语言是一种用于定义计算机程序结构和逻辑的形式化约定或规范。它允许程序员通过编写代码来描述计算机执行特定任务的方式和步骤。编程语言通常包括一套语法规则和语义规则,用于编写和解释代码。
主要特征和功能:
- 语法和语义:编程语言定义了一种语法结构和规则,用于编写代码。语法决定了如何组织关键字、符号和表达式,而语义则决定了这些结构如何被解释和执行。
- 抽象层次:编程语言通过不同的抽象层次来表示问题和解决方案。低级语言(如汇编语言)直接映射到硬件指令,而高级语言(如Python、Java)提供更高级别的抽象,使程序员能够更容易地表达和理解复杂的逻辑和算法。
- 执行环境:编程语言通常需要一个解释器或编译器来将代码转换成计算机可执行的指令或中间代码。解释器逐行解释执行源代码,而编译器则将源代码一次性翻译为机器语言或字节码。
- 标准库和框架:编程语言通常包含一组标准库和框架,用于提供常见任务的实现和复用,如文件操作、网络通信、数据结构等。这些库和框架可以帮助程序员更高效地开发和维护代码。
- 范型和风格:编程语言支持不同的编程范型(如面向对象、函数式、过程化等),每种范型都有其独特的方式来组织和管理代码。
- 发展和标准化:编程语言通常由标准化组织或社区维护和发展,以确保语言的一致性、安全性和可移植性。
- 应用领域:不同的编程语言适用于不同的应用领域,如科学计算(Matlab、Python)、Web开发(JavaScript、PHP)、系统编程(C、C++)、数据分析(R、SQL)等。
总体而言,编程语言是程序员与计算机之间沟通的媒介,是软件开发的基础工具之一,影响着软件的质量、性能和可维护性。
简而言之,
编程语言就是人和计算机交互的语言。
编译语言
特点:
说明:
- 编译过程: 编译语言的代码在执行之前需要通过编译器进行编译,将高级语言源代码转换为目标机器的机器语言(或中间代码)。
- 执行速度: 由于编译器将源代码转换为机器语言,编译语言通常执行速度较快,因为编译后的代码可以直接在硬件上运行。
- 静态类型检查: 大多数编译语言是静态类型语言,编译器在编译过程中会进行类型检查,有助于提前发现代码中的类型错误。
- 可移植性: 编译后的目标代码可以在不同平台上运行,前提是编译器支持目标平台的指令集。
优点:
说明:
- 执行效率高: 编译后的代码直接在硬件上执行,因此通常执行速度很快。
- 静态类型检查: 可以在编译阶段发现类型相关的错误,提高代码的稳定性和安全性。
- 代码保护: 编译后的代码不易被反向工程,保护源代码的知识产权。
缺点:
说明:
- 开发迭代慢: 每次修改都需要重新编译,因此开发迭代速度可能较慢。
- 学习曲线陡峭: 编译语言通常有复杂的语法和语义,可能对初学者不太友好。
- 平台依赖性: 编译出的目标代码通常是针对特定平台的,不同平台需要不同的编译。
解释语言
特点:
说明:
- 解释过程: 解释语言的代码在运行时由解释器逐行解释执行,不需要预先编译为机器代码。
- 执行速度: 由于每行代码在运行时都需要解释,解释语言的执行速度通常较编译语言慢一些。
- 动态类型: 大多数解释语言是动态类型语言,变量类型在运行时确定,不需要静态类型声明。
- 跨平台性: 解释器本身可以跨平台运行,因此解释语言通常具有很好的跨平台性。
优点:
说明:
- 开发迭代快: 不需要编译步骤,可以直接运行修改后的代码,加快开发迭代速度。
- 动态类型: 不需要显式声明变量类型,更灵活和便于编写。
- 易学易用: 通常语法简单,初学者可以更快地上手。
缺点:
说明:
- 执行效率较低: 每次执行时都需要解释器逐行解释,速度比编译语言慢。
- 代码保护难: 源代码通常以明文形式存在,容易被查看和修改,保护代码的难度较大。
- 依赖解释器: 执行代码需要有对应的解释器,如果目标平台没有适合的解释器,可能无法运行。
对比
- 执行方式: 编译语言先编译后执行,速度快但开发迭代慢;解释语言逐行解释执行,开发迭代快但速度慢。
- 可移植性: 编译语言需要针对不同平台重新编译,解释语言则因为解释器本身的跨平台性通常具有较好的可移植性。
- 学习曲线: 编译语言因为静态类型和复杂语法可能对初学者较难,解释语言通常语法简单易学。
数据类型
- 数字类型:
- 整数(int):表示整数值,例如
42,-10. - 浮点数(float):表示带有小数点的数字,例如
3.14,2.718. - 复数(complex):表示具有实部和虚部的复数,例如
3 + 2j,1 - 4j.
- 整数(int):表示整数值,例如
- 布尔类型:
- 布尔值(bool):表示逻辑值,只有两个取值
True和False.
- 布尔值(bool):表示逻辑值,只有两个取值
- 序列类型:
- 字符串(str):表示文本数据,例如
'hello',"world". - 列表(list):有序可变序列,用于存储一系列对象,例如
[1, 2, 3]. - 元组(tuple):有序不可变序列,类似于列表但元素不可修改,例如
(1, 2, 3).
- 字符串(str):表示文本数据,例如
- 集合类型:
- 集合(set):无序、不重复的元素集合,例如
{1, 2, 3}. - 冻结集合(frozenset):不可变的集合,一旦创建元素不可修改,例如
frozenset({1, 2, 3}).
- 集合(set):无序、不重复的元素集合,例如
- 映射类型:
- 字典(dict):无序的键值对集合,用于存储关联数组,例如
{'name': 'Alice', 'age': 30}.
- 字典(dict):无序的键值对集合,用于存储关联数组,例如
- 自定义类型:
- 类(class):通过 class 关键字定义的用户自定义类型,用于封装数据和功能。
- 对象(object):类的实例化结果,具体到每个对象实例本身。
- 特殊类型:
- NoneType:表示空对象或者不存在的值,唯一的取值是
None.
- NoneType:表示空对象或者不存在的值,唯一的取值是
在Python中,对象的类型可以通过内置函数
type()获取,例如type(42)返回<class 'int'>,表示这个对象是整数类型。理解这些不同的对象类型有助于编写更加清晰和有效的Python代码。

