Skip to content

集训课程知识

第一章 预科知识

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 进制

  1. 十进制(Decimal):这是我们通常使用的基数为 10 的进制表示方法。例如:42
  2. 二进制(Binary):基数为 2,使用前缀 0b0B 表示。例如:0b1010 表示十进制的 10
  3. 八进制(Octal):基数为 8,使用前缀 0o0O 表示。例如:0o52 表示十进制的 42
  4. 十六进制(Hexadecimal):基数为 16,使用前缀 0x0X 表示。例如:0x2A 表示十进制的 42

在 Python 中,可以使用内置函数来在不同进制之间进行转换:

  • bin(x):将整数 x 转换为二进制表示形式(字符串)。
  • oct(x):将整数 x 转换为八进制表示形式(字符串)。
  • hex(x):将整数 x 转换为十六进制表示形式(字符串)。

1.4 编程语言

专业术语解释:

编程语言是一种用于定义计算机程序结构和逻辑的形式化约定或规范。它允许程序员通过编写代码来描述计算机执行特定任务的方式和步骤。编程语言通常包括一套语法规则和语义规则,用于编写和解释代码。

主要特征和功能:

  1. 语法和语义:编程语言定义了一种语法结构和规则,用于编写代码。语法决定了如何组织关键字、符号和表达式,而语义则决定了这些结构如何被解释和执行。
  2. 抽象层次:编程语言通过不同的抽象层次来表示问题和解决方案。低级语言(如汇编语言)直接映射到硬件指令,而高级语言(如Python、Java)提供更高级别的抽象,使程序员能够更容易地表达和理解复杂的逻辑和算法。
  3. 执行环境:编程语言通常需要一个解释器或编译器来将代码转换成计算机可执行的指令或中间代码。解释器逐行解释执行源代码,而编译器则将源代码一次性翻译为机器语言或字节码。
  4. 标准库和框架:编程语言通常包含一组标准库和框架,用于提供常见任务的实现和复用,如文件操作、网络通信、数据结构等。这些库和框架可以帮助程序员更高效地开发和维护代码。
  5. 范型和风格:编程语言支持不同的编程范型(如面向对象、函数式、过程化等),每种范型都有其独特的方式来组织和管理代码。
  6. 发展和标准化:编程语言通常由标准化组织或社区维护和发展,以确保语言的一致性、安全性和可移植性。
  7. 应用领域:不同的编程语言适用于不同的应用领域,如科学计算(Matlab、Python)、Web开发(JavaScript、PHP)、系统编程(C、C++)、数据分析(R、SQL)等。

总体而言,编程语言是程序员与计算机之间沟通的媒介,是软件开发的基础工具之一,影响着软件的质量、性能和可维护性。

简而言之,编程语言就是人和计算机交互的语言

编译语言

特点:

说明:

  1. 编译过程: 编译语言的代码在执行之前需要通过编译器进行编译,将高级语言源代码转换为目标机器的机器语言(或中间代码)。
  2. 执行速度: 由于编译器将源代码转换为机器语言,编译语言通常执行速度较快,因为编译后的代码可以直接在硬件上运行。
  3. 静态类型检查: 大多数编译语言是静态类型语言,编译器在编译过程中会进行类型检查,有助于提前发现代码中的类型错误。
  4. 可移植性: 编译后的目标代码可以在不同平台上运行,前提是编译器支持目标平台的指令集。

优点:

说明:

  • 执行效率高: 编译后的代码直接在硬件上执行,因此通常执行速度很快。
  • 静态类型检查: 可以在编译阶段发现类型相关的错误,提高代码的稳定性和安全性。
  • 代码保护: 编译后的代码不易被反向工程,保护源代码的知识产权。

缺点:

说明:

  • 开发迭代慢: 每次修改都需要重新编译,因此开发迭代速度可能较慢。
  • 学习曲线陡峭: 编译语言通常有复杂的语法和语义,可能对初学者不太友好。
  • 平台依赖性: 编译出的目标代码通常是针对特定平台的,不同平台需要不同的编译。

解释语言

特点:

说明:

  1. 解释过程: 解释语言的代码在运行时由解释器逐行解释执行,不需要预先编译为机器代码。
  2. 执行速度: 由于每行代码在运行时都需要解释,解释语言的执行速度通常较编译语言慢一些。
  3. 动态类型: 大多数解释语言是动态类型语言,变量类型在运行时确定,不需要静态类型声明。
  4. 跨平台性: 解释器本身可以跨平台运行,因此解释语言通常具有很好的跨平台性。

优点:

说明:

  • 开发迭代快: 不需要编译步骤,可以直接运行修改后的代码,加快开发迭代速度。
  • 动态类型: 不需要显式声明变量类型,更灵活和便于编写。
  • 易学易用: 通常语法简单,初学者可以更快地上手。

缺点:

说明:

  • 执行效率较低: 每次执行时都需要解释器逐行解释,速度比编译语言慢。
  • 代码保护难: 源代码通常以明文形式存在,容易被查看和修改,保护代码的难度较大。
  • 依赖解释器: 执行代码需要有对应的解释器,如果目标平台没有适合的解释器,可能无法运行。

