【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规则加入…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
Leetcode 3576. Transform Array to All Equal Elements
Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接:3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到…...
ssc377d修改flash分区大小
1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

Cloudflare 从 Nginx 到 Pingora:性能、效率与安全的全面升级
在互联网的快速发展中,高性能、高效率和高安全性的网络服务成为了各大互联网基础设施提供商的核心追求。Cloudflare 作为全球领先的互联网安全和基础设施公司,近期做出了一个重大技术决策:弃用长期使用的 Nginx,转而采用其内部开发…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...
Linux离线(zip方式)安装docker
目录 基础信息操作系统信息docker信息 安装实例安装步骤示例 遇到的问题问题1:修改默认工作路径启动失败问题2 找不到对应组 基础信息 操作系统信息 OS版本:CentOS 7 64位 内核版本:3.10.0 相关命令: uname -rcat /etc/os-rele…...

Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...

【C++特殊工具与技术】优化内存分配(一):C++中的内存分配
目录 一、C 内存的基本概念 1.1 内存的物理与逻辑结构 1.2 C 程序的内存区域划分 二、栈内存分配 2.1 栈内存的特点 2.2 栈内存分配示例 三、堆内存分配 3.1 new和delete操作符 4.2 内存泄漏与悬空指针问题 4.3 new和delete的重载 四、智能指针…...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...