【Python-AI篇】人工智能python基础-计算机组成原理
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)
# 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 示例:学生管理系统
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 特点
- 函数内部自己调用自己
- 必须有出口
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 查看目录命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
3.2.2 切换目录命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
3.2.3 创建、删除文件和目录命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
| | | |||
| | | |||
3.2.5 复制、移动文件和目录命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
3.2.6 重定向命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
3.2.7 查看文件内容命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
| | | |||
3.2.8 链接命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
3.2.9 查找文件内容命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
3.2.10 压缩和解压缩命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
3.2.11 文件权限命令
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
3.2.12 查找文件位置
### 3.2.13 远程命令| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
4. 正则表达式
4.1 匹配单个字符
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
4.2 匹配多个字符
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
4.3 匹配开头和结尾
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
| | | |||
4.4 匹配分组
| 命令 | 说明 | |||
|---|---|---|---|---|
| | | |||
| | | |||
| | | |||
| | | |||
| | | |||
相关文章:
【Python-AI篇】人工智能python基础-计算机组成原理
1. 计算机组成原理 2. python基础(查漏补缺) 2.1 字符串 2.1.1 字符串查找方法 find(): 检测某个字符串是否包含在这个字符串中,在的话返回下标,不在的话返回-1index(): 检测某个字符串是否包含在这个字…...
Java Exercise
3194. 最小元素和最大元素的最小平均值 Solution类 class Solution {public double minimumAverage(int[] nums){int n nums.length / 2;Arrays.sort(nums);int average 0;ArrayList<Double> arrayList new ArrayList<>();int i;int j;for (i 0, j nums.leng…...
滚雪球学Redis[9.1讲]:Redis的常见问题与最佳实践
全文目录: 前言1. Redis的常见问题排查常见错误信息与解决方案性能瓶颈的识别与处理数据一致性问题的排查 2. Redis的最佳实践Redis使用中的通用原则典型业务场景中的最佳实践如何避免Redis中的反模式 小结下期预告 前言 在上一章【第八章:Redis的扩展与…...
python获取当前鼠标位置的RGB值
效果 依赖 pip install Pillow pyautoguisudo apt install gnome-screenshot代码 import pyautogui import timedef get_rgb_at_mouse():try:while True:# 获取当前鼠标的位置x, y pyautogui.position()# 截取当前屏幕图像screenshot pyautogui.screenshot()# 获取鼠标位置…...
Ubuntu20.04运行深蓝运动规划hw_5
前言 环境: ubuntu 20.04 ; ROS版本: noetic; 问题 运行 roslaunch waypoint_trajectory_generator test.launch 出现如下错误 Invalid argument "/map" passed to canTransform argument source_frame in tf2 fra…...
删除node_modules文件夹
前言 当安装了较多模块后,node_modules目录下的文件会很多,直接删除整个目录会很慢,下面介绍些快速删除node_modules目录的方法。 方法一:使用rimraf模块的命令 在全局安装rimraf模块,然后通过其命令来快速删除node…...
基于Springboot+Vue的民宿管理系统(含源码数据库)
1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 在这个…...
[LeetCode] 542. 01矩阵
题目描述: 给定一个由 0 和 1 组成的矩阵 mat ,请输出一个大小相同的矩阵,其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1: 输入:mat [[0,0,0],[0,1,0],[0,0,0]] 输出…...
国产AI模型“Yi-Lightning”逆袭超越GPT-4!
近日,全球千万用户盲测投票产生的AI模型排行榜公布,令人惊喜的是,国产AI模型“Yi-Lightning”成功逆袭,一举超越了此前长期占据榜首的GPT-4。 Ai 智能办公利器 - Ai-321.com 人工智能 - Ai工具集 - 全球热门人工智能软件ai工具集…...
安卓設備上怎麼設置HTTP代理?
HTTP代理是一種仲介伺服器,它在用戶的設備和互聯網之間傳遞請求。通過HTTP代理,請求會先發送到代理伺服器,然後由代理伺服器轉發到目標網站。這樣,目標網站只會看到代理伺服器的IP地址,而不是真實IP地址。這種機制可以…...
学习Redisson实现分布式锁
官网:https://redisson.org/ 官方文档:https://redisson.org/docs/getting-started/ 官方中文文档:https://github.com/redisson/redisson/wiki/%E7%9B%AE%E5%BD%95 1、引入依赖 <!--redisson--> <dependency><groupId>or…...
2024CSP-J模拟赛9————S12678
一,赛中得分 T1100T2100T350T440总分290 二,赛中概括 T1T2较快过,T3T4骗了90分(意料之中,这么好骗分!!!)。 三,题目解析 涂格子(paint) 问题描述 现在有…...
HarmonyOS中ArkUi框架中常用的装饰器
目录 1.装饰器 1)Component 1--装饰内容 2)Entry 1--装饰内容 2--使用说明 3)Preview 1--装饰内容 2--使用说明 4)CustomDialog 1--装饰内容 2--使用说明 5)Observed 1--装饰内容 2--使用说明 6)ObjectLin…...
服务攻防之Redis数据库安全
最近我将会把一些服务攻防方面的姿势在这里做一个简单总结。欢迎大家留言讨论。 首先我们先对这类安全问题做一个总体的概括! 一、总概 1.服务判断: 端口扫描:利用服务开启后的目标端口开放判断 组合判断:利用搭建常见组合分析可能开放服务…...
随机森林算法的原理与实现
随机森林(Random Forest)是一种集成学习算法,它通过构建多个决策树并结合这些树的结果来进行分类或回归。与单一的决策树相比,随机森林通过集成多个树的结果,能够显著提高预测的准确性和稳定性,减少模型的过…...
模仿百度-基础版
<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>百度案例</title><style>*{margin: 0;p…...
c++贴瓷砖
题目描述 有一块大小是 2 * n 的墙面,现在需要用2种规格的瓷砖铺满,瓷砖规格分别是 2 * 1 和 2 * 2,请计算一共有多少种铺设的方法。 输入 输入的第一行包含一个正整数T(T<20),表示一共有T组数据&…...
用 Python 构建高级配对交易策略
作者:老余捞鱼 原创不易,转载请标明出处及原作者。 写在前面的话: 本文阐述通过分析加密货币和传统金融工具之间的相关性和协整性,以及实施 Z-score 方法来生成交易信号,然后介绍如何使用 Python 构建配对交易策…...
Java 引用数据类型详解、字符串的不可变性、如何处理字符串的内存管理、String Pool 及其优化
文章目录 1. 引用数据类型1.1 常见引用数据类型 2. 字符串的不可变性2.1 不可变性的优点2.2 不可变性示例 3. 如何处理字符串的内存管理3.1 String Pool3.2 String 内存优化 4. String Pool 及其优化4.1 String Pool的工作原理4.2 String Pool的优化4.3 使用 intern() 进一步优…...
Babel使用
初始化项目 npm init -y 创建文件 // 转码前 // 定义数据 let input [1, 2, 3] // 将数组的每个元素 1 input input.map(item > item 1) console.log(input)配置.babelrc Babel的配置文件是.babelrc,presets字段设定转码规则,将es2015规则加入…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
Debian系统简介
目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版ÿ…...
STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...
转转集团旗下首家二手多品类循环仓店“超级转转”开业
6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...
ESP32 I2S音频总线学习笔记(四): INMP441采集音频并实时播放
简介 前面两期文章我们介绍了I2S的读取和写入,一个是通过INMP441麦克风模块采集音频,一个是通过PCM5102A模块播放音频,那如果我们将两者结合起来,将麦克风采集到的音频通过PCM5102A播放,是不是就可以做一个扩音器了呢…...
PL0语法,分析器实现!
简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...
3-11单元格区域边界定位(End属性)学习笔记
返回一个Range 对象,只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意:它移动的位置必须是相连的有内容的单元格…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