对比

  • 执行方式: 编译语言先编译后执行,速度快但开发迭代慢;解释语言逐行解释执行,开发迭代快但速度慢。
  • 可移植性: 编译语言需要针对不同平台重新编译,解释语言则因为解释器本身的跨平台性通常具有较好的可移植性。
  • 学习曲线: 编译语言因为静态类型和复杂语法可能对初学者较难,解释语言通常语法简单易学。

第二章 安装环境

不会的直接参考CSDN 博客bilibili 网课

第三章 Python基础

注释

  • 单行注释
python
# 这个符号开头的就是单行注释内容,只能在一行上面写注释,注释不参与程序运行
  • 多行注释
python
"""
三个引号成对,中间就可以写多行注释内容了
"""

'''
三个单引号成对,中间也可以写多行注释内容
'''

变量

变量是计算机科学中的一个基本概念,用于存储和表示数据。它引用着数据存储的内存单元。

  • 当我们使用等号赋值时,变量名表示的是引用内存单元,往内存单元中存入数据;
py
a = 10		// 此时的 a 表示的是对内存单元的引用,操作是在往这个存储单元存入数据 10
  • 当在使用变量(非赋值操作)时,变量名表示的是引用该内存单元并取出其中的数据。
py
a = 10
print(a)	// 此时的 a 表示引用该变量指向的内存单元中的数据,操作是取出该内存单元的数据

变量命名

大多数编程语言都有自己的命名规范,但都大差不差,基本都符合下面的一套命名规则:

  • 变量名由数字、字母、下划线组成,区分大小写
  • 不能以数字开头、也不能使用关键字

在Python中,命名的推荐写法是遵循一定的命名约定,以保证代码的可读性和一致性。Python社区通常采用了PEP 8(Python Enhancement Proposal 8)中的命名约定作为标准。以下是一些常见的命名规则和推荐写法:

  1. 变量名
    • 使用小写字母,并用下划线 _ 分隔单词。例如:my_variable, user_name.
    • 应该具有描述性,能够清晰地表达变量所代表的含义。
  2. 常量名
    • 使用大写字母,并用下划线 _ 分隔单词。例如:MAX_SIZE, PI.
    • 常量通常在程序中不会改变其值,用来表示固定的常量数据。
  3. 函数名
    • 使用小写字母,并用下划线 _ 分隔单词。例如:calculate_area, process_data.
    • 函数名应该能够清晰地描述函数的功能或行为。
  4. 类名
    • 使用大驼峰命名法(CamelCase),即单词首字母大写,不使用下划线。例如:MyClass, CarModel.
    • 类名应该使用名词或名词组合,以描述类代表的实体或概念。
  5. 方法名
    • 使用小写字母,并用下划线 _ 分隔单词。例如:calculate_area, process_data.
    • 方法名应该能够清晰地描述方法执行的动作或行为。
  6. 模块名和包名
    • 使用小写字母,并用下划线 _ 分隔单词。例如:my_module, utils.
    • 模块名和包名应该能够清晰地描述其功能或用途。
  7. 变量和函数的私有性
    • 在变量名或函数名前加上一个下划线 _ 表示其为私有的,例如 _internal_variable, _private_function.
    • 私有变量和函数应该只在其所属的模块或类内部使用,外部代码不应直接访问。
  8. 避免使用的命名
    • 避免使用单个字符(除非是循环变量或者临时变量)或者含糊不清的命名,例如 a, tmp.
    • 避免使用 Python 内置的关键字和保留字作为变量名或函数名,例如 if, class, def.

通过遵循这些命名约定,可以使代码更易于阅读和维护,提高代码的一致性和可理解性,也符合Python社区的共识和标准。

数据类型

  1. 数字类型
    • 整数(int):表示整数值,例如 42, -10.
    • 浮点数(float):表示带有小数点的数字,例如 3.14, 2.718.
    • 复数(complex):表示具有实部和虚部的复数,例如 3 + 2j, 1 - 4j.
  2. 布尔类型
    • 布尔值(bool):表示逻辑值,只有两个取值 TrueFalse.
  3. 序列类型
    • 字符串(str):表示文本数据,例如 'hello', "world".
    • 列表(list):有序可变序列,用于存储一系列对象,例如 [1, 2, 3].
    • 元组(tuple):有序不可变序列,类似于列表但元素不可修改,例如 (1, 2, 3).
  4. 集合类型
    • 集合(set):无序、不重复的元素集合,例如 {1, 2, 3}.
    • 冻结集合(frozenset):不可变的集合,一旦创建元素不可修改,例如 frozenset({1, 2, 3}).
  5. 映射类型
    • 字典(dict):无序的键值对集合,用于存储关联数组,例如 {'name': 'Alice', 'age': 30}.
  6. 自定义类型
    • 类(class):通过 class 关键字定义的用户自定义类型,用于封装数据和功能。
    • 对象(object):类的实例化结果,具体到每个对象实例本身。
  7. 特殊类型
    • NoneType:表示空对象或者不存在的值,唯一的取值是 None.

在Python中,对象的类型可以通过内置函数 type() 获取,例如 type(42) 返回 <class 'int'>,表示这个对象是整数类型。理解这些不同的对象类型有助于编写更加清晰和有效的Python代码。

其他

说明:

基础内容过于简单,请还没有基础的同学自行参考 w3c 或 菜鸟教程等对应文档学习

推荐:前往文档查阅网站

python
# ...

第四章 Python进阶