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 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以内的数字累加和
"""
3以内数字累加和 = 3+2以内数字累加和
2以内数字累加和 = 2+1以内数字累加和
1以内数字累加和 = 1 # 出口
"""
def sun_numbers(num):
if num == 1:
return 1
return num + sun_numbers(num-1)
result = sun_numbers(10)
print(result)
2.5.3 匿名函数lambda
2.5.3.1 应用场景
一个函数只有一个返回值,并且只有一句代码,可用lambda简化
lambda 参数 : 表达式
def fn1():
return 100
result = 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**2
result = map(func, list1)
print(list(result))
2.6.2 reduce()
reduce(func, lst): 其中func必须有两个参数,每次func计算结果继续和序列的下一个元素做累计运算
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()来转换
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分组匹配到的字符串
|