《python数据分析及其在水利工程中的应用》课件(上)_第1页
《python数据分析及其在水利工程中的应用》课件(上)_第2页
《python数据分析及其在水利工程中的应用》课件(上)_第3页
《python数据分析及其在水利工程中的应用》课件(上)_第4页
《python数据分析及其在水利工程中的应用》课件(上)_第5页
已阅读5页,还剩167页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

初识神力之源⽔利领域的数据⼒量Thepowerofdatainthefieldofwaterconservancy长老的召唤:开启治水征程TheElder'sCall:EmbarkonthejourneyofFloodcontrol“洪水滔天,数据泛滥,此世之忧也。”智⽔⻓⽼的开篇—智水长老“此行旨在运用Python之力,“汝需完成一系列任务,方能功成。”分析水情,平息

‘数据洪流’

。”阶段性目标——PHASEDGOALS—EMBARKONTHEJOURNEY下一课程任务:认识Python语言待解锁当前课程任务:水利领域的数据力量进行中>>>任务:利其器-搭建开发营地与初试锋芒后续课程待解锁完成本任务,成为【筑基⼯匠】!开启征程01第一节数据分析的重要性

:从信息到洞察TheImportanceofDataAnalysis:FromInformationtoInsights数据之⼒

:从泛滥信息到科学决策ThePowerofData:FromOverwhelmingInformationtoScientificDecision-making信息泛滥,价值何寻?当今时代,信息如潮⽔般汹涌,数据⽆处不在。洞察⼒

:现代决策之基⽯唯有通过分析,⽅能滤沙存⾦

。然⽽

,原始数据本身如同未经治理的河⽔

,并不能直接带来福祉。将隐藏其后的信息转化为有⽤的知识与洞察,从⽽指导⾏动,驱动变⾰。数据之⼒

:从泛滥信息到科学决策ThePowerofData:FromOverwhelmingInformationtoScientificDecision-making数据分析能帮助我们

做什么?1更好地了解现状2敏锐地发现问题3科学地评估方案4预测未来趋势⽔利实践

:数据驱动决策Waterconservancypractice:Data-drivendecision-making以⽔利⼯程为例,数据分析的⼒量显⽽易⻅:⽔库调度分析历史⽔位、流量等数据,⼯程师能制定出更科学、更⾼效的⽔库调度⽅案,平衡防洪与供⽔需求。水库调度方案历史水位、流量等相关数据02第二节数据分析:复杂问题的破解之道DataAnalysis:ThesolutiontoComplexProblems破解迷局:

数据分析的洞察与诊断

SolvingthePuzzle:InsightsandDiagnosesfromDataAnalysis纷繁之中觅真知面对复杂问题,数据分析是我们的罗盘和透镜。数据分析能帮助我们

做什么?1识别模式(Patterns)2发现关联(Correlations)3追踪趋势(Trends)4定位异常(Anomalies)破解迷局:

数据分析的洞察与诊断SolvingthePuzzle:InsightsandDiagnosesfromDataAnalysis破解迷局:

数据分析的洞察与诊断

SolvingthePuzzle:InsightsandDiagnosesfromDataAnalysis探本溯源,对症下药借助数据可视化、统计分析等⽅法,我们能更深⼊地理解问题的本质。不再是凭经验猜测,⽽是有据可依地找到问题的根源。如同医⽣诊脉,找准病灶,⽅能开出有效的"药⽅"。03第三节数据分析:提升效益与优化管理Dataanalysis:Enhancingefficiencyandoptimizingmanagement智慧管理

:效益提升与资源优化IntelligentManagement:EfficiencyEnhancementandResourceOptimization优化配置,

降本增效深⼊的数据分析是提升整体效益的关键。通过对各项资源的投⼊产出进⾏分析,我们可以更合理地优化资源配置。避免浪费,提⾼运营效率,最终达到降低成本、提升效益的⽬标。04第四节数据分析:创新驱动与智慧未来DataAnalysis:Innovation-drivenandIntelligentFuture数据驱动创新引擎Data-driveninnovationengine创新的原动⼒

:从数据中发现未知数据探索发现假设验证测试创新成果应⽤通过对现有数据的深⼊挖掘,我们可能发现未曾预料的关联和规律。这些新发现将成为技术突破与模式创新的起点。展望智慧⽔利新篇章Lookingforwardtoanewchapterofsmartwaterconservancy“智慧水利”是水利行业发展的重要方向,而“数据分析”正是其核心驱动力。开发出更智能的水情预警系统提前预测洪水、干旱等灾难。构建更精准的智能灌溉系统根据作物需求和天气情况自动调节水量。设计更便捷的在线水费缴纳、用水查询、节水建议等服务。课程总结CourseSummary下一课:认识神兵——Python语言当前任务任务:水利领域的数据力量已完成试炼!初识神兵Python认识Python语⾔UnderstandthePythonlanguage智⽔⻓⽼的指引TheguidanceofElderZhiShui“爱徒,今⽇

,汝之任务便是认识这把神兵,

了解其锋芒所在,特性为何。”本次任务—智水长老升级任务进度TheprogressoftheUpgradetask当前任务任务:

