当前位置: 首页 > news >正文

【Python-AI篇】人工智能python基础-计算机组成原理

1. 计算机组成原理

在这里插入图片描述

2. python基础(查漏补缺)

2.1 字符串

2.1.1 字符串查找方法

  1. find(): 检测某个字符串是否包含在这个字符串中,在的话返回下标,不在的话返回-1
  2. index(): 检测某个字符串是否包含在这个字符串中,在的话返回下标,否则抛出异常
  3. refind(): 从右侧查找,功能和find相同
  4. rindex(): 从右侧查找,功能和index相同
  5. count(): 返回某个字符串出现的次数

2.1.2 字符串修改方法

  1. replace(): 替换
字符串.replace(旧子串, 新子串, 替换次数)
  1. join(): 多个字符串合并成一个新的字符串
字符串.join(字符串)
  1. split(): 按照指定字符分割字符串,丢失分割字符
字符串.split(分割字符, num)

2.1.3 其他修改方法

  1. capitalize(): 将字符串的第一个字符转换成大写
  2. title(): 将字符串的每个首字母转换成大写
  3. lower(): 将字符串中大写字母转换成小写
  4. upper(): 将字符串中小写字母转换成大写

2.1.4 删除空白字符

  1. lstrip(): 删除左侧空白字符
  2. rstrip(): 删除右侧空白字符
  3. strip(): 删除两侧空白字符

2.1.5 字符串对齐

  1. ljust(): 左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
  2. rjust(): 右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
  3. center(): 居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
字符串.ljust(长度, 填充字符)
字符串.rjust(长度, 填充字符)
字符串.center(长度, 填充字符)

2.1.6 字符串判断开头或结尾

  1. startswith(子串, 开始下标, 结束位置下标): 检查开头是否以指定字符串开头,返回bool
  2. endswitch(子串, 开始下标, 结束位置下标): 检查结尾是否以指定字符串结尾,返回bool

2.1.7 其他判断方法

  1. isalpha(): 字符串中至少有一个字符并且所有字符都是字母
  2. isalnum(): 字符串中至少有一个字符并且所有字符都是数字
  3. isdigit(): 判断字符串中只包含数字
  4. isspace(): 判断字符串中是否只包含空白

2.2 列表

2.2.1 列表查找

  1. index(): 返回数据所在位置的下标
a.index(数据, 开始位置下标, 结束位置下标)
  1. count(): 统计数据在列表中出现的次数
a.count('data')
  1. len(): 访问列表的长度

2.2.2 列表增加

  1. append(数据): 结尾追加数据
  2. extend(数据): 结尾追加数据,如果数据是一个字符串,则将这个字符串中数据逐一加入列表
  3. insert(位置下标, 数据): 指定位置增加数据

2.2.3 列表删除

  1. del: 删除列表
  2. pop(下标): 删除指定下标的数据(默认最后一个),并返回数据
  3. remove(数据): 移除列表中某个数据的第一个匹配项
  4. clear(): 清空列表

2.2.4 列表修改

  1. 修改指定下标的数据: a[下标] = 数据
  2. reverse(): 逆置
  3. sort(): 排序
l.sort(key=None, reverse=True)
# resverse=True升序,reverse=False降序

2.2.5 列表复制

  1. copy():复制

2.3 字典

2.3.1 dict新增

  1. dict[key] = value: key不存在则新增键值对

2.3.2 dict删除

  1. del/del(): 删除字典/删除字典中的键值对
  2. clear(): 清空字典

2.3.3 dict修改

  1. dict[key] = value: key存在则修改键值对内容

2.3.4 dict查询

  1. get(): dict.get(key, 默认值)
  2. key值查找: dict[‘key’],key不存在则报错
  3. keys(): 查找所有key值
  4. values(): 查找所有value值
  5. items(): 查找所有key-value值,键值对元组

2.4 集合

2.4.1 增加数据

  1. add(): 追加单一数据,集合无序,可能追加任意一个位置
  2. update(): 追加的是数据序列

2.4.2 删除数据

  1. remove(): 删除指定数据,不存在则报错
  2. discard(): 删除指定数据,不存在不会报错
  3. 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_idinfo_dict['name'] = new_nameinfo_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)breakelse: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_teli['id'] = update_idbreakelse: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':breakelse:print('您输入的序号有误!!!')

2.5.2 递归

2.5.2.1 特点
  1. 函数内部自己调用自己
  2. 必须有出口
2.5.2.2 示例1 - 3以内的数字累加和
"""
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 参数 : 表达式

# 函数实现
def fn1():return 100result = fn1()
print(result)# lambda实现
fn2 = lambda : 100
result = fn2()
print(result)
print(fn2) # 匿名函数的内存地址

2.6 高阶函数

2.6.1 map()

map(func, lst): 将传入的函数变量func作用到lst变量的每个元素中,并将结果生成新的迭代器

# 计算列表中各个数字的2次方
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计算结果继续和序列的下一个元素做累计运算

# 计算list1各数累加和
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 切换目录命令

命令说明
cd
切换到指定目录

3.2.3 创建、删除文件和目录命令

命令说明
touch
创建指定文件
mkdir
创建目录(文件夹)
rm
删除指定文件
rmdir
删除空目录

3.2.5 复制、移动文件和目录命令

命令说明
cp
复制(拷贝)文件、拷贝目录
mv
移动文件、移动目录、重命名

3.2.6 重定向命令

命令说明
>
文件存在则覆盖文件内容
>>
文件存在则追加文件内容

3.2.7 查看文件内容命令

命令说明
cat
查看小型文件
more
查看大型文件
|
管道

3.2.8 链接命令

命令说明
ln -s
创建软链接

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 文件权限命令

命令说明
chmod
修改权限

3.2.12 查找文件位置

### 3.2.13 远程命令
命令说明
which
查看命令位置
命令说明
ssh
远程登录
scp
远程拷贝

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

http://www.mrgr.cn/news/54432.html

相关文章:

  • A Graph-Transformer for Whole SlideImage Classification文献笔记
  • 未来智慧城市发展的四大引领方向
  • 人工智能:塑造未来生活与工作的力量
  • 全面解析:优化RAG效果的关键策略,非常详细收藏我这一篇就够了
  • RISC-V笔记——RVWMO基本体
  • 点菜问题(北京大学考研机试题01背包)
  • armbian 青龙面板
  • 超详细介绍bash脚本相关细节
  • 运算符优先级有没有通用原则?
  • 点餐小程序实战教程20广告管理
  • PCL点云库 概览
  • 大数据hive(二)
  • 批量归一化Batch Norm
  • 【PyTorch 】【CUDA】深入了解 PyTorch 中的 CUDA 和 cuDNN 版本及 GPU 信息
  • 在MySQL中建索引时需要注意哪些事项?
  • vue查缺补漏
  • 不同jdk版本中的接口规范
  • Python生成随机密码脚本
  • curl,nc和telnet的用法以及其他常用工具(nc代理与重定向)
  • 用 CSS 和 JS 打造简约又不失亮点的客户评价展示
  • 【Python】基础语法
  • 【Linux】main函数的参数列表从何而来?
  • 基于SpringBoot基于微信的借书驿站小程序【附源码】
  • 嘉立创EDA个人学习笔记2(绘制51单片机核心板)
  • EDA系统的性能
  • ChatGLM-6B中英双语对话大模型Windows本地部署实战