每天10分钟,带你一周精通Python:第9章数学和BODMAS计算法则

Pandas入门教程(二十二):股票数据分析实战——yfinance 获取数据、技术指标与收益率分析 把 Pandas 用在真实场景,才能体会它的价值。本文以茅台股票为例,用 yfinance 获取历史行情,完成缺失值处理与列筛选,绘制收盘价曲线,计算 SMA 移动平均线与 RSI 相对强弱指数,并通过日收益率、累计收益率和波动率完成完整的量化分析流程。 阅读详情

每天10分钟,带你一周精通Python:第9章数学和BODMAS计算法则

恭喜啊!你现在已经学习到了足够的Python基础知识(和常用的编程知识),可以开始编写我们第一个完整的程序了。在本章中,我们将会编写一个程序来测试我们对算数计算中的BODMAS计算法则(BODMAS是Bracbets of Division,Multiplication, Addition and Subtraction的缩写,即先算程序后算加减,先算括号里的, 再算括号外面的计算法则)的理解。如果你不知道 BODMAS计算法则是什么, 你可以去这个网站上了解一下http://www.mathsisfun. com/operation-order-bodmas.html。

我们的程序将会随机给我们设置一个算数题要我们回答。如果我们输入了错误的答案,程序将会显示正确的答案,并问我们是否还想要尝试回答一个的问题。如果我们答对了,程序将会恭喜我们,并问我们是否还想要回答一个新问题。另外,程序将会一直记录我们的得分,并把得分保存在外部的一个文本文件中。在每个问题后面,我们可以按“-1”键来终止程序。

我已经把这个程序分成了几个小的练习题,你可以尝试自己编写程序。在参考答案之前,你先尝试做这些练习题。答案在附录E中,Python语法的学习虽然简单,但很枯燥。解决问题的过程才是乐趣所在。如果在做这些练习题时遇到了困难,多多努力即可。这样得到的回报才是最大的。

准备好了吗?那我们就开始吧!

第一部分:myPythonFunction.py

下面将为我们的程序编写两个文件。第一个文件是myPythonFunction.py,第二个文件是mathGame.py。第一部分主要编写myPythonFunction.py的代码。

开始前,我们先创建文件myPythonFunction.py。我们在这个文件中将会定义 三个函数。

练习题1:引入模块

我们需要在myPythonFunction.py中引入两个模块:random模块和os模块。

我们将使用random模块中的randint()函数。randint()函数会在我们提供的范围内生成一个随机的整数。我们将使用它为后面的问题生成数字。

从os模块中,我们将会使用remove()和rename ()函数。

尝试引入这两个模块。

练习题2:获取用户的得分

下面我们将要定义我们的第一个函数。我们把它叫作getUserScore()。这个函数接收一个参数,userName。接下来它会以r模式打开文件“userScores.txt”。

userScores.txt看起来和下面的文字类似。

Ann, 100
Benny, 102
Carol,214
Darren, 129

其中每行记录了一个用户的信息。第一个值是该用户的用户名,第二个是用户的得分。

接下来,函数使用for循环一行一行地读取文件。接着每一行都会使用split()函数来分割(参考附录A中的使用split()函数的例子)。

下面,函数会把用户名作为参数传入函数,并检查每行中是否有相同的用户名。如果存在相同的用户名,函数会关闭文件,并返回用户名对应的得分。如果不存在,函数会关闭文件,并返回字符串“-1”。

到目前为止都清楚了吗?尝试开始编写这个函数的代码吧。

完成了吗?

现在需要对我们的代码做些修改。我们在前面打开文件时,使用的是r模式。这么做可以防止任何对文件的偶然写入。然而,当以r模式打开文件时,如果文件不存在,会出现一个IOError错误。因此当我们第一次运行程序时,我们会遇到一个错误,因为文件userScores.txt这个时候还不存在。为了防止这个错误出现,我们可以从下面的两种方法中任选其一。

除了以r模式打开文件,我们可以以w模式打开文件。当以w模式打开时,如果文件预先不存在的话,这个文件会先被创建。这个方法的危险之处在于我们可能会偶尔写入文件,这会导致原有的所有内容被删除。然而,因为我们的用序是个小程序,我们可以仔细检查程序,防止任何偶然写入的发生。

