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

python基础语法(4) ----- 学习笔记分享

目录

Python 使用库 以及 实战的一些案例

1. 标准库

1.1 认识标准库

1.2 使用import导入模块

1.3 代码示例:日期及结算

1.4 代码示例:字符串操作

1.5 代码示例 : 文件查找工具

2. 第三方库

2.1 认识第三方库

2.2 使用pip

2.3 代码示例:生成二维码

(1) 使用搜索引擎,确定使用哪个库

(2) 查看qrcode文档

2.4 代码示例:操作excel

(1) 安装xlrd

(2) 编写代码

2.5 代码示例:"程序猿鼓励师"

(1) 安装第三方依赖

(2) 准备音频文件

(3) 编写代码

3. 综合案例:学生管理系统

需求说明

功能:

创建入口函数

4. 后续拓展

4.1 python cookbook

4.2 awesome-python

4.3 500 Lines or Less


Python 使用库 以及 实战的一些案例

就是是别人已经写好了的代码,可以让我们直接拿来用

按照库的来源,可以大致分成两大类

  • 标准库 : python自带的库,只要安装了python就可以直接使用

  • 第三方库 : 其他人实现的库,要想使用,需要额外安装

1. 标准库

1.1 认识标准库

在python官方文档上可以看到这些库的内容

The Python Standard Library — Python 3.10.16 documentation

简单来说,主要是这些部分:

  • 内置函数(如print \ input等)

  • 内置类型(针对int \ str \ bool \ list \ dict等)

  • 文本处理

  • 时间日期

  • 数学计算

  • 文件目录

  • 数据存储(操作数据库,数据序列化等)

  • 加密解密

  • 操作系统相关

  • 并发编程相关(多进程 \ 多线程 \ 协程 \ 异步)

  • 网络编程相关

  • 多媒体相关(音频处理 \ 视频处理)

  • 图形化界面相关

  • ......

1.2 使用import导入模块

使用import可以导入标准库的一个模块

import [模块名]
1.3 代码示例:日期及结算

输入任意的两个日期,计算两个日期之间隔了多少天

  • 使用import语句导入标准库中的datetime模块

  • 使用datetime.datetime构造两个日期,参数使用年, 月, 日这样的格式

  • 两个日期对象相减,即可得到日期的差值

import datetime
date1 = datetime.datetime(2006, 3, 30)
date2 = datetime.datetime(2025, 1, 26)
print(date2 - date1)

1.4 代码示例:字符串操作

字符串是python的内置类型,字符串的很多方法不需要导入额外的模块,即可直接使用

(1) 翻转单词顺序

输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变,为简单起见,标点符号和普通字母一样处理

  • 使用 str 的 split 方法进行字符串切分,指定 空格 为分隔符,返回结果是一个列表

  • 使用列表的 reverse 方法进行逆序

  • 使用 str 的 join 方法进行字符串拼接,把列表中的内容进行合并

def reverseWords(s: str) :tokens = s.split(' ')tokens.reverse()return ' '.join(tokens)
​
print(reverseWords('I am a student Damn it!'))

(2) 旋转字符串

给定两个字符串,s和goal,如果在若干次旋转操作之后,s能变成goal,那么返回True.

s的旋转操作就是将s的最左边的字符移动到最右边

例如,若s = 'abcde' ,在旋转一次后结果就是'bcdea'

  • 使用 len 求字符串的长度,如果长度不相同,则一定不能旋转得到

  • 将 s 和自己进行拼接,然后直接使用in方法来判定goal是否是s + s的子串

def rotate(s,goal):return len(s) == len(goal) and goal in s + s
​
print(rotate('abcdf','cdeab'))

(3) 统计是给定字符串前缀的字符串数目

给你一个字符串数组words和一个字符串s,其中words[i]s只包含小写英文字母

请你返回words中是字符串s前缀的字符串数目

一个字符串的前缀是出现在字符串开头的子字符串.子字符串是一个字符串中的连续一段字符序列

  • 依次遍历words中的字符串

  • 直接使用字符串的startswith方法即可判定当前字符串是否是s的前缀

def countPrefixes(words,s):res = 0   #符合字符串个数for word in words:if s.startswith(word): # s是以word开头res += 1return res
​
print(countPrefixes(["a","b","c","ab","bc","abc"],"abc"))
1.5 代码示例 : 文件查找工具