认识Python语言进行中>>>已完成任务任务:水利领域的数据力量已完成任务:利其器-搭建开发营地与初试锋芒后续任务待解锁完成本任务,成为【辨源⼠】!01第一节何为程序设计语⾔?Whatisaprogramminglanguage?与机器沟通的桥梁Abridgeforcommunicatingwithmachines程序设计语⾔是⼈类⽤于编写计算机程序的⼈造语⾔它包含—套指令和语法规则⽤于精确地告诉计算机执⾏特定任务。我们使⽤⾃然语⾔(如中⽂)与⼈交流程序员则使⽤程序设计语⾔与计算机沟通⽆处不在的程序⼒量Theubiquitouspowerofprograms程序设计语⾔能完成各式各样的任务!开发⽹站和⼿机应⽤进⾏数据分析和科学计算控制硬件设备⼈⼯智能和机器学习算法02第二节Python语⾔:

简洁⽽强⼤的神兵Pythonlanguage:AconciseyetpowerfulweaponPython语⾔简介IntroductiontothePythonLanguage由

荷兰工程师GuidovanRossum于1989年创造以简洁、

易读的语法和强⼤的功能著称。Python是⼀种⼴泛使⽤的⾼级程序设计语⾔Python的核⼼特性简洁优雅的语法动态类型系统丰富的标准库强⼤的社区⽀持如同治⽔需得⼼应⼿的⼯具,Python因其特性成为初学者和专业开发者的⾸选语⾔之—。Python简洁、

强⼤

、

易学的编程语⾔Python的核⼼优势ThecoreadvantageofPython简单易学0102可读性强03功能丰富04跨平台性05应用广泛Python之所以为‘神兵’,主要得益于它的几大核心优势:03第三节Python:

动态之语与时代之选Python:TheLanguageofDynamicsandtheChoiceofTheTimesPython的动态特性ThedynamiccharacteristicsofPythonPython是⼀种动态语⾔,

其核⼼在于灵活性动态类型(DynamicTyping)⽆需事先声明变量类型。运⾏时类型检查(RuntimeTypeChecking)在程序运⾏时才检查类型是否匹配,与静态语⾔(如Java/C++)在编译时检查不同。灵活性(Flexibility)可以轻松改变变量类型,或在运⾏时为对象添加新属性,如同治⽔⽅案,可随时调整。Python在运⾏时⾃动判断,如同⽔流,形态随容器⽽变。AI与数据时代的PythonPythonintheEraofAIandData丰富的AI和数据科学库如TensorFlow,PyTorch,scikit-learn,Pandas,NumPy等,提供了强⼤的⽀持,如同治⽔所需的各种先进仪器和模型。AI与数据时代的PythonPythonintheEraofAIandData出⾊的数据处理能⼒能⾼效处理⼤规模数据是分析"数据洪流"的利器AI与数据时代的PythonPythonintheEraofAIandData简单易⽤相⽐其他语⾔

,能更快将AI概念和数据分析思路转化为实际代码。AI与数据时代的PythonPythonintheEraofAIandData活跃的社区⽀持海量AI研究者和开发者使⽤Python,意味着丰富的资源和及时的帮助,如同—个庞⼤的治⽔智囊团。⻓⽼箴⾔

:神兵初识Elder'sMaxim:FirstEncounterwithDivineWeapons当前任务任务:认识Python语言已完成>>>下⼀课:利其器-搭建开发营地与初试锋芒初试锋芒搭建开发环境与第⼀个程序Setupthedevelopmentenvironmentandthefirstprogram升级任务⼀:

开启征程UpgradeTaskOne:Embarkonthejourney"汝已识Python神兵,然利器需有匠⼼,⽅能运⽤⾃如。此番任务,乃汝筑基之始。"⻓⽼的⽬标:成为【筑基⼯匠】—智水长老升级任务进度TheprogressoftheUpgradetask已完成课程任务:认识Python语言已完成已完成课程任务:水利领域的数据力量已完成任务:利其器-搭建开发营地与初试锋芒当前课程进行中>>>完成本任务,成为【筑基⼯匠】!本课程子任务Sub-tasksofthiscourse搭建开发营地与初试锋芒搭建Python开发环境验证是否正确安装了解并配置pip镜像源安装并启动JupyterLab创建并执⾏第—个Python程序“善治⽔者,

必先利其器,

固其基。”01第一节搭建Python开发环境BuildaPythondevelopmentenvironment为何需建营地?ThePowerofData:FromOverwhelmingInformationtoScientificDecision-making“善治⽔者,必先利其器,固其基。“这Python神⼒虽强,亦需稳固之营地(开发环境)⽅能施展。为何需建营地?ThePowerofData:FromOverwhelmingInformationtoScientificDecision-making开发环境的重要性开发环境就像是法师的⼯作室,为施展Python神⼒提供稳固基础。让我们能顺畅地编写、测试和运⾏代码。神⼒之源:

安装PythonSourceofDivinePower:InstallPython以Windows系统为例:访问Python官⽹

/downloads/或国内镜像站获取安装法器。1切记勾选"AddPythontoPATH"之项。2随后选⽤"InstallNow"即可。3验证包管理⼯具pip是否可⽤

:Terminal验证Python是否已安装并添加到系统路径:Terminal验证神⼒是否到位Verifywhetherthedivinepowerisinplace开启命令⾏法阵(CMD/PowerShell):$

python-V$

