1. 计算机组成原理
2. python基础(查漏补缺)
2.1 字符串
2.1.1 字符串查找方法
- find(): 检测某个字符串是否包含在这个字符串中,在的话返回下标,不在的话返回-1
- index(): 检测某个字符串是否包含在这个字符串中,在的话返回下标,否则抛出异常
- refind(): 从右侧查找,功能和find相同
- rindex(): 从右侧查找,功能和index相同
- count(): 返回某个字符串出现的次数
2.1.2 字符串修改方法
- replace(): 替换
python
复制代码
字符串.replace(旧子串, 新子串, 替换次数)
- join(): 多个字符串合并成一个新的字符串
python
复制代码
字符串.join(字符串)
- split(): 按照指定字符分割字符串,丢失分割字符
python
复制代码
字符串.split(分割字符, num)
2.1.3 其他修改方法
- capitalize(): 将字符串的第一个字符转换成大写
- title(): 将字符串的每个首字母转换成大写
- lower(): 将字符串中大写字母转换成小写
- upper(): 将字符串中小写字母转换成大写
2.1.4 删除空白字符
- lstrip(): 删除左侧空白字符
- rstrip(): 删除右侧空白字符
- strip(): 删除两侧空白字符
2.1.5 字符串对齐
- ljust(): 左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
- rjust(): 右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
- center(): 居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
python
复制代码
字符串.ljust(长度, 填充字符)
字符串.rjust(长度, 填充字符)
字符串.center(长度, 填充字符)
2.1.6 字符串判断开头或结尾
- startswith(子串, 开始下标, 结束位置下标): 检查开头是否以指定字符串开头,返回bool
- endswitch(子串, 开始下标, 结束位置下标): 检查结尾是否以指定字符串结尾,返回bool
2.1.7 其他判断方法
- isalpha(): 字符串中至少有一个字符并且所有字符都是字母
- isalnum(): 字符串中至少有一个字符并且所有字符都是数字
- isdigit(): 判断字符串中只包含数字
- isspace(): 判断字符串中是否只包含空白
2.2 列表
2.2.1 列表查找
- index(): 返回数据所在位置的下标
python
复制代码
a.index(数据, 开始位置下标, 结束位置下标)
- count(): 统计数据在列表中出现的次数
python
复制代码
a.count('data')
- len(): 访问列表的长度
2.2.2 列表增加
- append(数据): 结尾追加数据
- extend(数据): 结尾追加数据,如果数据是一个字符串,则将这个字符串中数据逐一加入列表
- insert(位置下标, 数据): 指定位置增加数据
2.2.3 列表删除
- del: 删除列表
- pop(下标): 删除指定下标的数据(默认最后一个),并返回数据
- remove(数据): 移除列表中某个数据的第一个匹配项
- clear(): 清空列表
2.2.4 列表修改
- 修改指定下标的数据: a[下标] = 数据
- reverse(): 逆置
- sort(): 排序
python
复制代码
l.sort(key=None, reverse=True)
# resverse=True升序,reverse=False降序
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 示例:学生管理系统
python
复制代码
def info_print():
print('请选择功能-----------')
print('1. 添加学员')
print('2. 删除学员')
print('3. 修改学员')
print('4. 查询学员')
print('5. 显示所有学员')
print('6. 退出系统')
print('-'*20)
def add_info():
"""添加学员方法"""
# 全局变量声明
global info
# 用户输入用户信息
new_id = input('请输入学号:')
new_name = input('请输入姓名:')
new_tel = input('请输入电话号码:')
# 判断用户是否存在
for i in info:
if new_name == i['name']:
print('用户已存在!!!')
return
# 将用户元素追加到字典
info_dict = {}
info_dict['id'] = new_id
info_dict['name'] = new_name
info_dict['tel'] = new_tel
# 将用户字典追加到列表
info.append(info_dict)
print(info)
def delete_info():
"""删除学员方法"""
# 声明全局变量
global info
# 用户输入需要删除的变量名
del_name = input('请输入需要删除的变量名:')
for i in info:
if del_name == i['name']:
info.remove(i)
break
else:
print('该学员不存在!!!')
def update_info():
"""修改学员信息方法"""
# 声明全局变量
global info
# 用户输入需要修改的变量名
update_name = input('请输入需要修改的学生姓名:')
for i in info:
if update_name == i['name']:
update_id = input('请输入需要修改的学生id:')
update_tel = input('请输入需要修改的学生电话:')
i['tel'] = update_tel
i['id'] = update_id
break
else:
print('用户不存在!!!')
print(info)
def search_info():
"""查询学员信息方法"""
# 声明全局变量
global info
# 用户输入需要查询的姓名
search_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 info
# 童虎输入需要查询的姓名
print('学号\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':
break
else:
print('您输入的序号有误!!!')
2.5.2 递归
2.5.2.1 特点
- 函数内部自己调用自己
- 必须有出口
2.5.2.2 示例1 - 3以内的数字累加和
python
复制代码
"""
3以内数字累加和 = 3+2以内数字累加和
2以内数字累加和 = 2+1以内数字累加和
1以内数字累加和 = 1 # 出口
"""
def sun_numbers(num):
# 出口
if num == 1:
return 1
# 当前数字+当前数字-1,自己调用自己
return num + sun_numbers(num-1)
result = sun_numbers(10)
print(result)
2.5.3 匿名函数lambda
2.5.3.1 应用场景
一个函数只有一个返回值,并且只有一句代码,可用lambda简化
lambda 参数 : 表达式
python
复制代码
# 函数实现
def fn1():
return 100
result = fn1()
print(result)
# lambda实现
fn2 = lambda : 100
result = fn2()
print(result)
print(fn2) # 匿名函数的内存地址
2.6 高阶函数
2.6.1 map()
map(func, lst): 将传入的函数变量func作用到lst变量的每个元素中,并将结果生成新的迭代器
python
复制代码
# 计算列表中各个数字的2次方
list1 = [1, 2, 3, 4, 5]
def func(x):
return x**2
result = map(func, list1)
print(list(result))
2.6.2 reduce()
reduce(func, lst): 其中func必须有两个参数,每次func计算结果继续和序列的下一个元素做累计运算
python
复制代码
# 计算list1各数累加和
import functools
list1 = [1, 2, 3, 4, 5]
def func(a, b):
return a + b
result = functools.reduce(func, list1)
print(result)
2.6.3 filter()
filter(func, lst): 用于过滤序列,过滤掉不符合的元素,返回一个filter对象,如果要转换为列表,可以使用list()来转换
python
复制代码
list2 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def func1(x):
return x % 2 == 0
result = 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分组匹配到的字符串 |
|
|
|