第二种方法是使用一个try,except语句来处理IOError,为了这么做,我们需理把前面的所有代码都放入到try代码块中,然后使用except IOError来处理File not found错误。在except代码块中,我们将会通知用户没有找到文件,然后创建这不文件。我们将使用w模式的open()函数来创建这个文件。这里的不同之处在手我们仅在文件不存在时使用w模式。因为文件初始并不存在,也就没有删除原有内容的危险。在创建文件后,关闭文件并返回字符串“-1”。

你可以选择上面两种方法之一来完成本次的练习题。提供的答案使用的是 第二种方法。一旦你完成之后,我们就可以接着做练习题3了。

练习题3:更新用户的得分

在本练习题中,我们将定义另一个叫作updateUserPoints()的函数,它接收三个参数:uewUser,userName和score。

newUser要么是True,要么是False。如果newUser是True,函数会以添加的模式打开文件userScores.txt,当用户从游戏中退出时,会向文件中添加用户的userName和score。

如果newUser是False,函数将会在文件中更新用户的得分。然而,在Python(或者相关问题的大多数编程语言)中并没有函数让我们更新文本文件。我们仅可以往文件中写或者添加,而不能更新它。

因此,我们需要创建一个临时文件。这在编程中是一个很常见的实践方法。让我们把这个临时文件叫作userScores.tmp,并以w模式打开它。现在,我们需要在userScore.txt文件中循环,并把其中的数据逐行复制到userScores.tmp中。然而,在复制之前,我们会检查这一行的userName是否和参数中提供的用户名一致。如果一致,我们再把得分写回到临时文件之前,会把得分替换为新的得分。

比如,如果提供给函数的参数是False、Benny和158,即updateUserPoints(False.‘Benny’,‘158’),下面的表格展示了原始文件userScores.txt和新文件userScores tmp之间的不同。

userScores.txt
Ann, 100
Benny,102
carol,214
Darren, 129

userScores.tmp
Ann,100
Benny,158
Carol,214
Darren, 129

在完成写入userScores.tmp后,我们将会关闭这两个文件,并删除文件userScores.txt。最后,我们将会把userScores.tmp重命名为userScores.txt。

明白了吗?尝试用代码写出来吧。

练习题4:生成问题

现在我们已经进行到程序最重要的部分了,生成数学问题。准备好了吗?

为了生成一个数学问题,首先我们需要生成三个变量:两个列表和一个字典。

我们可以把两个列表命名为operandList和operatorList。

operandList列表应该存储五个数字,并把0作为它们的初始值。operatorList列表应该存储四个字符串,并以’'作为它们的初始值。

字典包含了4对信息,其中整数1到4是该字典的关键字,“+”,“-”,“\ *”,“**”是该字典的数据。让我们把该字典命名为operatorDict。

[练习4.1:使用随机数字更新operandList]

首先我们需要使用randint()函数生成随机数字,并用这些随机数字替换operandList列表的初始值。

randint()函数接收两个参数,start和end,并返回一个随机整数N,N满足 start<=N<=end。

比如,如果调用randint(1,9),它将会从数字1,2,3,4,5,6,7,8,9这些数字中随机返回一个整数。

为了使用随机数字更新我们的operandList列表的值,我们可以一个一个地事新,因为operandList列表仅仅只有五个成员。我们可以这么写。

operandList[0] = randint(1, 9)
operandList[1] = randint(1, 9)
operandList[2] = randint(1, 9)
operandList[3] = randint(1, 9)
operandList[4] = randint(1, 9)

每次调用andint(1,9),它将会从1,2,3,4,5,6,7,8,9这些数字中编机放回一个整数。

然而,这并不是更新operandList列表最优雅的方式。想象一下如果aperandList列表有1000个成员,更新数据将会是多么麻烦。更好的一种方式是使用for循环。

尝试使用一个for循环来完成这个任务。

完成了吗?

[练习题4.2:用数学运算符号更新operantList]

既然已经有了可以操作的数字,我们就需要为我们的问题生成随机的数学运算符号(+,一,*,**)。为了达到这个目的,我们将会使用randint()函数和operatorDict字典。