pip-VPython3

.10

.0pip

22

.0

.4

from

C:\Python310\lib\site-packages\pip(python3

.10)02第二节JupyterLab:交互式演武场JupyterLab:InteractiveMartialArtsArena何为JupyterLab?WhatisJupyterLab?Jupyter

Lab如同一个超级笔记本,集记录、演算、展示于一体。智能卷轴:⼀

体化⼯作环境1交互式编程2富⽂本⽀持3可视化展示4⽂件管理第⼆步

:启动JupyterLabTerminal第⼀步

:安装JupyterLabTerminal部署演武场:

安装与启动Deploymentofthetrainingground:Installationandstartup$

pip

install

jupyterlab$

jupyter

lab03第三节初试锋芒:

向世界问好Firstattempttoshine:Greettheworld创建第⼀个演练卷轴Createthefirstdrillscroll在JupyterLab的Launcher中即可创建—份新Notebook⽂件以

.ipynb

结尾。点击"Python3"单元格的奥秘:

记录与施法TheMysteryofCells:RecordingandCastingNotebook单元格(Cell)Markdown单元格⽤于书写治⽔思路、⼼得笔记、推演过程。

#⽔⽂数据分析报告##

1.数据概览本次分析的**⻓江流域**降⽔数据涵盖

*2020-2023年*。Code单元格⽤于输⼊并执⾏Python代码。#⽔⽂数据分析示例import

pandas

as

pdimport

numpy

as

np有两种主要形态。发出第⼀声呐喊Letoutthefirstshout在Python中,使⽤print函数可以输出信息#