指定一个待搜索路径,同时指定一个待搜索的关键字.

在待搜索路径中查找是否文件名中包含这个关键字.

  • 使用os.walk即可实现目录的递归遍历.

  • os.walk返回一个三元组,分别是当前路径,当前路径下包含的目录名(多个),当前路径下包含的文件名(多个)

import os
​
inputPath = input('请输入待搜索路径:')
pattern = input('请输入待搜索关键词:')
​
for dirpath,filenames in os.walk(inputPath):for f in filenames:if pattern in f:print(f'{dirpath}/{f}')

2. 第三方库

2.1 认识第三方库

第三方库就是别人已经实现好了的库,我们可以直接拿来使用

当我们确定了该使用哪个第三方库之后,就可以使用pip来安装第三方库

2.2 使用pip

pip 是python内置的包管理器,pip是一个可执行程序,就在python的安装目录中

使用以下命令,即可安装第三方库

pip install [库名]

注意:这个命令需要从网上下载,使用时要保证网络流畅

安装成功后,即可使用import导入相关模块,即可进行安装

注意:如果使用pip完成安装第三方库之后,在pycharm中仍然提示找不到对应的模块,

则检查Setting -> Project -> Python Interpreter ,看当前Python解释器设置的是否正确(如果一个机器上安装了多个版本的python,容易出现这种情况)

2.3 代码示例:生成二维码

二维码本质上,就是一段字符串~~

我们可以把任意的字符串,制作成一个二维码图片~~

生活中使用的二维码,更多的是一个URL(网址)

(1) 使用搜索引擎,确定使用哪个库

得到情报,qrcode这个库,可以用来生成二维码

(2) 查看qrcode文档
pip install "qrcode[pil]"

然后

import qrcode
​
img = qrcode.make('阿巴阿巴阿巴')
img.save('qrcode.png')
2.4 代码示例:操作excel
  • 读取excel可以使用xlrd模块

  • 修改excel可以使用xlwt模块

此处以xlrd模块,演示excek的基本操作

(1) 安装xlrd
pip install xlrd==1.2.0

注意:此处要指定版本号安装,如果不是指定版本号,则安装最新版,最新版里面删除了对xlsx格式文件的支持

(2) 编写代码
  • 使用open_workbook方法打开一个excel文件

  • 使用xlsx.sheet_by_index(0)获取到0号标签页

  • 使用table.nrows获取到表格的行数

  • 使用table.cell_value(row,col)获取到表格中row \ col位置的元素值

# 简单操作excel
import xlrd
​
# 1. 打开 xlsx 文件
xlsx = xlrd.open_workbook('E:\\py.项目\\study_11.1\\pythonProject\\test.xlsx')
​
# 2. 获取到指定的标签页
table = xlsx.sheet_by_index(0)
​
# 3. 获取到表格中有多少行
nrows = table.nrows
​
# 4. 进行循环统计操作
total = 0
count = 0
for i in range(1, nrows):# 拿到当前同学的班级idclassId = table.cell_value(i, 1)if classId == 1:total += table.cell_value(i, 2)count += 1
​
print(f'1班同学平均分:{total / count}')
2.5 代码示例:"程序猿鼓励师"

监听键盘按键,每按键20下,就自动播放一个音频,鼓励一下辛苦板砖的自己

(1) 安装第三方依赖
  • pynput用于监听键盘按键,注意版本不要用最新

  • playsound用于播放音频

pip install pynput==1.6.8
pip install playsound==1.2.2
(2) 准备音频文件

此处准备了一个ding.mp3放到和py代码同级目录中

(3) 编写代码
  • 使用from import的格式直接导入模块中的指定对象/函数

  • 使用keyboard.Listener监听键盘按键,其中on_release会在释放按键时被调用

  • 使用listener.start启动监听器,为了防止程序直接退出,使用listener.join让程序等待用户按键

  • 使用count计数,每隔20次,调用playground播放音频文件

