【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(): 替换
python 复制代码
字符串.replace(旧子串, 新子串, 替换次数)
  1. join(): 多个字符串合并成一个新的字符串
python 复制代码
字符串.join(字符串)
  1. split(): 按照指定字符分割字符串,丢失分割字符
python 复制代码
字符串.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(): 居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
python 复制代码
字符串.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(): 返回数据所在位置的下标
python 复制代码
a.index(数据, 开始位置下标, 结束位置下标)
  1. count(): 统计数据在列表中出现的次数
python 复制代码
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(): 排序
python 复制代码
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 示例:学生管理系统

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 特点
  1. 函数内部自己调用自己
  2. 必须有出口
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 切换目录命令

命令 说明
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分组匹配到的字符串
相关推荐
游客5204 分钟前
opencv中的各种滤波器简介
图像处理·人工智能·python·opencv·计算机视觉
一位小说男主4 分钟前
编码器与解码器:从‘乱码’到‘通话’
人工智能·深度学习
Eric.Lee20217 分钟前
moviepy将图片序列制作成视频并加载字幕 - python 实现
开发语言·python·音视频·moviepy·字幕视频合成·图像制作为视频
Dontla12 分钟前
vscode怎么设置anaconda python解释器(anaconda解释器、vscode解释器)
ide·vscode·python
深圳南柯电子21 分钟前
深圳南柯电子|电子设备EMC测试整改:常见问题与解决方案
人工智能
Kai HVZ21 分钟前
《OpenCV计算机视觉》--介绍及基础操作
人工智能·opencv·计算机视觉
biter008826 分钟前
opencv(15) OpenCV背景减除器(Background Subtractors)学习
人工智能·opencv·学习
吃个糖糖32 分钟前
35 Opencv 亚像素角点检测
人工智能·opencv·计算机视觉
qq_529025291 小时前
Torch.gather
python·深度学习·机器学习
数据小爬虫@1 小时前
如何高效利用Python爬虫按关键字搜索苏宁商品
开发语言·爬虫·python