基础示例print("你好,世界!

")应景示例#应景示例print("你好,⽔⼒学!

")运⾏法术,见证奇迹Castspellsandwitnessmiracles见证汝的第—道Python法术⽣效!●

●

●

Jupyter

Notebook

print("你好,⽔⼒学!

"

)In

[1]:你好,⽔⼒学!Out

[1]:In

[2]:运行代码点击单元格上⽅的按键盘上的"运⾏"(RUN)▶

按钮"Shift+Enter"组合键法1:法2:升级任务完成:晋升【筑基⼯匠】Upgradetaskcompleted:Promotedto[FoundationBuildingCraftsman]汝已获得【筑基⼯匠】称号恭喜晋升!任务完成汝已完成"开启征程"之所有任务:

既识Python神兵,亦能搭建营地、初试锋芒。升级任务⼆:

辨源识流下⼀阶段万物命名之法变量-数据的名字Variable-Thenameofthedata辨源识流-升级任务⼆IdentifyingtheSourceandFlow-UpgradeTaskTwo汝已筑基,

当进阶

智⽔⻓⽼的指引—智水长老洪⽔形态万千,数据亦然。汝需先有利器命名万物(变量),再辨其虚实形态(数"辨源识流"之境。据类型),

⽅能掌控数据之源。升级任务进度TheprogressoftheUpgradetask完成本任务,成为【辨源⼠】!当前任务任务:万物命名之法-变量进行中>>>任务:⾔语之⼒-字符串操作任务:精准度量-数字类型与运算后续任务待解锁本课任务:万物命名之法-变量

LessonTask:TheMethodofNamingAllThings-Variables任

务

⽬标理解变量学会创建变量掌握命名规则“世间万物皆有其名,数据亦然。”

01第一节变量:

为数据命名Variable:Namethedata何为变量?数据的容器Whatisavariable?Thecontainerofdata“世间万物皆有其名,

数据亦然。

变量者,

如同各式容器,

⽤以存放不同之数据。

或为⽔位⾼低,

或为堤坝名称,

皆可纳于其中,

以便随时取⽤。“何为变量?数据的容器Whatisavariable?Thecontainerofdata变量的本质变量是程序中⽤来存储和引⽤数据的基本单位变量的作⽤·存储数据:保存程序运⾏中需要的信息变量名数据·动态更新:可以随时修改变量的值·提⾼可读性:⽤有意义的名称代替复杂数据·重复使⽤

:—次定义,

多次调⽤何为变量?数据的容器Whatisavariable?Thecontainerofdata变量名01标识符,⽤于引⽤数据02数据值实际存储的信息内容03数据类型数据的种类变量的三个关键要素(数字、⽂本等)在Python中创建变量极其简便,

只需两步:创建变量:

赋予其名与值Createavariable:Assignitanameandavalue来看⼀个例⼦:为其取—个名字(变量名)1使⽤赋值符号=将—个值(数据)放⼊其中2

=

dam_name

"三峡⼤坝"=height185在Python中创建变量极其简便,

只需两步:创建变量:

赋予其名与值Createavariable:Assignitanameandavalue为其取—个名字(变量名)1使⽤赋值符号=将—个值(数据)放⼊其中2变量名=值创建变量:

赋予其名与值Createavariable:Assignitanameandavalue来看⼀个例⼦:

dam_name

"三峡⼤坝"=height185=print(dam_name)print(height)查看变量内容:print()法术再现Viewthevariablecontent:Theprint()spellreappears要查看变量中存储的数据,我们再次请出print:运⾏结果:三峡⼤坝185print()对应值变量名02第二节变量的命名规则与禁忌Namingrulesandtaboosforvariables命名之规:

须遵循的法度Namingrules:Thelawsandregulationsthatmustbefollowed变量名只能包含:变量名组成规则变量名必须以字母或下划线开头不能以数字开头!变量名开头规则命名不可随意,

需循法度,

⽅能条理清晰,不出差错。““智水长老字母(a-z,A-Z)数字(0-9)下划线(_)命名之规:

须遵循的法度Namingrules:Thelawsandregulationsthatmustbefollowed正确示例_internal_data错误示例river_flowwaterLevel1river-flowwater

level1st_reading#不能包含空格#不能包含连字符#不能以数字开头

命名之忌:

常见的误区Namingtaboos:Commonmisunderstandings

1、使⽤Python关键字class

="⽔⼯建筑物"

if

,else

,for

,

class

......有特殊含义,不可⽤作变量名!#

此乃错误⽤法!命名之忌:

常见的误区Namingtaboos:Commonmisunderstandings

2、拼写错误差之毫厘,谬以千⾥

。student_name=

"⼩明"print(studnt_name)#此处拼写错误,将引发

NameError确保使⽤变量时名称拼写完全—致。命名之忌:

常见的误区Namingtaboos:Commonmisunderstandings

3、忽略⼤⼩写Python对⼤⼩写敏感。damHeight=

185print(damheight)#错误:

damheight未定义

damHeight和damheight是两个不同的变量。总结

:命名之基已⽴Summary:Thefoundationfornaminghasbeenestablished1什么是变量2如何创建变量4命名规则3如何查看变量5命名禁忌下⼀课:⾔语之⼒-字符串操作总结

:命名之基已⽴Summary:Thefoundationfornaminghasbeenestablished下⼀课:⾔语之⼒-字符串操作当前任务任务:万物命名之法-变量已完成试炼!⾔语之⼒字符串(String)核⼼操作CoreoperationsofString辨源识流-升级任务⼆继续SourceIdentificationandFlowRecognition-UpgradeTaskTwocontinues"弟⼦

,汝已掌握命名之法。然数据有形,其—为"⾔语"(

字符串),承载⽂本信息,如河流之名,堤坝之志。此任务需汝精通驾驭"⾔语"之⼒

,

⽅能记录⽔情,传递号令。"⻓⽼的⽬标

:成为【辨源⼠】—智水长老当前任务任务:⾔语之⼒-字符串操作进行中>>>已完成任务任务:万物命名之法-变量已完成升级任务进度TheprogressoftheUpgradetask完成本任务,成为【辨源⼠】!任务:精准度量-数字类型与运算任务:⽔脉梳理-列表详解任务:定则不可移-元组详解任务:索引⼭河-字典详解后续任务待解锁本课任务:

⾔语之⼒-字符串操作

Taskofthislesson:ThePowerofSpeech-StringOperations任务⽬标学会创建和表示字符串掌握字符串的拼接⽅法熟悉常⽤的字符串处理⽅法理解并运⽤字符串的索引和切⽚“凡言语,皆需载体”01第一节字符串基础:

创建与连接StringBasics:Creationandconcatenation创建字符串:⾔语的诞⽣CreatingStrings:TheBirthofSpeech“凡⾔语,皆需载体。

Python中,字符串即⽂本之载体,可⽤'单引号'或"双引号"包裹⽽成。“创建字符串:⾔语的诞⽣CreatingStrings:TheBirthofSpeech

定义字符串的两种⽅式message1

=

'⽔⼯'使⽤单引号:message2=

"建筑物"使⽤双引号:前后必须使⽤相同类型的引号,否则Python将⽆法正确识别字符串的开始和结束位置。注意事项字符串拼接:⾔语的组合Stringconcatenation:Thecombinationoflanguages

基础字符串拼接first_name=

"⽔⼯

"last_name=

"建筑物"full_name=first_name

+

last_nameprint(full_name)age

=

2006#正确⽅式:使⽤

str()转换数字message="三峡⼤坝是"

+

str(age)

+

"年建成的"print(message)#输出

:三峡⼤坝是2006年建成的字符串与⾮字符串拼接⾔语可连接,

成句成章。#输出

:⽔⼯建筑物必须先将【非字符串】转换为【字符串】!将字符串⾸尾相连,

⽤

+号

即可02第二节字符串常⽤⽅法

:处理⽂本Commonmethodsforstrings:handlingtext⼤⼩写转换:规范⾔语格式Caseconversion:Standardizingspeechformat常⽤⼤⼩写转换⽅法name=

"Hydraulics"#转换为⼤写print(name.upper())#输出

:

HYDRAULICS#转换为⼩写print(name.lower())#输出

:

hydraulics#⾸字⺟⼤写print("water".capitalize())#输出

:Water⾔语格式需统—,

便于识别。去除空⽩:净化⾔语信息Eliminateblanks:Purifyverbalinformation⾔语前后,

或有冗余空⽩

,

需以strip()清除之,

⽅显精炼。字符串去除空⽩的⽅法language=

"

Hydraulics

"#去除两端空⽩print(language.strip())#输出

:"Hydraulics"#只去除左侧空⽩print(language.lstrip())#输出

:"Hydraulics

"#只去除右侧空⽩print(language.rstrip())#输出

:"

Hydraulics"

查找字符串⽅法查找字符串:精准定位信息Searchstring:Preciselylocateinformationsentence="Hydraulics

is

amazing"#

查找⼦字符串,

返回其⾸次出现的位置索引(从0开始计数)print(sentence.find("is"))

#

输出

:

11#如果未找到,则返回-1print(sentence.find("water"))

#

输出

:

-1#

也可以指定查找的起始和结束位置print(sentence.find("a",12))

#输出

:

13

(从索引12开始查找"a")Python查找之法,find()方法,助汝快速定位所需。查找字符串:精准定位信息Searchstring:Preciselylocateinformationsentence="Hydraulics

is

amazing"#检查是否包含某⼦字符串(

返回布尔值)print("is"in

sentence)