import random
​
from pynput import keyboard
from playsound import playsound
from threading import Thread
​
soundList = ['遇见 (电影《向左走向右走》主题曲)-孙燕姿.mp3','说好的幸福呢-周杰伦.mp3','雨天-孙燕姿.mp3']
​
#用来记录用户安乐多少次键盘
count = 0
​
def onRelease(key):"""这个函数,就是在用户释放键盘按键的时候,就会被调用到这个函数不是咱们自己主动调用的,而是把这个函数交给了Listener,由Listener在用户释放按键的时候自动调用像这样的不是咱们自己主动调用,而是交给别人,在合适的时机进行调用,这样的函数叫做"回调函数":param key: 用户按下了哪个键:return:"""print(key)global countcount += 1if count % 20 == 0:#播放音频#生成随机数i = random.randint(0,len(soundList)-1)# 此处的播放音频,消耗的时间比较多,可以创建一个线程,在线程里播放音频# playsound(soundList[i])t = Thread(target=playsound,args=[soundList[i],])t.start()
​
# 当我们创建好listener之后,用户的键盘按键动作就会被捕获到
# 还希望再捕获到之后能够执行一段代码
listener = keyboard.Listener(on_release=onRelease)
listener.start()
listener.join()
​
# 播放音频可能出现输入卡顿 : 因为播放音频是一个比较耗时过程

3. 综合案例:学生管理系统

需求说明

实现一个命令行版本的学生管理系统

功能:
  • 新增学生

  • 显示学生

  • 查找学生

  • 删除学生

  • 存档到文件

创建入口函数
  • 使用一个全局列表students表示所有学生信息

  • 使用menu函数和用户交互,这是一个自定义函数

  • 使用insert,show,find,delete这几个自定义函数完成增删查操作

  • 使用sys.exit实现程序退出

  • 约定好数据的存储格式~约定把数据保存在和py文件同级目录中,文件名为 record.txt

  • 文件内容按照 行文本 的方式来表示~

    • 首先这是一个文本文件,里面包含了很多行~每一行代表一个学生~学生信息之间使用制表符\t来分割~

# 实现一个命令行版本的学生管理系统
import os
import sys
​
# 使用这个全局变量,来管理所有的学生信息
# 这个列表的每个元素都一个"字典",每个字典就分别表示一个同学!
students = []
​
def save():"""用于存档:return:"""# 此处的路径是相对路径,含义就是让 record.txt 和 当前的py文件在同一个目录里面with open('record.txt','w',encoding='utf-8') as f:for s in students:f.write(f"{s['studentId']}\t{s['name']}\t{s['gender']}\t{s['className']}\n")print(f'[存档成功] 共存储了 {len(students)} 条记录!')
​
def load():"""用于读档:return:"""# 如果存档文件不存在,则直接跳过读档流程# 为了避免读方式打开文件的时候,文件不存在引起异常if not os.path.exists('record.txt'):return# 读档的时候要把旧的数据清理干净global studentsstudents = []with open('record.txt','r',encoding='utf-8') as f:for line in f:# 针对这一行数据,按照 \t 进行切分操作!# 切分之前,要去除末尾的换行.line = line.strip() # 去掉一行 / 一个字符串首尾的空白符号(空格,换行,回车,制表符,翻页符,垂直制表符)tokens = line.split('\t')if len(tokens) != 4:print(f'当前行格式存在问题! line={line}')continuestudent = {'studentId': tokens[0],'name': tokens[1],'gender': tokens[2],'className': tokens[3],}students.append(student)print(f'[读档成功] 共读取了 {len(students)} 条记录!')
​
def menu():print(" 1. 新增学生 ")print(" 2. 显示学生 ")print(" 3. 查找学生 ")print(" 4. 删除学生 ")print(" 0. 退出程序 ")choice = input('请输入您的选择:')return choice
​
def insert():print('[新增学生] 开始!')studentId = input('请输入学生的学号:')name = input('请输入学生的姓名:')gender = input('请输入学生的性别:')if gender not in ('男','女'):print('性别输入内容不符合要求,新增失败!')returnclassName = input('请输入学生的班级:')# 使用一个字典把上述的信息给聚合起来student = {'studentId': studentId,'name': name,'gender':gender,'className':className,}global studentsstudents.append(student)# 增加一个保存操作save()print('[新增学生] 完毕!')
​
def show():# 遍历全局变量的这个列表,把每个学生的信息给打印出来print('[显示学生] 开始!')for s in students:print(f"[{s['studentId']}]\t{s['name']}\t{s['gender']}\t{s['className']}")print(f'[显示学生] 完毕! 共显示了 {len(students)} 条数据!')
​
def find():# 根据学生姓名,来进行查找print('[查找学生] 开始!')name = input('请输入要查找的同学姓名:')count = 0for s in students:if s['name'] == name:print(f"[{s['studentId']}]\t{s['name']}\t{s['gender']}\t{s['className']}")count += 1
​print(f'[查找学生] 结束! 共找到了 {count} 个匹配的同学')
​
def delete():print('[删除学生] 开始!')studentId = input('请输入要删除学生的学号:')# 看看这个学号的同学是哪个字典,然后把这个字典从列表中删掉就好了!for s in students:if s['studentId'] == studentId:print(f"您的操作删除了 {s['name']} 同学的相关信息")students.remove(s)# 增加一个保存操作save()print('[删除学生] 完毕!')
​
def main():"""入口函数:return:"""#通过控制台和用户进行交互print('--------------------------------------')print('           欢迎来到学生管理系统           ')print('--------------------------------------')# 需要在程序启动的时候调用load函数load()while True:# 通过menu函数来打印操蛋项choice = menu()if choice == '1':# 新增学生insert()elif choice == '2':# 显示所有学生show()elif choice == '3':# 查找学生find()elif choice == '4':# 删除学生delete()elif choice == '0':# 退出程序print('goodbye!')sys.exit(0)else:print('您的输入有误!请重新输入!')# continue 需要进入下次循环,让用户重新输入
​
main()