randint()将会生成字典的关键字,这在随后会使用operatorDict字典来映射到正确的运算符号。比如,为了分配符号给operatorList[0],我们可以这么写。

operatorList[0] = operatorDict[randint(1,4)]

和练习题4.1类似,你应该使用一个for循环来完成这个任务。然而,有一个问题让这个练习题比练习题4.1更难。

回想下在Python中,** 代表着指数,即2 ** 3=2^3?

问题是当我们在Python中有两个连续的指数操作时,比如2 ** 3 ** 2,Python会把它翻译成2 ** (3 ** 2),而不是(2 ** 3) ** 2。在第一种情况下,结果是2的9次方,即2 ^ 9, 是512。在第二种情况下,结果是8的2次方,即8^2,是64。因此当我们遇到像2 ** 3 ** 2这样的问题时,如果它被翻译成(2 ** 3) ** 2时,用户就会得到错误的结果。

为了防止这样的问题发生,我们要修改代码,这样我们就不会得到两个连续的 ** 符号。换句话说,operatorList=[‘+’,‘+’,‘-’,‘**’]是没问题的,但operatorlist=[‘+’,‘-’,’ ** ‘,’ ** ']就不行了。

这个练习题是所有练习题中最难的一个。尝试找到一个解决两个连续**符号的方法。一旦你找到了,我们就可以开始进入练习题4.3了。

提示:如果遇到困难,你可以考虑在for循环里使用一个if语句。

[练习题4.3:生成一个数学表达式]

既然已经有了操作符号和操作数据,我们就可以尝试生成一个字符串类型的数学表达式。这个表达式使用operandList函数的五个数字,以及operatorList中的四个数学符号来生成一个问题。

我们已经声明了另一个叫作questionString的变量,并把数学表达式分配给questionString。questionString的样例包括:

6-2* 3-2** 1
4+5-2* 6+1
8-0* 2+5-8

尝试亲手生成这样的表达式。

提示:

你可以使用一个for循环来连接operandList和operatorList中的单独的子字 符串来得到数学表达式。

[练习题4.4:计算结果]

现在我们应该已经有了一个字符串式的数学表达式,分配给变量questionString。为了计算这个表达式的结果,我们将会使用一个Python中内建的高明的函数,eval()。

eval()会把字符串翻译成代码并执行。比如,如果这么写eval(“1+2+4”),我们将会得到数字7。

因此为了计算我们的数学表达式的值,我们把questionString传递给eval()函数,并把结果分配给一个新的叫作result的变量。

这个练习题非常简单,只需要一步就可以完成了。

[练习题4.5:与用户交互]

最后,我们将会与用户交互。
在本练习题中,我们将会做一些新的事情。

  • 第一步:把问题显示给用户。
  • 第二步:提示用户输入答案。
  • 第三步:计算答案,并显示合适的信息,然后返回用户的得分。

对于第一步,我们需要使用内建的函数来操作字符串。和前面提到的一样,在Python中,** 符号表示指数操作。也就是说,2** 3=8。然而,对于大多数用户来说,** 没有什么意思。因此如果我们显示一个像2** 3+8-5这样的一个问题,用户将有可能困惑。为了防止这个问题的发生,我们将把questionString中的所有** 符号替换为^符号。

为了做这个,我们将使用内建的函数replace()。使用这个函数非常简单直接,仅需要这么写questionString=questionString.replace(“**”,“^”)。现在你就可以给用户打印得到的数学表达式了。

对于第二步,你可以使用input()函数来获取用户的输入。

对于第三步,你应该使用一个if语句来计算答案,并显示正确的信息。如果用户的答案是正确的,我们将恭喜用户并返回值1。如果用户的答案是错的,我们将显示正确的答案,并返回值0。

回想一下input()函数返回的用户输入是一个字符串。因此,当你比较用户的输入和正确的答案(在练习题4.4中得到的)时,你需要做一些类型转换,把用户输入的值转换为一个整数。当转换用户输入为整数时,你应该使用一个try,except语句来检查用户输入的是否为一个数字。如果用户输入的是一个字符串,程序应该可以通知用户这个错误,并提示用户输入一个数字。

你可以使用一个while True循环,只要用户输入的不是数字,就一直提示用户输入一个数字。while True的语句和写的类似while1==1是一样的。因为1总是等于1(因此总是True),循环将会一直运行。

下面是为本练习题如何使用一个whileTrue循环的建议。

while True:
    try:
        把用户的答案转换为一个整数,并比较这个结果
       根据结果返回用户的得分
    except:
        如果转换失败,打印出错误信息
       提示用户再次输入答案

while True循环将会一直循环,因为while条件总是True。循环在try代码块执行正确的情况下才会退出,并到达return语句。

尝试这个练习题。一旦完成后,你就可以进入第二部分,我们会在第二部分编写一个真正的程序。

第二部分:mathGame.py

恭喜完成了第一部分,欢迎进入第二部分。第二部分将会轻而易举,因为我们仅仅需要调用我们在前面定义的函数。

练习题5:编写主程序

首先,我们将在一个try,except语句中完成主程序。我们想要在运行主程序时,处理任何无法预见的错误。

我们开始为try代码块编写代码。

首先,我们需要引入myPythonFunctions模块。接下来,我们要提示用户输入他/她的用户名,并把这个值分配给变量userName。把这个变量作为一个参数传递给getUserScore()中。

getUserScore()要么返回用户的得分,要么返回“-1”(如果用户不存在的话)。让我们把这个值转换为一个整数,并把它分配给变量userScore。

现在,我们需要设置另一个变量newUser的值。如果用户没有找到,newUser=True,否则newUser=False。如果newUser=True,我们需要把userScore的值从-1改为0。

我们的程序的下一部分包含了一个while循环。具体来说,我们的程序将会提示用户输入,并确定他是否应该终止程序,还是做些别的事情。

  • 步骤一:

你需要声明另一个变量userChoice,并给它赋初始值0。

  • 步骤二:

接下来,使用一个while循环,比较userChoice和你选择的一个字符串,如“-1”。如果userChoice和“-1”不一样,调用函数generateQuestion()来生成一个新的问题。

  • 步骤三:

generateQuestion()将会返回用户从这个问题的得分情况。使用这个结果来更新变量userScore。

  • 步骤四:

最后,为了防止出现死循环,我们需要在while循环里再次使用input()函数,来接收用户的输入,并使用它来更新userChoice的值。

明白了吗?尝试编写代码吧。真正的编码将会让一切情况更加清楚。

最后,在while循环终止后,下一步是更新userScores.txt文件。为了这么做,我们仅需要调用函数updateUserPoints()。

就这样就可以了!一旦我们完成这一步,你将会有一个完整的程序,你写的Python的第一个程序。尝试运行程序mathGame.py。它按预期工作了吗?激动吗?我真心希望你能和我一样激动。

挑战自我

我们已经来到了本章的结尾,真心希望你已经成功编写完成了你的第一个程序。如果你完成任何练习题有问题,你可以研究下附录E中的答案。通过研究别人的代码,你会从中学到很多。

在这一部分,我有三个额外的练习题,让你挑战自己。

挑战练习题1

在我们目前已经编写的程序中,我一直避免使用除号。你可以修改一下程序,让它也可以生成一个带除号的问题吗?你该如何检查用户的答案和正确答 案呢?

提示:

查明round()函数。

挑战练习题2

有时,生成的问题可能会得到一个非常大或者非常小的答案。比如,问题6*(8^ 9/1)^ 3将会得到答案1450710985375550096474112。

对于用户来说计算并输入这么大的数字不太方便。因此,我们需要避免太大或者太小的答案。你通过修改程序,能阻止问题生成大于50000或者小于-50000答案的问题吗?

挑战练习题3

最后一个挑战练习题是最难的。

到目前为止,在生成的问题中是没有括号的。你可以修改程序,让生成的问题也可以使用括号吗?一个这样问题的例子是2+(3*7-1)+5。

祝你在这些练习题中玩得愉快。建议的方法提供在附录E中。
在这里插入图片描述

如何处理动态语言(Python / JS)的“隐形”调用链? 本文揭示动态语言(Python/JS)中静态AST解析导致调用链“断链”的核心问题,提出通过运行时追踪补全图谱的解决方案。基于Code-Graph-RAG的cgr trace机制,分别利用pytest插件与V8 Profiler捕获真实调用路径,将动态边合并至静态图谱,并在权重体系中提升动态边优先级。实践表明,该方法可显著提升图谱覆盖率,实现“结构+行为”双视角理解代码,为MCP与Rerank系统提供可靠支持。 阅读详情

相关推荐

Playwright: Pytest vs Library vs LibraryAsync:三者如何选?

Python中Playwright的3个Target:Pytest(推荐用于E2E自动化测试,支持报告、并行、重试)、Library(同步脚本,适合爬虫与简单任务,需手动管理浏览器)、LibraryAsync(异步脚本,适用于高并发批量操作)。选择依据:测试项目选Pytest,轻量脚本选Library,高并发场景选LibraryAsync。

SmallBull的博客 207

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 421

自动驾驶系统架构解析:从传感器到决策控制的完整链路(附实际案例)

本文深入解析了自动驾驶系统从感知、决策到控制的完整架构链路。通过对比摄像头、毫米波雷达、激光雷达等核心传感器的特性与选型策略,阐述了多传感器融合的必要性。文章结合行为决策、运动规划及控制执行的实际案例,揭示了系统集成、数据闭环与功能安全等工程化落地的关键挑战,为理解自动驾驶技术提供了清晰的蓝图。

weixin_29051811的博客 339

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 237

SAP高级外币评估_FINS_FXV_S4 2022 OP

摘要:S/4HANA 2022 On-Premise中的高级外币评估(FINS_FXV)取代了经典外币估值(FAGL_FCV),提供更优化的财务结算功能。主要创新包括:增量发布逻辑、简化账户配置、行项目级估值可见性等。该功能支持IFRS9等会计准则,通过会计原则(Accounting Principle)进行配置,需完成财务报表版本定义、语义标记分配等必要设置。系统演示展示了从汇率维护(FB60/MIRO)、测试运行到最终过账(FB03)的完整流程,能自动计算并过账汇率差异。高级外币评估简化了期末结算操作,

yanzibing99的博客 1260

用FPGA在HDMI上显示自定义字符:从COE文件到OSD叠加的保姆级教程

本文详细介绍了如何在FPGA上实现HDMI视频流的OSD字符叠加技术,从COE文件生成到动态区域控制的完整流程。通过Verilog代码示例和实战技巧,帮助开发者掌握字符ROM设计、像素坐标追踪和动态混合等核心技术,适用于视频监控、系统状态显示等应用场景。

weixin_28720767的博客 231

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 427

【雷达仿真 | FMCW TDMA-MIMO毫米波雷达信号处理仿真(可修改为DDMA-MIMO)】

1、FMCW叫做调频连续波,调频连续波有步进调频连续波(SFMCW)、线性调频连续波(LFMCW),以及其他非线性调频连续波。LFMCW有锯齿波和三角波等等;锯齿波有恒定调制周期的锯齿波和非恒定周期的锯齿波。Introduction to mmwave sensing:FMCW radars.pdf和The fundamentals of millimeter wave sensors。2、MIMO是多输入多输出(Multiple input Multiple output),也就是多发多收。

【调皮连续波】雷达技术领域知识博主 1万+

10分钟完成第一个Python小游戏

第一个项目不用找复杂的,‌直接选「猜数字小游戏」对应的教程‌就好——几乎所有入门教程都会讲这个项目,资料最多、遇到问题随便搜就能找到解决方法,不会卡壳,30分钟肯定能做完,非常容易建立信心。‌教程链接‌:直接搜标题👉 ‌《Python零基础入门项目:30分钟写完猜数字游戏》‌(优先选黑马程序员、鱼C-小甲鱼这两个UP主的版本,播放量都是百万级,口碑稳定)‌教程地址‌:打开菜鸟教程官网→找到「Python 实例」板块,直接在线写代码运行。全程不跳步,30分钟就能做完,做完能直接运行玩,成就感拉满。

mF44Job8l的博客 60

CRC校验查表法详解

CRC校验的查表法理解算法原理基础计算查表法原理及计算查表法中的表CRC校验中数据逆序CRC校验中的其它参数 算法原理 CRC(Cyclic Redundance Check)循环冗余校验,是基于某个多项式计算出一组校验码,用于核对数据传输过程中是否被更改或传输错误 基础计算 假设需要检验的数据 g :10100111,这串二进制码可以表示为代数多项式g(x) = x^7 + x^5 + x^2 + x +1, 而作为除数的多项式 h(x) 可以自由选择或者按照国际标准选择,一般h(x)的阶数如果是m

boom的博客 1万+

127. 答网友疑问:ABAP Function Module 如何支持内表结构不确定的动态输入参数

ABAP RTTI 的全称是 Runtime Type Identification. 使用 RTTI,ABAP 开发人员可以在运行时获取关于数据对象的各种信息,包括其数据类型、字段列表(如果数据是Structure 或者内表的话)以及这些字段的技术属性,比如字段名称,字段数据类型,长度等等。对于这些字段信息,ABAP 提供了一组特殊的类和接口,包括 CL_ABAP_TYPEDESCR、CL_ABAP_STRUCTDESCR、CL_ABAP_TABLEDESCR 等等。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1763

二进制木马免杀-Python 分离免杀与 Web 挂马

二进制木马免杀-Python 分离免杀与 Web 挂马

2503_94637398的博客 269

YOLOv10有效涨点专栏目录 | 包含卷积、主干、检测头、注意力机制、Neck、二次创新、独家创新等上百种创新机制

Hello,各位读者们好本专栏自开设以来已经更新改进教程100余篇其中包含二次创新、独家创新多种改进方法,包含C2f、主干、检测头、注意力机制、Neck多种结构,也有损失函数和一些细节点上的创新。同时本人一些讲解视频和包含我所有创新的YOLOv10文档并不能在优快云上传,通过建立交流群的形式在内上传我完整的文件和视频我也会在群内不定期和大家交流回答大家问题。专栏介绍。

Snu77的博客 1万+

蓝桥杯·全国青少年信息素养大赛·电子学会Python/C++考级 备考:莫队算法离线区间查询详解

备赛进行时:第十八届蓝桥杯软件赛报名已于 2026-10-08 10:00 开启、12-18 14:00 截止,省赛定在 2027-04-10(C/C++·Python 程序设计 9:00–13:00);中国电子学会 2026 年 12 月软件编程(C/C++ 一级至十级、Python 一级至六级)考级报名 9/23–12/2 16:00、统考 12-12;全国青少年信息素养大赛 2026—2027 赛季算法应用主题赛也已进入复盘练兵窗口。

IT_Scratch的博客 160

天气预测模型:基于时间序列分析的数学建模与实战案例

目录引言时间序列分析介绍使用Matlab进行天气预测实战案例:天气预测结论天气预测一直是气象学和相关领域的重要研究问题之一。数学建模是进行天气预测的有效方法之一,其中时间序列分析是常用的技术。在本篇博客中,我们将介绍时间序列分析的基本原理,演示如何使用Matlab进行模型建立和预测,并通过一个实战案例来展示模型的应用和分析。时间序列分析是一种用于分析和预测时间序列数据的统计方法。天气数据通常具有时间依赖性和随机性,因此时间序列分析可以帮助我们了解天气的变化趋势和规律,并提供对未来天气的预测。时间序列分析通常

YOLO 1546

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

我用 200 行代码写了个“代码屎山检测器“,扫完公司的老项目后我沉默了

这个工具不能帮你把屎山铲平,但至少能让你知道自己面对的是多大的山,也能在代码评审时用数据说话——“这个 PR 把圈复杂度从 12 推到了 18,能不能拆一下?毕竟,不能量化的东西,就没法改进。

xixiaoyunya的博客 251

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

魔塔社区微调训练Qwen2-1.5B-Instruct模型并烧录到‌RK3568开发板教程

本文基于Ubuntu 22.04 + CUDA 13.0.3环境,使用LLaMA-Factory框架对Qwen2-1.5B-Instruct模型进行LoRA微调,训练儿童故事生成专用模型。通过配置qwen模板、制作alpaca格式数据集、执行sft训练并合并LoRA权重,最终将模型转换为GGUF格式,并量化为Q4_K_M以适配RK3568嵌入式平台。全程支持国产镜像加速下载与显存优化,实现高效轻量化部署。

浅清秋慕夏的博客 187

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

【回眸】DeepSeek V4.1 Flash 快速上手与实战

本文介绍如何高效本地部署开源大模型,通过现代化工具链实现分钟级环境搭建。聚焦显存优化、一键安装、代码调用与多轮对话实现,解决“显存不足”“连接超时”等痛点,提供参数调优与结构化输出技巧,助力开发者在离线场景下快速构建稳定、高效的本地推理系统。

啤酒鸭的物联网开发记录博客 227

智叟云集-手机证据抓取系统的工程结构与应用入口

本文系统阐述手机证据抓取系统的工程结构与应用入口,涵盖四大层面:工程目录划分(Android、Python服务、Web页面、测试与构建工具);Android组件通过Manifest声明可启动页面,主界面由MainActivity管理;Python服务通过run.py解析参数并启动FastAPI应用,支持远程访问;浏览器页面采用HTML/CSS/JS分离架构,静态资源通过路径关联,实现动态交互。各模块分工明确,协同构建可运行的采集系统。

2301_77178996的博客 236

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 487

利用python中matplotlib.pyplot库绘制图

plt.plot(x,y) # x,y是每个点的坐标,plot()把每个点按顺序画折线。plt.subplots(2,2)表示绘制2*2的子图布局,axs[0,0]表示在第0行第0列绘制子图...coordinates_i[:,0]表示获取每一行(每一个spot)的第0列(x坐标)coordinates_i[:,1]表示获取每一行(每一个spot)的第0列(y坐标)plot.subplot(2,2,1) 表示子图布局是2*2的,开始绘制第一个。也可以导入数据绘制。可以设置color属性,设置颜色。

qq_46147236的博客 102

Spring Boot 自动配置原理

Spring Boot 自动配置由 @EnableAutoConfiguration 导入选择器,读取 jar 中 .imports 候选清单,经去重、排序、排除后逐类做条件判断,通过才注册 Bean。延迟导入让用户 Bean 优先,@ConditionalOnMissingBean 使默认配置让位。失效时查清单和 Negative matches。

2401_89855466的博客 392

【随笔】KV缓存量化:省下的显存,要付出多少数值误差

用可运行量化器解释位宽、比例信息、分组和离群值的关系,核算KV缓存实际载荷,并给出Transformers配置与容量、延迟、质量验收方法。

code2cat的博客 467

【每天一个 Python 小案例29】Python 实现商品购物车

本篇实现一个购物车:商品目录、加入商品、修改数量、移除商品、查看小计、计算满减与 VIP 折扣、结算扣库存。核心设计是"目录与购物车分离"——目录存商品主数据,购物车只存 {商品编号: 数量};金额一律用 Decimal 并做 ROUND_HALF_UP 舍入。折扣部分讲清阶梯满减的匹配顺序(阈值从高到低、命中即停)与叠加顺序(先满减、后打折),并用一次完整结算演示 706 元如何变成 613.70 元。

xinjiyaya的博客 215

Python的字典

Python字典是存储键值对的数据结构,通过键(key)快速查找对应的值(value)。可使用{}定义,支持增删改查操作:通过dict[key]查询或修改值,get()方法安全获取并设置默认值,del dict[key]删除键值对,keys()、values()和items()用于遍历。items()结合双变量循环可高效遍历所有键值对,提升代码可读性与灵活性。

qq_43010954的博客 198

【AI 开发从入门到进阶 · 09】RAG 实战:用 Embedding + FAISS 从零搭建本地知识库问答(含切分、重排与幻觉控制)

本文系统讲解RAG(检索增强生成)的实现与优化,从为何选择RAG而非提示工程或微调出发,完整演示一条可运行的中文RAG链路:文档加载、递归切分、向量化、FAISS索引构建、混合检索与Prompt生成。重点剖析五大关键环节——切分策略、Embedding选型、混合检索、重排(Rerank)及幻觉控制,并强调分模块评估的重要性。附常见问题排查与生产实践建议,为构建高效、可信的企业知识问答系统提供完整指南。

信息安全领域优质创作者|操作系统领域专家 67
上一篇: 每天10分钟,带你一周精通Python:第8章处理文件
下一篇: 每天10分钟,带你一周精通Python:附录A处理字符串
andyyah晓波
博客等级 码龄7年 3368粉丝 454原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值