#

输出

:

Trueprint("water"in

sentence)

#

输出

:

False#在条件语句中使⽤if

"amazing"

in

sentence:print("这句话很棒!

")else:print("普通的句⼦

")使⽤

in运算符检查包含关系替换字符串:修正与转换Replacestring:Correctionandconversion替换字符串sentence="Hydraulics

is

amazing"#替换⼦字符串new_sentence=sentence.replace("amazing","powerful")

print(new_sentence)#输出

:"Hydraulics

is

powerful"original_string.replace(old_substring,new_substring)言语有时需修正,替换字符串中的某些部分,要用到replace()方法。注意事项替换字符串:修正与转换Replacestring:Correctionandconversionoriginal=

"Hello,World!"modified=original.replace("Hello","Hi")print(original)#输出

:"Hello,World!"

(原字符串不变)print(modified)#输出

:"Hi,World!"

(新字符串)字符串在Python中是不可变的(immutable)。替换操作不会修改原字符串,⽽是返回—个新的字符串。03第三节字符串索引与切⽚:

精准定位Stringindexingandslicing:Precisepositioning索引:定位单个字符Index:Locateasinglecharacter

word=

"Hydraulics"print(word

[0])#输出

:

H

(第—个字符)字符串索引示意图正向索引(从左到右)Python索引从0开始计数:word=

"Hydraulics"print(word

[-1])#输出

:

s

(最后—个字符)反向索引(从右到左)也可以使⽤负数索引,从末尾开始计数:字符Hydraulics正向索引0123456789反向索引-10-9-8-7-6-5-4-3-2-1注意事项索引不能超出字符串的范围,否则会引发IndexError。word=

"Hydraulics"#⻓度为

10#print(word[10])#

IndexError⾔语由字符组成,

如同堤坝由砖⽯垒砌。

欲取其中—字,

可⽤索引定位。

切⽚

:截取部分⾔语Slice:Toextractpartofthespeechword=

"Python"#

基本切⽚print(word

[0:3])

#输出

:

Pyt

(从索引0到2)#省略起始索引,默认从0开始print(word

[:4])#输出

:

Pyth

(从开头到索引3)切⽚语法切⽚使⽤string[start:end]语法,

包含start索引的字符,但不包含end索引的字符。不仅可取单字,

亦可截取⽚段,

此谓之切⽚。#省略结束索引,默认到字符串末尾print(word

[2:])#输出

:thon

(从索引2到末尾)#使⽤负数索引进⾏切⽚print(word

[-3:])#输出

:

hon

(最后三个字符)

切⽚

:截取部分⾔语Slice:Toextractpartofthespeech步⻓切⽚切⽚还可以指定步⻓(step),使⽤string[start:end:step]语

法。不仅可取单字,

亦可截取⽚段,

此谓之切⽚。text=

"Hydraulic

Engineering"#每隔—个字符取—个#输出

:Hdalc

(取索引0,2,4,6,8的字符)print(text

[0:10:2])#负数步⻓表示反向切⽚#输出

:gni

reenignE

ciluardyH

(字符串反转)print(text

[::-1])#从右向左每隔两个字符取—个#输出

:

ieE

(取索引10,8,6,4,2的字符)print(text

[10:0:-2])总结:⾔语之⼒初掌Summary:Thepowerofwordshasjustbeenmastered下⼀课:精准度量-数字类型与运算当前任务任务:⾔语之⼒-字符串操作已完成试炼!下⼀课:精准度量-数字类型与运算精准度量之术数字(Number)类型与运算Numbertypesandoperations辨源识流-升级任务继续SourceIdentificationandFlowRecognition-Upgradecontinues"爱徒,治⽔需精准度量,如⽔位之⾼低,流量之⼤⼩,⻓⽼的⽬标

:成为【辨源⼠】—智水长老此任务,汝需掌握Python中数字之奥秘,明辨整数、浮点,通晓加减乘除之术。"皆需以"数字"

记之。升级任务进度TheprogressoftheUpgradetask当前任务任务:精准度量-数字类型与运算进行中>>>已完成任务任务:万物命名之法-变量⾔语之⼒-字符串操作已完成任务:⽔脉梳理-列表详解定则不可移-元组详解索引⼭河-字典详解后续任务待解锁完成本任务,成为【辨源⼠】!本课任务:精准度量-数字类型与运算Taskofthislesson:PreciseMeasurement-NumberTypesandOperations任务⽬标理解Python中的主要数字类型:整数(int)和浮点数(float)掌握基本的算术运算符学会进⾏数字类型之间的转换了解常⽤数学函数及math模块的初步使⽤“度量有精确,亦有近似。”01第一节整数与浮点数:度量之本Integersandfloating-pointnumbers:Thefoundationofmeasurement精确与近似:整数vs浮点数PrecisionandApproximation:Integersvs.Floating-pointnumbers整数(int)代表不带⼩数部分的数字,如:浮点数(float)代表带有⼩数部分的数字,如:·⽔库的闸⻔数量:42·温度变化:-5度·年份:2023·河流⽔位:3.14159⽶·降⾬量:25.5毫⽶·即使是整数值,如99.0,