4. 后续拓展

4.1 python cookbook

python经典进阶书籍,针对各种典型场景提供了一些解决方案

4.2 awesome-python

一些非常实用的程序库

awesome-python: awesome-python 的中文版

4.3 500 Lines or Less

使用简短的python代码来实现一些有意思的程序

https://github.com/aosabook/500lines

相关文章:

python基础语法(4) ----- 学习笔记分享

目录 Python 使用库 以及 实战的一些案例 1. 标准库 1.1 认识标准库 1.2 使用import导入模块 1.3 代码示例:日期及结算 1.4 代码示例:字符串操作 1.5 代码示例 : 文件查找工具 2. 第三方库 2.1 认识第三方库 2.2 使用pip 2.3 代码示例:生成二维码 (1) 使用搜索引擎,…...

Linux 内核学习 3b - 和copilot 讨论pci设备的物理地址在内核空间和用户空间映射到虚拟地址的区别

前提知识: 可以把内核当作一个需要特殊权限运行的程序,那么不同的程序,相同的设备物理地址就会映射到不同的虚拟地址 (见Linux 内核学习 3 - 虚拟内存和物理内存)。 You said 同一个pcie 设备物理地址在linux 内核和用…...

算法【有依赖的背包】

有依赖的背包是指多个物品变成一个复合物品(互斥),每件复合物品不要和怎么要多种可能性展开。时间复杂度O(物品个数 * 背包容量),额外空间复杂度O(背包容量)。 下面通过题目加深理解。 题目一 测试链接:[NOIP2006 提…...

【Linux】 冯诺依曼体系与计算机系统架构全解

Linux相关知识点可以通过点击以下链接进行学习一起加油!初识指令指令进阶权限管理yum包管理与vim编辑器GCC/G编译器make与Makefile自动化构建GDB调试器与Git版本控制工具Linux下进度条 冯诺依曼体系是现代计算机设计的基石,其统一存储和顺序执行理念推动…...

【深度学习】 UNet详解

UNet 是一种经典的卷积神经网络(Convolutional Neural Network, CNN)架构,专为生物医学图像分割任务设计。该模型于 2015 年由 Olaf Ronneberger 等人在论文《U-Net: Convolutional Networks for Biomedical Image Segmentation》中首次提出&…...

“深入浅出”系列之算法篇:(2)openCV、openMV、openGL

OpenCV是一个的跨平台计算机视觉库,可以运行在Linux囚、Windows 和Mac OS操作系统上。它轻量级而且高效,由一系列 C函数和少量C类构成,同时也提供了Python 接口,实现了图像处理和计算机视觉方面的很多通用算法。 OpenMV是一个开源,低成本&am…...

低代码系统-产品架构案例介绍、得帆云(八)

产品名称 得帆云DeCode低代码平台-私有化 得帆云DeMDM主数据管理平台 得帆云DeCode低代码平台-公有云 得帆云DePortal企业门户 得帆云DeFusion融合集成平台 得帆云DeHoop数据中台 名词 概念 云原生 指自己搭建的运维平台,区别于阿里云、腾讯云 Dehoop 指…...

web3py+flask+ganache的智能合约教育平台

最近在学习web3的接口文档,使用web3pyflaskganache写了一个简易的智能合约教育平台,语言用的是python,ganche直接使用的本地区块链网络,用web3py进行交互。 代码逻辑不难,可以私信或者到我的闲鱼号夏沫mds获取我的代码…...

(长期更新)《零基础入门 ArcGIS(ArcMap) 》实验六----流域综合处理(超超超详细!!!)

流域综合处理 流域综合治理是根据流域自然和社会经济状况及区域国民经济发展的要求,以流域水流失治理为中心,以提高生态经济效益和社会经济持续发展为目标,以基本农田优化结构和高效利用及植被建设为重点,建立具有水土保持兼高效生态经济功能的半山区流域综合治理模式。数字高程…...

基于 WPF 平台使用纯 C# 实现动态处理 json 字符串

一、引言 在当今的软件开发领域,数据的交换与存储变得愈发频繁,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,以其简洁、易读、便于解析和生成的特点,被广泛应用于各种应用程序中。在 W…...

DRF开发避坑指南01

在当今快速发展的Web开发领域,Django REST Framework(DRF)以其强大的功能和灵活性成为了众多开发者的首选。然而,错误的使用方法不仅会导致项目进度延误,还可能影响性能和安全性。本文将从我个人本身遇到的相关坑来给大…...

WordPress免费证书插件

为了在您的网站上启用HTTPS,您可以使用本插件快速获取Let’s Encrypt免费证书。 主要功能: 支持快速申请Let’s Encrypt免费证书支持通配符证书申请,每个证书最多可以绑定100个域名支持自动续期证书支持重颁发证书,证书过期或失…...

MongoDB平替数据库对比

背景 项目一直是与实时在线监测相关,特点数据量大,读写操作大,所以选用的是MongoDB。但按趋势来讲,需要有一款国产数据库可替代,实现信创要求。选型对比如下 1. IoTDB 这款是由清华大学主导的开源时序数据库&#x…...

ANSYS学习笔记(十)网格质量的诊断和提高

网格质量的好坏不能单纯只看meshing给出的网格质量结果,要根据实际的计算物理场景来判断,需要求解的地方物理量大梯度的位置网格越密越好。 网格质量:在有限网格数量限制下,离散误差小的网格是好网格,是高质量网格。网…...

能量提升法三:赞美

前情回顾: 《能量提升法二:感恩》 片段:“感恩,就像是在跟世界说:谢谢你,我收到了,我很喜欢,请多来点” 把它归还人海,就当作每一个人,都有可能是曾经帮助…...

C++中函数返回值当引用

文章目录 一、概述二、返回值当引用的基本语法三、返回局部变量的引用四、返回引用的常见用途五、返回右值引用六、总结 一、概述 在 C 中,函数返回值当引用(即返回引用)是一个常见的编程技巧。它可以让你返回一个函数内部的局部变量或对象的…...

27. C语言 强制类型转换详解

本章目录: 前言强制类型转换(Type Casting)强制类型转换的语法示例1:将整数转换为浮点数输出结果: 代码解析: 整数提升(Integer Promotion)示例2:整数提升输出结果: 代码…...

Linux 命令之技巧(Tips for Linux Commands)

Linux 命令之技巧 简介 Linux ‌是一种免费使用和自由传播的类Unix操作系统,其内核由林纳斯本纳第克特托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户…...

freeswitch在centos上编译过程

操作系统:centos9-last usr/local/freeswitch/bin/freeswitch -version FreeSWITCH version: 1.10.13-devgit~20250125T131725Z~3f1e4bf90a~64bit (git 3f1e4bf 2025-01-25 13:17:25Z 64bit)vi /etc/ssh/sshd_config ip a nmtui reboot ip a curl -o /etc/pki/rpm-…...

快速入门Flink

Flink是新一代实时计算平台,采用原生的流处理系统,保证了低延迟性,在API和容错上也是做的相当完善,本文将从架构、组件栈、安装、入门程序等进行基础知识的分析,帮助大家快速对Flink有一个了解。 一.简介 1.是什么 Ap…...

c++ list

1.构造函数 构造函数 // list<T> lst; // list(beg, end); // 区间构造 // list(n, elem); // 元素构造 // list(const list &lst); // 拷贝构造#include <iostream> #include <fstream> #include <string> #include <list> using name…...

Vue 3 + TypeScript 实现父子组件协同工作案例解析

引言 在现代的前端开发中&#xff0c;Vue.js 作为一款流行的渐进式 JavaScript 框架&#xff0c;为我们构建交互式用户界面提供了强大的支持。Vue 3 的推出带来了许多新特性&#xff0c;尤其是组合式 API 的引入&#xff0c;让代码的组织和复用更加灵活。同时&#xff0c;TypeS…...

深度剖析C++17中的std::optional:处理可能缺失值的利器

文章目录 一、基本概念与设计理念二、构建与初始化&#xff08;一&#xff09;默认构造&#xff08;二&#xff09;值初始化&#xff08;三&#xff09;使用std::make_optional&#xff08;四&#xff09;使用std::nullopt 三、访问值&#xff08;一&#xff09;value()&#x…...

【ArcGIS微课1000例】0141:提取多波段影像中的单个波段

文章目录 一、波段提取函数二、加载单波段导出问题描述:如下图所示,img格式的时序NDVI数据有24个波段。现在需要提取某一个波段,该怎样操作? 一、波段提取函数 首先加载多波段数据。点击【窗口】→【影像分析】。 选择需要处理的多波段影像,点击下方的【添加函数】。 在多…...

一分钟搭建promehteus+grafana+alertmanager监控平台

为什么要自己搭建一个监控平台 平时进行后端开发&#xff0c;特别是微服务的后端可开发&#xff0c;一定少不了对接监控平台&#xff0c;但是平时进行一些小功能的测试又没有必要每次都手动安装那么多软件进行一个小功能的测试&#xff0c;这里我使用docker-compose搭建了一个…...

Transfoemr的解码器(Decoder)与分词技术

在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;解码器&#xff08;Decoder&#xff09;和分词技术是两个至关重要的概念。解码器是序列生成任务的核心组件&#xff0c;而分词则是将文本数据转换为可处理形式的基础步骤。 一、解码器&#xff08;Decoder&…...

LeetCode100之在排序数组中查找元素的第一个和最后一个位置(34)--Java

1.问题描述 给你一个按照非递减顺序排列的整数数组 nums&#xff0c;和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target&#xff0c;返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题 示例1 输入…...

数字人+展厅应用方案:开启全新沉浸式游览体验

随着人们生活质量的不断提升&#xff0c;对于美好体验的追求日益增长。在展厅展馆领域&#xff0c;传统的展示方式已难以满足大众日益多样化的需求。而通过将数字人与展厅进行深度结合&#xff0c;可以打造数字化、智能化新型展厅&#xff0c;不仅能提升展示效果&#xff0c;还…...

echo ‘export PATH=/usr/local/bin:$PATH‘ >> ~/.bashrc这个和直接添加到/etc/profile有什么区别

echo export PATH/usr/local/bin:$PATH >> ~/.bashrc 和直接添加到 /etc/profile 都是用于修改 PATH 环境变量&#xff0c;但它们适用的范围和效果有所不同&#xff1a; 1. 修改 ~/.bashrc 文件 作用范围&#xff1a;~/.bashrc 是针对当前用户的配置文件&#xff0c;它…...

kafka消费者详细介绍(超级详细)

文章目录 一、Kafka 消费者与消费者组1.1 Kafka 消费者&#xff08;Consumer&#xff09;概述1.1.1 消费者工作流程1.1.2 消费者的关键配置 1.2 Kafka 消费者组&#xff08;Consumer Group&#xff09;概述1.2.1 消费者组的工作原理1.2.2 消费者组的优点1.2.3 消费者组的再均衡…...

《剪映5.9官方安装包》免费自动生成字幕

&#xff08;避免失效建议存自己网盘后下载&#xff09;剪映5.9官方Win.Mac 链接&#xff1a;https://pan.xunlei.com/s/VOHc-Fg2XRlD50MueEaOOeW1A1?pwdawtt# 官方唯一的免费版&#xff0c;Win和Mac都有&#xff0c;此版本官方已下架&#xff0c;觉得有用可转存收藏&#xf…...

CAS是什么?ABA会带来什么影响?怎么解决ABA问题?

前言 在高并发开发中&#xff0c;CAS&#xff08;比较并交换&#xff09;是一种常用的无锁操作&#xff0c;因其高效性而被广泛应用。然而&#xff0c;实际工作中常会遇到ABA问题&#xff0c;导致数据更新异常或逻辑错误。理解CAS的原理及ABA问题的解决方法&#xff0c;有助于…...

智能调度体系与自动驾驶技术优化运输配送效率的研究——兼论开源AI智能名片2+1链动模式S2B2C商城小程序的应用潜力

摘要&#xff1a;随着全球化和数字化进程的加速&#xff0c;消费者需求日益呈现出碎片化和个性化的趋势&#xff0c;这对物流运输行业提出了前所未有的挑战。传统的物流调度体系与调度方式已难以满足当前复杂多变的物流需求&#xff0c;因此&#xff0c;物流企业必须积极引入大…...

方豆子(递归)

方豆子 思路&#xff1a;很典的一道递归题&#xff0c;但当时没想到怎么递归/(ㄒoㄒ)/~~。赛后看了大佬的讲解知道要将这个图形看成由四个小正方形组成的大正方形&#xff0c;递归参数可以设置成&#xff08;r1,c1,r2,c2,good)表示正方形的左上角坐标和右下角坐标以及当前这个正…...

Go语言入门指南(二): 数据类型

文章创作不易&#xff0c;麻烦大家点赞关注转发一键三连。 在上一篇文章&#xff0c;我们已经完成了开发环境的搭建&#xff0c;成功创建了第一个“Hello, World”程序&#xff0c;并且对变量的声明和初始化有了初步的认识。在这篇文章中&#xff0c;我们将主要介绍Go语言的数据…...

Django ORM解决Oracle表多主键的问题

现状 以Django 3.2为例 Django ORM 设计为默认使用单一主键&#xff08;通常是自增的 id 字段&#xff09;&#xff0c;这一选择主要基于以下核心原因&#xff1a; 简化ORM设计与操作 统一访问方式外键关联简化 避免歧义冲突 主键语义明确防止隐式依赖 性能与数据库兼容 索引…...

学习数据结构(2)空间复杂度+顺序表

1.空间复杂度 &#xff08;1&#xff09;概念 空间复杂度也是一个数学表达式&#xff0c;表示一个算法在运行过程中根据算法的需要额外临时开辟的空间。 空间复杂度不是指程序占用了多少bytes的空间&#xff0c;因为常规情况每个对象大小差异不会很大&#xff0c;所以空间复杂…...

实验一---典型环节及其阶跃响应---自动控制原理实验课

一 实验目的 1.掌握典型环节阶跃响应分析的基本原理和一般方法。 2. 掌握MATLAB编程分析阶跃响应方法。 二 实验仪器 1. 计算机 2. MATLAB软件 三 实验内容及步骤 利用MATLAB中Simulink模块构建下述典型一阶系统的模拟电路并测量其在阶跃响应。 1.比例环节的模拟电路 提…...

从零推导线性回归:最小二乘法与梯度下降的数学原理

​ 欢迎来到我的主页&#xff1a;【Echo-Nie】 本篇文章收录于专栏【机器学习】 本文所有内容相关代码都可在以下仓库中找到&#xff1a; Github-MachineLearning 1 线性回归 1.1 什么是线性回归 线性回归是一种用来预测和分析数据之间关系的工具。它的核心思想是找到一条直…...

OpenSIPS-从安装部署开始认识一个组件

前期讲到了Kamailio&#xff0c;它是一个不错的开源SIP&#xff08;Session Initiation Protocol&#xff09;服务器&#xff0c;主要用于构建高效的VoIP&#xff08;Voice over IP&#xff09;平台以及即时通讯服务。但是在同根同源&#xff08;OpenSER&#xff09;的分支上&a…...

数据结构(树)

每一个节点包含&#xff1a;父节点地址 值 左子节点地址 右子节点地址 如果一个节点不含有&#xff1a;父节点地址或左子节点地址 右子节点地址就记为null 二叉树 度&#xff1a;每一个节点的子节点数量 二叉树中&#xff0c;任意节点的度<2 树的结构&#xff1a; 二叉查…...

[Dialog屏幕开发] 设置搜索帮助

阅读该篇文章之前&#xff0c;可先阅读下述资料 [Dialog屏幕开发] 屏幕绘制(使用向导创建Tabstrip Control标签条控件)https://blog.csdn.net/Hudas/article/details/145372195?spm1001.2014.3001.5501https://blog.csdn.net/Hudas/article/details/145372195?spm1001.2014.…...

C语言从入门到进阶

视频&#xff1a;https://www.bilibili.com/video/BV1Vm4y1r7jY?spm_id_from333.788.player.switch&vd_sourcec988f28ad9af37435316731758625407&p23 //枚举常量 enum Sex{MALE,FEMALE,SECRET };printf("%d\n", MALE);//0 printf("%d\n", FEMALE…...

Node.js下载安装及环境配置教程 (详细版)

Node.js&#xff1a;是一个基于 Chrome V8 引擎的 JavaScript 运行时&#xff0c;用于构建可扩展的网络应用程序。Node.js 使用事件驱动、非阻塞 I/O 模型&#xff0c;使其非常适合构建实时应用程序。 Node.js 提供了一种轻量、高效、可扩展的方式来构建网络应用程序&#xff0…...

Mac Electron 应用签名(signature)和公证(notarization)

在MacOS 10.14.5之后&#xff0c;如果应用没有在苹果官方平台进行公证notarization(我们可以理解为安装包需要审核&#xff0c;来判断是否存在病毒)&#xff0c;那么就不能被安装。当然现在很多人的解决方案都是使用sudo spctl --master-disable&#xff0c;取消验证模式&#…...

redis安装 windows版本

下载 github下载5.x版本redis 安装以及启动 解压文件&#xff0c;目标如下 进入cmd至安装路径 执行如下命令启动redis redis-server.exe redis.windows.conf 进入redis,另外启动cmd在当前目录执行进入redis 服务 redis-cli 测试命令 至此安装成功&#xff0c;但是这只是…...

关联传播和 Python 和 Scikit-learn 实现

文章目录 一、说明二、什么是 Affinity Propagation。2.1 先说Affinity 传播的工作原理2.2 更多细节2.3 传播两种类型的消息2.4 计算责任和可用性的分数2.4.1 责任2.4.2 可用性分解2.4.3 更新分数&#xff1a;集群是如何形成的2.4.4 估计集群本身的数量。 三、亲和力传播的一些…...

若依基本使用及改造记录

若依框架想必大家都了解得不少&#xff0c;不可否认这是一款及其简便易用的框架。 在某种情况下&#xff08;比如私活&#xff09;使用起来可谓是快得一匹。 在这里小兵结合自身实际使用情况&#xff0c;记录一下我对若依框架的使用和改造情况。 一、源码下载 前往码云进行…...

c语言网 1127 尼科彻斯定理

原题 题目描述 验证尼科彻斯定理&#xff0c;即&#xff1a;任何一个整数m的立方都可以写成m个连续奇数之和。 输入格式 任一正整数 输出格式 该数的立方分解为一串连续奇数的和 样例输入 13 样例输出 13*13*132197157159161163165167169171173175177179181 ​ #include<ios…...

能说说MyBatis的工作原理吗?

大家好&#xff0c;我是锋哥。今天分享关于【Redis为什么这么快?】面试题。希望对大家有帮助&#xff1b; 能说说MyBatis的工作原理吗&#xff1f; MyBatis 是一款流行的持久层框架&#xff0c;它通过简化数据库操作&#xff0c;帮助开发者更高效地与数据库进行交互。MyBatis…...