1. 计算机组成原理

2. python基础(查漏补缺)
2.1 字符串
2.1.1 字符串查找方法
- find(): 检测某个字符串是否包含在这个字符串中,在的话返回下标,不在的话返回-1
- index(): 检测某个字符串是否包含在这个字符串中,在的话返回下标,否则抛出异常
- refind(): 从右侧查找,功能和find相同
- rindex(): 从右侧查找,功能和index相同
- count(): 返回某个字符串出现的次数
2.1.2 字符串修改方法
- replace(): 替换
字符串.replace(旧子串, 新子串, 替换次数)
- join(): 多个字符串合并成一个新的字符串
字符串.join(字符串)
- split(): 按照指定字符分割字符串,丢失分割字符
字符串.split(分割字符, num)
2.1.3 其他修改方法
- capitalize(): 将字符串的第一个字符转换成大写
- title(): 将字符串的每个首字母转换成大写
- lower(): 将字符串中大写字母转换成小写
- upper(): 将字符串中小写字母转换成大写
2.1.4 删除空白字符
- lstrip(): 删除左侧空白字符
- rstrip(): 删除右侧空白字符
- strip(): 删除两侧空白字符
2.1.5 字符串对齐
- ljust(): 左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
- rjust(): 右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
- center(): 居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
字符串.ljust(长度, 填充字符)
字符串.rjust(长度, 填充字符)
字符串.center(长度, 填充字符)
2.1.6 字符串判断开头或结尾
- startswith(子串, 开始下标, 结束位置下标): 检查开头是否以指定字符串开头,返回bool
- endswitch(子串, 开始下标, 结束位置下标): 检查结尾是否以指定字符串结尾,返回bool
2.1.7 其他判断方法
- isalpha(): 字符串中至少有一个字符并且所有字符都是字母
- isalnum(): 字符串中至少有一个字符并且所有字符都是数字
- isdigit(): 判断字符串中只包含数字
- isspace(): 判断字符串中是否只包含空白
2.2 列表
2.2.1 列表查找
- index(): 返回数据所在位置的下标
a.index(数据, 开始位置下标, 结束位置下标)
- count(): 统计数据在列表中出现的次数
a.count('data')
- len(): 访问列表的长度
2.2.2 列表增加
- append(数据): 结尾追加数据
- extend(数据): 结尾追加数据,如果数据是一个字符串,则将这个字符串中数据逐一加入列表
- insert(位置下标, 数据): 指定位置增加数据
2.2.3 列表删除
- del: 删除列表
- pop(下标): 删除指定下标的数据(默认最后一个),并返回数据
- remove(数据): 移除列表中某个数据的第一个匹配项
- clear(): 清空列表
2.2.4 列表修改
- 修改指定下标的数据: a[下标] = 数据
- reverse(): 逆置
- sort(): 排序
l.sort(key=None, reverse=True)
2.2.5 列表复制
- copy():复制
2.3 字典
2.3.1 dict新增
- dict[key] = value: key不存在则新增键值对
2.3.2 dict删除
- del/del(): 删除字典/删除字典中的键值对
- clear(): 清空字典
2.3.3 dict修改
- dict[key] = value: key存在则修改键值对内容
2.3.4 dict查询
- get(): dict.get(key, 默认值)
- key值查找: dict[‘key’],key不存在则报错
- keys(): 查找所有key值
- values(): 查找所有value值
- items(): 查找所有key-value值,键值对元组
2.4 集合
2.4.1 增加数据
- add(): 追加单一数据,集合无序,可能追加任意一个位置
- update(): 追加的是数据序列
2.4.2 删除数据
- remove(): 删除指定数据,不存在则报错
- discard(): 删除指定数据,不存在不会报错
- pop(): 随机删除集合中的数据,并返回该数据
2.5 函数
2.5.1 示例:学生管理系统
def info_print():print('请选择功能-----------')print('1. 添加学员')print('2. 删除学员')print('3. 修改学员')print('4. 查询学员')print('5. 显示所有学员')print('6. 退出系统')print('-'*20)def add_info():"""添加学员方法"""global infonew_id = input('请输入学号:')new_name = input('请输入姓名:')new_tel = input('请输入电话号码:')for i in info:if new_name == i['name']:print('用户已存在!!!')returninfo_dict = {}info_dict['id'] = new_idinfo_dict['name'] = new_nameinfo_dict['tel'] = new_telinfo.append(info_dict)print(info)def delete_info():"""删除学员方法"""global infodel_name = input('请输入需要删除的变量名:')for i in info:if del_name == i['name']:info.remove(i)breakelse:print('该学员不存在!!!')def update_info():"""修改学员信息方法"""global infoupdate_name = input('请输入需要修改的学生姓名:')for i in info:if update_name == i['name']:update_id = input('请输入需要修改的学生id:')update_tel = input('请输入需要修改的学生电话:')i['tel'] = update_teli['id'] = update_idbreakelse:print('用户不存在!!!')print(info)def search_info():"""查询学员信息方法"""global infosearch_name = input('请输入需要查询的姓名:')for i in info:if search_name == i['name']:print('-----查询到的信息如下-----')print('该学员的学号是{0},该学员的姓名是{1},该学员的电话是{2}'.format(i['id'], i['name'], i['tel']))else:print('用户信息不存在!!!')def search_all():"""显示所有学员信息"""global infoprint('学号\t姓名\t手机号')for i in info:print('{0}\t{1}\t{2}'.format(i['id'], i['name'], i['tel']))if __name__ == '__main__':info = []while 1:info_print()user_num = int(input('请输入功能序号:'))if user_num == 1:add_info()elif user_num == 2:delete_info()elif user_num == 3:update_info()elif user_num == 4:search_info()elif user_num == 5:search_all()elif user_num == 6:exit_flag = input('确认要退出吗?yes or no')if exit_flag == 'yes' or exit_flag == 'y' or exit_flag == 'Y' or exit_flag == 'YES' or exit_flag == '1':breakelse:print('您输入的序号有误!!!')
2.5.2 递归
2.5.2.1 特点
- 函数内部自己调用自己
- 必须有出口
2.5.2.2 示例1 - 3以内的数字累加和
"""
3以内数字累加和 = 3+2以内数字累加和
2以内数字累加和 = 2+1以内数字累加和
1以内数字累加和 = 1 # 出口
"""
def sun_numbers(num):if num == 1:return 1return num + sun_numbers(num-1)result = sun_numbers(10)
print(result)
2.5.3 匿名函数lambda
2.5.3.1 应用场景
一个函数只有一个返回值,并且只有一句代码,可用lambda简化
lambda 参数 : 表达式
def fn1():return 100result = fn1()
print(result)
fn2 = lambda : 100
result = fn2()
print(result)
print(fn2)
2.6 高阶函数
2.6.1 map()
map(func, lst): 将传入的函数变量func作用到lst变量的每个元素中,并将结果生成新的迭代器
list1 = [1, 2, 3, 4, 5]def func(x):return x**2result = map(func, list1)
print(list(result))
2.6.2 reduce()
reduce(func, lst): 其中func必须有两个参数,每次func计算结果继续和序列的下一个元素做累计运算
import functoolslist1 = [1, 2, 3, 4, 5]def func(a, b):return a + bresult = functools.reduce(func, list1)
print(result)
2.6.3 filter()
filter(func, lst): 用于过滤序列,过滤掉不符合的元素,返回一个filter对象,如果要转换为列表,可以使用list()来转换
list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]def func1(x):return x % 2 == 0result = filter(func1, list2)
print(list(result))
3. 操作系统
3.1 常见的操作系统
1、 windows
2、mac OS
3、Linux
4、Unix
3.2 Linux命令回顾
3.2.1 查看目录命令
命令 | 说明 |
---|
ls | 查看当前路径下信息 |
tree | 以树方式显示目录 |
pwd | 查看当前目录路劲 |
clear | 清除终端内容 |
ctrl + shift + ‘+’ | 放大窗口字体 |
ctrl + shift + ‘-’ | 缩小窗口字体 |
3.2.2 切换目录命令
3.2.3 创建、删除文件和目录命令
命令 | 说明 |
---|
touch | 创建指定文件 |
mkdir | 创建目录(文件夹) |
rm | 删除指定文件 |
rmdir | 删除空目录 |
3.2.5 复制、移动文件和目录命令
命令 | 说明 |
---|
cp | 复制(拷贝)文件、拷贝目录 |
mv | 移动文件、移动目录、重命名 |
3.2.6 重定向命令
命令 | 说明 |
---|
> | 文件存在则覆盖文件内容 |
>> | 文件存在则追加文件内容 |
3.2.7 查看文件内容命令
命令 | 说明 |
---|
cat | 查看小型文件 |
more | 查看大型文件 |
| | 管道 |
3.2.8 链接命令
3.2.9 查找文件内容命令
命令 | 说明 |
---|
grep | 查找、搜索文件内容 |
find | 在指定目录下查找符合条件的文件 |
3.2.10 压缩和解压缩命令
命令 | 说明 |
---|
tar -c | 创建打包文件 |
tar -v | 显示打包或解包的详细信息 |
tar -f | 指定文件名称,必须放到所有选项后面 |
tar -z | 压缩(.gz) |
tar -j | 压缩(.bz2) |
tar -x | 解压缩 |
tar -C | 解压到指定目录 |
3.2.11 文件权限命令
3.2.12 查找文件位置
### 3.2.13 远程命令
4. 正则表达式
4.1 匹配单个字符
命令 | 说明 |
---|
. | 匹配任意一个字符 |
[] | 匹配[ ]中列举的字符 |
\d | 匹配数字,0-9 |
\D | 匹配非数字 |
\s | 匹配空白,即空格和tab |
\S | 匹配非空白 |
\w | 匹配非特殊字符 |
\W | 匹配特殊字符 |
4.2 匹配多个字符
命令 | 说明 |
---|
* | 匹配一个字符出现0次或无数次 |
+ | 匹配一个字符出现1次或无数次 |
? | 匹配一个字符出现1次或0次 |
{m} | 匹配一个字符出现m次 |
{m,n} | 匹配一个字符出现从m到n次 |
4.3 匹配开头和结尾
命令 | 说明 |
---|
^ | 匹配字符串开头 |
$ | 匹配字符串结尾 |
[ ^指定字符 ] | 匹配除指定字符以外的所有字符 |
4.4 匹配分组
命令 | 说明 |
---|
| | 匹配左右任意一个表达式 |
(ab) | 将括号中字符作为一个分组 |
\num | 引用分组num匹配的字符串 |
(?P< name >) | 分组起别名 |
(?P=name) | 引用别名为name分组匹配到的字符串 |