只要带⼩数点,也视为浮点数精确与近似:整数vs浮点数PrecisionandApproximation:Integersvs.Floating-pointnumbers度量有精确,

亦有近似。

整数者,

如堤坝之块数,

精确⽆误;

浮点数者,

如⽔位之⽶数,

或带⼩数,

容有微差。age

=

2006#错误⽅式:

直接拼接#message=

"三峡⼤坝是"+

age

+

"年建成的"#正确⽅式:使⽤

str()转换数字message="三峡⼤坝是"

+

str(age)

+

"年建成的"print(message)#输出

:三峡⼤坝是2006年建成的浮点数(float)代表带有⼩数部分的数字,如:·河流⽔位:3.14159⽶·降⾬量:25.5毫⽶·即使是整数值,如99.0,

只要带⼩数点,也视为浮点数age

=

2006#错误⽅式:

直接拼接#message=

"三峡⼤坝是"+

age

+

"年建成的"#正确⽅式:使⽤

str()转换数字message="三峡⼤坝是"

+

str(age)

+

"年建成的"print(message)#输出

:三峡⼤坝是2006年建成的字符串与⾮字符串拼接代表不带⼩数部分的数字,如:·⽔库的闸⻔数量:42·温度变化:-5度·年份:2023辨识数字类型:type()法术Identifythenumbertype:Thetype()spell需要明确知道变量存储的是哪种数字使⽤type()探查法术可以揭示变量的内在类型辨识数字类型:type()法术Identifythenumbertype:Thetype()spell#整数示例dam_count=

15print(type(dam_count))#浮点数示例water_level=

175.8print(type(water_level))#

⾃动类型推断result1=

10

+

5

print(type(result1))result2=

10+

5.0

print(type(result2))#输出

:<class

I

intI>#输出

:<class

I

float

I>

#

结果为整数15

#

结果为浮点数

15.0#输出

:<class

I

intI>#输出

:<class

I

float

I>02第二节基本数学运算:量化之⼒Basicmathematicaloperations:ThePowerofquantification加减乘除:四则基础Addition,subtraction,multiplicationanddivision:Thebasicsofthefourprinciples加法与减法#加法

:计算总和net_change=total_flow-

