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分组匹配到的字符串  |