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

news2024/11/27 18:01:12

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_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以内的数字累加和
"""
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 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变量的每个元素中,并将结果生成新的迭代器

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

# 计算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()来转换

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2219280.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git命令使用一览【自用】

git常见操作&#xff1a; git initgit remote add master【分支名字】 gitgits.xxxxx【仓库中获取的ssh链接或者http协议的链接】检查远程仓库是否链接成功。 git remote -v出现以下画面就可以git pull,git push了

cefsharp63.0.3(Chromium 63.0.3239.132)支持H264视频播放-PDF预览 老版本回顾系列体验

一、版本 版本:Cef 63/CefSharp63.0.3/Chromium63.0.3239.132/支持H264/支持PDF预览 支持PDF预览和H264推荐版本 63/79/84/88/100/111/125 <

Java EE规范

1、简介 Java EE的全称是Java Platform, Enterprise Edition。早期Java EE也被称为J2EE&#xff0c;即Java 2 Platform Enterprise Edition的缩写。从J2EE1.5以后&#xff0c;就改名成为Java EE。一般来说&#xff0c;企业级应用具备这些特征&#xff1a;1、数据量特别大&…

java 文件File类概述

前言 在Java中&#xff0c;File类是一个与文件和目录&#xff08;文件夹&#xff09;路径名相关的抽象表示形式。它是java.io包中的一个重要类&#xff0c;用于表示和操作文件系统中的文件和目录。 File类的基本概念 表示路径&#xff1a;File类既可以表示文件路径&#xff…

【mod分享】波斯王子遗忘之沙高清重置,纹理,字体,贴图全部重置,特效增强,支持光追

各位好&#xff0c;今天小编给大家带来一款新的高清重置MOD&#xff0c;本次高清重置的游戏叫《波斯王子&#xff1a;遗忘之沙》。 《波斯王子&#xff1a;遗忘之沙》是由育碧&#xff08;Ubisoft&#xff09;开发并发行的一款动作类游戏&#xff0c;于2010年5月18日发行。游戏…

Linux执行source /etc/profile命令报错:权限不够问(已解决)

1.问题 明明以root账号登录Linux系统&#xff0c;在终端执行命令source /etc/profile时 显示权限不够 如下图&#xff1a; 2.问题原因 可能在编辑 /etc/profile 这个文件时不小心把开头的 井号 ‘#’ 给删除了 如图&#xff1a; 这里一定要有# 3.解决办法 进入/etc/pro…

用你的手机/电脑运行文生图方案

随着ChatGPT和Stable Diffusion的发布&#xff0c;最近一两年&#xff0c;生成式AI已经火爆全球&#xff0c;已然成为移动互联网后一个重要的“风口”。就图片/视频生成领域来说&#xff0c;Stable Diffusion模型发挥着极其重要的作用。由于Stable Diffusion模型参数量是10亿参…

PHP爬虫:获取商品销量数据的利器

在电子商务的激烈竞争中&#xff0c;掌握商品销量数据是商家洞察市场动态、制定销售策略的关键。通过PHP爬虫技术&#xff0c;我们可以高效地获取这些数据&#xff0c;为商业决策提供支持。 PHP爬虫的优势 PHP作为一种流行的服务器端脚本语言&#xff0c;拥有跨平台运行、丰富…

【C++篇】类与对象的秘密(上)

目录 引言 一、类的定义 1.1类定义的基本格式 1.2 成员命名规范 1.3 class与struct的区别 1.4 访问限定符 1.5 类的作用域 二、实例化 2.1 类的实例化 2.2 对象的大小与内存对齐 三、this 指针 3.1 this指针的基本用法 3.2 为什么需要this指针&#xff1f; 3.3 t…

数据结构——链表,哈希表

文章目录 链表python实现双向链表复杂度分析 哈希表&#xff08;散列表&#xff09;python实现哈希表哈希表的应用 链表 python实现 class Node:def __init__(self, item):self.item itemself.next Nonedef head_create_linklist(li):head Node(li[0])for element in li[1…

SQL Server 2019数据库“正常,已自动关闭”

现象&#xff1a; SQL Server 2019中&#xff0c;某个数据库在SQL Server Management Studio&#xff08;SSMS&#xff09;中的状态显示为“正常&#xff0c;已自动关闭”。 解释&#xff1a; 如此显示&#xff0c;是由于该数据库的AUTO_ CLOSE选项被设为True。 在微软的官…

JavaSE——IO流1:FileOutputStream(字节输出流)、FileInputStream(字节输入流)

目录 一、IO流概述 二、IO流的分类 三、字节输出流与字节输入流 (一)字节输出流——FileOutputStream 1.FileOutputStream书写步骤 2.FileOutputStream书写细节 3.FileOutputStream写数据的3种方式 4.FileOutputStream的换行和续写 (二)字节输入流——FileInputStream…

如何给手机换ip地址

在当今数字化时代&#xff0c;IP地址作为设备在网络中的唯一标识&#xff0c;扮演着举足轻重的角色。然而&#xff0c;有时出于隐私保护、网络访问需求或其他特定原因&#xff0c;我们可能需要更改手机的IP地址。本文将详细介绍几种实用的方法&#xff0c;帮助您轻松实现手机IP…

若依框架中spring security的完整认证流程,及其如何使用自定义用户表进行登录认证,学会轻松实现二开,嘎嘎赚块乾

1&#xff09;熟悉之前的SysUser登录流程 过滤器链验证配置 这里security过滤器链增加了前置过滤器链jwtFilter 该过滤器为我们自定义的&#xff0c;每次请求都会经过jwt验证 ok我们按ctrl alt B跳转过去来看下 首先会获取登录用户LoginUser 内部通过header键&#xff0c;获…

Deep Learning

深度学习 文章目录 前言面向开发人员的 NVIDIA AI 平台每个 AI 框架 - 加速统一平台从开发到部署前言 深度学习是 AI 和机器学习的一个子集,它使用多层人工神经网络在对象检测、语音识别、语言翻译等任务中提供最先进的准确性。 深度学习与传统机器学习技术的不同之处在于,深…

python爬虫加解密分析及实现

第一种&#xff1a; 1、找到加密的接口地址&#xff0c;通过加密的接口地址全局搜索 2、通过打断点的方式&#xff0c;操作页面&#xff0c;跑到断点处时&#xff0c;即可找到加密串&#xff0c;如图二&#xff1b; 3、找到用的是哪种加密方式&#xff0c;如&#xff1a; cr…

PCL 点云配准 基于目标对称的ICP算法(精配准)

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 2.1关键函数 2.1.1计算点云的法线 2.1.2基于对称误差估计的ICP配准 2.1.3可视化 2.2完整代码 三、实现效果 PCL点云算法汇总及实战案例汇总的目录地址链接&#xff1a; PCL点云算法与项目实战案例汇总…

OpenCV高级图形用户界面(20)更改窗口的标题函数setWindowTitle()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在OpenCV中&#xff0c;cv::setWindowTitle函数用于更改窗口的标题。这使得您可以在程序运行时动态地更改窗口的标题文本。 函数原型 void cv::…

SpringBoot日常:封装redission starter组件

文章目录 逻辑实现POM.xmlRedissionConfigRedissionPropertiesRedissionUtilsspring.factories 功能测试application.yml配置POM.xmlTestController运行测试 本章内容主要介绍如何通过封装相关的redission连接配置和工具类&#xff0c;最终完成一个通用的redission starter。并…

论文速读:通过目标感知双分支蒸馏进行跨域目标检测(CVPR2022)

原文标题&#xff1a;Cross Domain Object Detection by Target-Perceived Dual Branch Distillation 中文标题&#xff1a;通过目标感知双分支蒸馏进行跨域目标检测 论文地址&#xff1a; https://arxiv.org/abs/2205.01291 代码地址&#xff1a; GitHub - Feobi1999/TDD 这篇…