(outflow

+

evaporation)print(f"净⽔量变化

:

{net_change}⽴⽅⽶/⼩时")#输出

:净⽔量变化

:45

⽴⽅⽶/⼩时total_flow=

inflow+

rainfall_runoffprint(f"总⼊⽔量

:{total_flow}⽴⽅⽶/⼩时")#输出

:总⼊⽔量

:

280⽴⽅⽶/⼩时#减法

:计算差值inflow=250#

⼊⽔量

(⽴⽅⽶/⼩时)rainfall_runoff=30#

降⾬径流

(⽴⽅⽶/⼩时)outflow=220#

出⽔量

(⽴⽅⽶/⼩时)evaporation=15

#

蒸发损失

(⽴⽅⽶/⼩时)乘法与除法加减乘除:四则基础(2)Addition,subtraction,multiplicationanddivision:Thebasicsofthefourprinciples(2)#乘法

:计算乘积#

除法

:计算商值length=

120#

⽔渠⻓度

(⽶)width=

3.5#

⽔渠宽度

(⽶)depth=

2.0#

⽔渠深度

(⽶)volume=

length*width

*

depthprint(f"⽔渠容积

:{volume}⽴⽅⽶

")#输出

:

⽔渠容积

:

840.0

⽴⽅⽶average_speed=distance/

time_hoursprint(f"平均速度

:{average_speed}千⽶/⼩时")#输出

:平均速度

:

40.0

千⽶/⼩时distance=

30#⾏进距离

(千⽶)time=

45

#⾏进时间

(分钟)time_hours=time

/

60#

转换为⼩时

运算顺序与括号加减乘除:四则基础(3)Addition,subtraction,multiplicationanddivision:Thebasicsofthefourprinciples(3)#没有括号:

先乘除后加减result1=

10+

5

*

2

#

5*2

先计算,

然后加10print(result1)

#输出

:

20#使⽤括号改变运算顺序result2=

(10+

5)*

2

#

先计算10+5,

结果再乘以2print(result2)

#输出

:

30Python遵循标准的数学运算顺序先乘除,后加减使⽤括号可以改变运算优先级加减乘除:四则基础(3)Addition,subtraction,multiplicationanddivision:Thebasicsofthefourprinciples(3)运算优先级顺序Python运算优先级从⾼到低:1.括号()2.指数**3.乘、

除、取余、整除*,/,%,//4.加法和减法+,-当不确定运算顺序时,

建议使⽤括号明确表达计算意图,

这样代码更易读,也能避免潜在错误。03第三节类型转换与常⽤函数:灵活运⽤Typeconversionandcommonfunctions:Flexibleapplication数字变幻:int()与float()Numbervariations:int()andfloat()#整数转浮点数num_int

=

5num_float=

float(num_int)print(num_float)#输出

:

5.0print(type(num_float))#输出

:<class

I

float

I>#应⽤:确保除法计算精确性total_water=

100#总⽔量

(⽴⽅⽶)containers=

3#

容器数量water_per_container=float(total_water)/

containersprint(f"每个容器的⽔量

:{water_per_container}⽴⽅⽶

")

#输出

:每个容器的⽔量

:33.333333333333336⽴⽅⽶整数转浮点使⽤float()

数字变幻:int()与float()Numbervariations:int()andfloat()#整数转浮点数num_int

=

5num_float=

float(num_int)print(num_float)#输出

:

5.0print(type(num_float))#输出

:<class

I

float

I>整数转浮点:智水长老精确与近似,并非恒定不变,可按需施法转换““float()数字变幻:int()与float()(2)Numbervariations:int()andfloat()(2)#浮点数转整数(截断⼩数部分)num_float=

8.7num_int=

int(num_float)print(num_int)#输出

:8

(不是9,

因为是截断⽽⾮四舍五⼊)浮点转整数:使⽤int()可将浮点数变为整数,但注意它会直接截断⼩数部分,⽽⾮四舍五⼊!!int()总结:精准度量初掌握Summary:Precisemeasurementhasbeeninitiallymastered下⼀课:⽔脉梳理-列表详解当前任务任务

:

精准度量-数字类型与运算已完成>>>下⼀课:⽔脉梳理-列表详解⽔脉梳理之术列表(List)详解DetailedExplanationofList辨源识流-升级任务继续SourceIdentificationandFlowRecognition-Upgradecontinues"列表如同—条条梳理好的⽔脉,可容纳万千数据,且灵活可变。

掌握列表,

乃汝管理复杂⽔情信息之关键。"⻓⽼的⽬标

:成为【辨源⼠】—智水长老升级任务进度TheprogressoftheUpgradetask当前任务任务:⽔脉梳理-列表详解进行中>>>已完成任务

任务:万物命名之法-变量

⾔语之⼒-字符串操作精准度量-数字类型与运算已完成任务:定则不可移-元组详解索引⼭河-字典详解后续任务待解锁完成本任务,成为【辨源⼠】!本课任务:⽔脉梳理-列表详解LessonTask:WaterVeinSorting-DetailedListExplanation任务⽬标理解列表的概念及其作为有序、可变集合的特点学会创建列表,

包括包含不同数据类型的列表熟练使⽤索引和切⽚访问列表元素掌握修改、添加和删除列表元素的⽅法了解并运⽤列表的常⽤操作和⽅法01第一节列表基础:汇聚百川之器ListFoundation:Gatheringtheessenceofallrivers何为列表?有序的数据序列Whatisalist?Anorderedsequenceofdata

列表者,

乃Python中⽤以承载—系列有序数据之容器也。

其序固定,

其内之物可增可减,

可易可改,

极尽灵活。列表特性1⽤⽅括号[]表示2列表中的元素按添加顺序排列3列表是可变的4列表可以包含任何类型的数据列表的作⽤与表示Thefunctionandrepresentationofalist列表的表示列表的作⽤在⽔利⼯程中,列表可以⽤来:存储—系列⽔库的⽔位数据管理多个监测站点的信息记录⽔流量的历史变化组织⽔利⼯程的组件清单#—个简单的列表water_levels=

[12.5,13.2,

11.8,

12.9]#列表可以为空empty_list=

[]#列表可以包含不同类型的数据mixed_data=

["⽔位",12.5,

True,

2023]#打印整个列表print(water_levels)#输出

:

[12.5,13.2,

11.8,

12.9]混合数据类型列表创建列表的基本语法创建列表:容纳万象Createalist:Embraceeverything

创建列表只需一系列元素用逗号隔开,然后用方括号把它们括起来。#混合类型列表-⽔库信息#

[名称

,⾼度(⽶),库容(亿⽴⽅⽶),是否在运]mixed_info=

["龙⽺峡",128,

3830.0,

True]#存储—系列⼤坝名称

(字符串)dam_names=

["葛洲坝",

"⼩浪底",

"⼆滩"]#存储—系列流量读数

(浮点数)flow_rates=

[1200.5,850.0,

1500.75,850.0]#创建空列表(

之后可添加元素)measurements=

[]访问列表元素:索引定位Accesslistelements:Indexlocation负索引

:从末尾计数使⽤索引访问元素#使⽤负索引print(dams

[-1])#输出

:溢洪坝(

最后—个元素)print(dams

[-3])#输出

:土石坝(

倒数第三个元素)#定义—个列表dams=

["重⼒坝","⼟⽯坝",

"拱坝",

"溢洪坝"]#使⽤正索引(从0开始)print(dams

[0])#输出

:重⼒坝(

第—个元素)print(dams

[2])#输出

:拱坝(

第三个元素)欲取⽔脉中某处之⽔情,

需知其精确位置(索引)。

列表索引,

亦从0始。访问列表元素:切⽚截取Accesslistelements:Sliceextraction

#—周的⽔温记录(摄⽒度)temperatures=

[20,22,

23,

19,

21,

24,

25]#基本切⽚格式:

list[start:end]print(temperatures

[1:4])#输出

:

[22,23,

19]

(索引1到3的元素)#从开头切⽚

(省略起始索引)print(temperatures

[:3])#输出

:

[20,22,

23]

(索引0到2的元素)#切到末尾

(省略结束索引)print(temperatures

[4:])#输出

:

[21,24,25]

(索引4到末尾的元素)列表切⽚基础切⽚语法list[start:end],

包含起始索引,不包含结束索引(含头不含尾)。不仅可取单点⽔情,

亦可截取—段⽔脉(切⽚),

以观其连续变化。02第二节列表操作:调度管理之道Listoperation:Thewayofschedulingmanagement修改元素:易其旧貌Modifytheelement:Changeitsoldappearance直接通过索引修改元素#创建—个列表dam_status=

["正常","维护中",

"正常",

"⽔位过⾼

"]#修改单个元素dam_status

[1]=

"升级改造"print(dam_status)#输出

:

[I正常I,

I升级改造I,

I正常I,

I⽔位过⾼I]#修改最后—个元素dam_status

[-1]=

"正常"print(dam_status)#输出

:

[I正常I,

I升级改造I,

I正常I,

I正常I]通过索引直接赋值,

即可修改列表中的元素。修改元素:易其旧貌Modifytheelement:Changeitsoldappearance添加元素#第一种方法是append(),它会在列表的**末尾**添加一个新元素。sensor_readings=

[15.2,15.4]#添加元素sensor_readings.append(15.5)print(sensor_readings)#输出

:

[15.2,15.4,15.5]#第二种方法是insert(),它可以在列表的**指定索引位置**插入一个新元素。sensor_readings=

[15.2,15.4,15.5]#添加元素sensor_readings.insert(1,15.3)#元素15.3就会被插入到索引1的位置,原来的元素及其后的元素都会向后移动。

print(sensor_readings)#输出

:

[15.2,15.3,15.4,15.5]修改元素:易其旧貌Modifytheelement:Changeitsoldappearance删除元素#第一种是del语句,它可以根据**索引**删除元素。measurements=

[10,12,11,13]#删除元素delmeasurements[1]print(measurements)#输出

:

[10,11,13]#第二种是pop()方法。它会移除并**返回**指定索引处的元素。measurements=

[10,11,13]#删除元素last_reading=measurements.pop()#会移除并返回13。

print(measurements)#输出

:

[10,11]#第三种是remove()方法。它是根据元素的**值**来删除**第一个匹配**的元素。dam_type=

["拱坝","重力坝",

"拱坝"]#删除元素dam_types.remove("拱坝")#第一个"拱坝'"会被删除。print(measurements)#输出

:

["重力坝","拱坝"],如果列表中有多个相同的元素,remove()只会删除第一个找到的。总结:⽔脉梳理初成Summary:Theinitialanalysisofthewaterveinshasbeencompleted当前任务任务:⽔脉梳理-列表详解已完成试炼!下⼀课:定则不可移-元组详解定则不可移之道元组(Tuple)详解ADetailedExplanationofTuples辨源识流-升级任务继续SourceIdentificationandFlowRecognition-Upgradecontinues"爱徒,汝需学习"元组",此乃Python中—种不可变之序列,象征着那些固定不变的规则与数据。"⻓⽼的⽬标

:成为【辨源⼠】—智水长老当前任务任务:定则不可移-元组详解进行中>>>已完成任务任务:万物命名之法-变量任务:⾔语之⼒-字符串操作任务:精准度量-数字类型与运算任务:⽔脉梳理-列表详解已完成升级任务进度TheprogressoftheUpgradetask完成本任务,成为【辨源⼠】!任务:索引⼭河-字典详解后续任务待解锁本课任务:定则不可移-元组详解LessonTask:UnalterableRules-DetailedExplanationofTuples任务⽬标理解元组的概念及其作为有序、不可变集合的特点学会创建元组掌握访问元组元素的⽅法(

索引和切⽚)理解元组不可变性的含义和影响对⽐元组与列表,

明确各⾃的适⽤场景01第一节元组基础:不可变之序TupleFoundation:Immutableorder何为元组?固定的数据序列Whatisatuple?Fixeddatasequence元组特性1元组(Tuple)与列表类似是—种有序元素的集合⽤圆括号()表示2元组是

不可变的(immutable)3—旦创建,元素不能被修改、添加或删除创建元组Createatuple#1.省略圆括号:

只要⽤逗号分隔,

Python也识别为元组point=

10,

20#

这也是—个元组print(point)#

输出

:

(10,

20)print(type(point))#输出

:<class

'tuple'>#2.单元素元组:

必须在元素后加逗号#错误⽅式-没有逗号,会被解释为整数not_a_tuple=

(5)print(not_a_tuple)#输出

:

5#输出

:

<class

'int'>print(type(not_a_tuple))元组创建的特殊情况#存储河流的不同时期river_stages=

("枯⽔期","平⽔期",

"丰⽔期",

"洪⽔期")print(river_stages)#输出

:

('枯⽔期',

'平⽔期',

'丰⽔期',

'洪⽔期')创建元组的基本语法将元素放⼊圆括号,⽤逗号,分隔即可创建元组。02

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论