版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能车Python编程设计(开场篇)《智能车Python编程设计》主讲人:
邮箱:人生苦短
快用Python政策中国Python相关政策与发展历程(2015-2021)时间节点政策/战略名称核心内容对Python发展的影响2015年5月《中国制造2025》提出实施制造强国战略,重点发展新一代信息技术、高端装备等领域。为工业智能化与数据分析奠定政策基础,Python作为实现工具的重要性初步提升。2017年7月《新一代人工智能发展规划》(链接)确立三步走战略,目标到2030年使中国成为世界主要人工智能创新中心。最核心的推动力。Python作为AI/ML主流语言,需求呈爆炸式增长,催生大量研发岗位。2017-2018年教育部新课标改革将Python纳入高中信息技术必修课程,取代原有VB等语言。奠定国民基础。从中学生开始普及Python,为未来科技人才储备提供了巨大基数。2020年“新基建”(新型基础设施建设)国家级战略,重点投资5G、人工智能、大数据中心、工业互联网等数字基础设施。Python在数据分析、云计算、自动化运维等领域成为关键工具,应用场景被极大拓宽。2021年11月《“十四五”软件和信息技术服务业发展规划》明确提出支持开源生态建设,鼓励企业开放源代码,构建开源社区。为Python及其庞大的开源库生态(如PyPI)提供了明确的政策支持,鼓励国内参与和贡献。政策近年来,政策方向从宏观战略规划逐步转向具体落地应用和生态治理。一、国家级战略与行动(2023-2025)政策名称发布时间核心目标对Python生态的影响“数据要素×”三年行动计划2024年初推动数据要素在重点行业(工业、医疗、金融等)的深度融合与应用,释放数据价值。极大提升Python数据分析、处理和价值挖掘的需求。Pandas,NumPy,Scikit-learn等库成为从数据中提取价值的关键工具。“人工智能+”行动2024年(政府工作报告首次提出)将人工智能与传统产业、社会生活深度结合,打造新增长引擎。(是《新一代AI发展规划》的深化和落地)Python作为AI模型开发、部署(MLOps)和应用集成的首选语言,需求从“模型研发”扩展到“全行业应用”。深化国产化与信创生态建设持续进行在关键信息基础设施领域,推动技术自主可控,鼓励国产CPU、操作系统、数据库等软硬件的应用。推动Python生态与国产化平台(如华为昇腾、统信UOS、麒麟OS)的适配。对PyTorch,TensorFlow等框架的国产替代方案需求增加。国务院关于深入实施“人工智能+”行动的意见【链接】2025年8月为深入实施“人工智能+”行动,推动人工智能与经济社会各行业各领域广泛深度融合。全方位政策二、地方与行业政策重点(2024-2025)1.重点城市“抢人大战”升级北京、上海、深圳、杭州等一线城市继续将“人工智能算法工程师”、“大数据开发工程师”等列为紧缺急需人才,提供落户、住房、子女教育等优惠政策的细则不断优化。影响:直接提升了Python高级工程师的薪资待遇和职业前景。2.行业落地成为考核指标地方政府鼓励AI、大数据企业不再局限于技术本身,而是更多考核在制造业、医疗、农业等传统行业的实际落地案例和经济效益。【成都最新文件】影响:Python开发者需要更深入的行业知识(DomainKnowledge),才能开发出真正解决实际问题的应用。3.教育政策的深化高等教育:更多高校在非计算机专业(如金融、生物、设计、社会科学)开设Python编程与数据分析课程,体现其“工具属性”的普及。职业教育:国家鼓励产教融合,Python成为职业教育(高职院校)在Web开发、自动化运维、数据分析等方向的核心教学语言,旨在培养更多技能型应用人才。Python排行TIOBE编程社区索引是衡量编程语言受欢迎程度的指标
该索引每月更新一次。引用来自/tiobe-index/【链接】Python可以做什么?(思考)Python职场前景就业形势险峻,毕业生们怎么办?其实你没事多去招聘网站上看看,你会发现不少基础岗位的招聘都写上了对python的技能要求,这也就意味着,会写程序的人会更吃香。Python相关岗位岗位名称岗位职责薪资待遇Python开发工程师/后端开发工程师负责后端服务的开发、维护和优化,包括API接口设计、数据库设计与管理、系统架构设计等。在北京等一线城市,平均薪资可能超过21k,二线城市薪资则在11k+。具体薪资水平还需考虑个人经验、技能及项目经验等因素。Python数据分析师/数据挖掘工程师利用Python进行数据处理、分析、建模及可视化,为企业决策提供数据支持。在北京的平均薪资超过29K,且岗位需求量大。随着大数据和人工智能的快速发展,这一领域的薪资有望继续增长。人工智能工程师/机器学习工程师负责人工智能产品的设计、开发、优化及部署,包括算法研究、模型训练、性能评估等。在北京,机器学习工程师的薪资可能超过31K,且年薪可达30w+。Python爬虫工程师利用Python编写爬虫程序,从互联网上抓取数据并进行处理和分析。平均薪资可能在15-25K之间。Python运维工程师负责服务器的配置、维护、监控及优化,确保系统的稳定运行。薪资水平因工作内容和技能要求的不同而有所差异,但一般也在15-25K之间。Python自动化测试工程师利用Python编写自动化测试脚本,提高测试效率和准确性。薪资水平相对较为稳定,一般在10-20K之间。Python游戏开发工程师负责游戏服务器的开发、性能优化及游戏逻辑的实现。平均薪资可能在15-25K之间。其他方向随着全球经济形势的变化与技术革新的加速,未来就业市场前景扑朔迷离,洞悉并适应新技术趋势显得尤为关键。
而在世界经济论坛(WorldEconomicForum,WEF)发布的“未来就业报告”中也指出,在2023-2027年间:
“全球企业预计创造约6900万个新的岗位,同时,受自动化与产业结构影响,8300万个岗位将被淘汰,岗位数量下降1400万个!”
另外,WEF也给出了“未来五年增长最快的十大岗位”,「人工智能与机器学习专业人员」荣登第一。Python学习路线重要课程大纲Python语言概述Python简介Python开发工具Python开发环境搭建Python语言基础Python数据类型常量与变量运算符与表达式Python字符串操作字符串的定义字符串的操作Python序列结构列表及其操作元组及其操作字典及其操作集合及其操作Python程序控制结构程序的基本结构选择结构循环结构Python函数与模块函数的定义与调用模块的定义与使用课程大纲Python文件及目录操作文件的基本操作目录的基本操作Python面向对象程序设计类和对象
继承运算符的重载模块与类Python异常处理结构异常定义常见的异常处理结构读写文件访问数据库Pandas科学计算SciPy科学计算数据可视化之Matplotlib数据可视化之Seaborn数据可视化之pyecharts.pptx课程安排学分:4学分学时:64学时,理论48学时,实践24学时考核标准:50%期末+50%平时课堂须知:1.禁止在上课打电话、看与课堂无关视频、打游戏、大声说话2.旷课3次直接取消考试资格。3.实行每节课考勤制,迟到扣平时成绩。成绩构成构成项目成绩比例平时成绩出勤考核10%
课堂表现10%
课后作业10%
实验20%期末成绩期末考试50%总评成绩100%推荐学习资料1.Python官方文档2.Python编程从入门到实践3、PythonCookbook(第3版)中文版4.Python数据分析网站论坛学习资源网站论坛学习资源比赛感兴趣的同学homework1.Python在国内的应用场景案例2.了解Python和C的区别3.预习Python的基本内容、发展Python与智能车编程入门简介《智能车Python编程设计》本章内容Python语言简介程序设计语言概述编译和解释Python的发展Python的特点Python的应用Python的开发环境官方开发环境IDLE第三方集成开发环境PyCharmPython程序的编写与运行如何编写Python程序在IDLE中运行Python程序在PyCharm中运行Python程序Python编程规范与技巧Python代码设计规范Python帮助文档Python程序设计方法Python语言简介程序设计语言概述程序设计语言包括编译执行和解释执行两种方式程序设计语言是计算机能够理解和识别用户操作意图的一种交互体系,它按照特定规则组织计算机指令,使计算机能够自动进行各种运算处理。按照程序设计语言规则组织起来的一组计算机指令称为计算机程序。程序设计语言概述机器语言机器语言是一种二进制语言,它直接使用二进制代码表达指令,是计算机硬件可以直接识别和执行的程序设计语言。例如:执行数字2和3的加法,16位计算机上的机器指令为:1101001000111011,不同计算机结构的机器指令不同。程序设计语言概述汇编语言汇编语言是使用助记符与机器语言中的指令进行一一对应,在计算机发展早期帮助程序员提高编程效率。例如:执行数字2和3的加法,汇编语言指令为:add2,3,result,运算结果写入result。机器语言和汇编语言都直接操作计算机硬件并基于此设计,所以它们统称为低级语言。程序设计语言概述高级语言高级语言区别于低级语言在于,高级语言是接近自然语言的一种计算机程序设计语言,更容易地描述计算问题并利用计算机解决计算问题。例如:执行数字2和3加法的高级语言代码为:result=2+3编译和解释高级语言按照计算机执行方式的不同可分成两类静态语言脚本语言这里所说的执行方式指计算机执行一个程序的过程,静态语言采用编译执行,脚本语言采用解释执行。编译和解释编译是将源代码转换成目标代码的过程,通常,源代码是高级语言代码,目标代码是机器语言代码,执行编译的计算机程序称为编译器。编译和解释解释是将源代码逐条转换成目标代码的同时逐条运行目标代码的过程(边转换边执行)。执行解释的计算机程序称为解释器。编译和解释编译是一次性地翻译,一旦程序被编译,不再需要编译程序或者源代码。对于相同源代码,编译所产生的目标代码执行速度更快。目标代码不需要编译器就可以运行,在同类型操作系统上使用灵活。解释则在每次程序运行时都需要解释器和源代码。解释执行需要保留源代码,程序纠错和维护十分方便。只要存在解释器,源代码可以在任何操作系统上运行,可移植性好。Python的发展Python诞生1989年的圣诞节期间,吉多.范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为ABC语言的一种继承。Guido选择了一部自己喜欢的电视喜剧MontyPython‘sFlyingCircus(《蒙提·派森的飞行马戏团》)中“Python”一词作为该编程语言的名字Python版本发展1991年发布第一个Python的公开版本0.9.0。1994年发布的Python1.0版本。2000年发布的Python2.0版本。2008年发布的Python3.0版本。Python的发展已过时Python的特点Python是一门跨平台、开源、免费的解释型高级动态编程语言。(1)简单。Python语言是接近于自然语言的高级程序设计语言。(2)易学。相较于其他编程语言,Python语言的语法特点更容易理解。(3)运行速度快。Python语言的底层是采用C语言编写的,运行速度快。(4)开源。二次开发不涉及版权和收费问题。(5)具有良好的跨平台性和可移植性。支持括Linux、Windows、iOS、Android(6)Python是解释型语言。先把源代码转换成字节码,再把字节码翻译成计算机使用的机器语言。Python支持命令式编程(Howtodo)、函数式编程(Whattodo),完全支持面向对象程序设计,拥有大量扩展库。胶水语言:可以把多种不同语言(C/C++)编写的程序融合到一起实现无缝拼接,更好地发挥不同语言和工具的优势,满足不同应用领域的需求。Python简单且兼容性好。Python的应用Python在智能车中的应用数据处理与分析汽车车辆运行数据、电池性能数据等。通过Python,进行数据的采集、清洗、分析和可视化。自动化测试Python编写测试脚本,执行自动化测试流程,采集测试数据,并生成测试报告。自动驾驶与仿真Python在自动驾驶领域有着广泛的应用,如计算机视觉、深度学习、仿真建模等。市场营销与数据分析通过网络爬虫技术,可以获取市场数据,进行数据分析和展示,帮助企业制定营销策略Python的开发环境Python开发工具使用自带的IDLEIDLEPythonShell编写代码并运行第三方开发工具PyCharmVisualStudio2017Eclipse+PyDev签到码1234
Python的开发环境安装
Python官方IDLE的下载与安装1、下载Python的安装包/2、安装Python3、测试Python是否安装成功回到桌面,按快捷键“win+r”,调出对话框,输入“cmd”,按回车输入python按回车,显示出python版本信息PyCharm第三方开发环境的下载与安装1、下载PyCharm的安装包/pycharm/download/#section=windows2、安装PyCharm3、打开PyCharm点击CreateNewProject,interpreter是选择你安装的python,Location可以自定义项目存放目录,选择好后,点击create。详细教程http://4/558yPython程序的编写与运行编写Python程序的方法交互式编程源代码文本编程源代码编程是使用纯文本形式编写Python程序的一种常规方法。(1)创建Python源代码文件。(2)指定文件扩展名。(test.py)(3)运行Python文件。运行Python程序在IDLE中运行Python程序在PyCharm中建立与运行Python程序Python 的编程规范与技巧(链接)注释单行注释以符号#开始,表示本行#之后的内容为注释。例#注释内容多行注释包含在一对三引号'''...'''或"""..."""之间且不属于任何语句的内容将被解释器认为是注释。代码缩进在Python编程语言的语法规则中,无论是对类的构造、函数的定义、流程控制结构的组织,还是异常处理机制的实现,均通过严谨的代码缩进来界定各个逻辑单元的起始与终止位置。类定义、函数定义、选择结构、循环结构、with块,行尾的冒号表示缩进的开始。python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。同一个级别的代码块的缩进量必须相同。一般而言,以4个空格为基本缩进单位。编码规范在Python编程领域内,遵循的编码风格规范是PEP8,全称为PythonEnhancementProposal8。涵盖了诸如缩进、命名约定、行长度限制、空白区域使用、导入模块的排列顺序等多个方面。import导入模块每个import语句只导入一个模块,最好按标准库、扩展库、自定义库的顺序依次导入。例如:importcsvimportrandomimportdatetimeimportpandasaspdimportmatplotlib.pyplot
as
plt使用续行符尽量不要写过长的语句【尽量不超过80字符】。如果语句过长,可以考虑拆分成多个短一些的语句,以保证代码具有较好的可读性。如果语句确实太长而超过屏幕宽度,最好使用续行符(linecontinuationcharacter)“\”,或者使用圆括号将多行代码括起来表示是一条语句。增加空行空格最好在每个类、函数定义和一段完整的功能代码之后增加一个空行,在运算符两侧各增加一个空格,逗号后面增加一个空格。Python基础知识《智能车Python编程设计》课程大纲输入输出print输出函数input输入函数标识符与关键字标识符关键字常量与变量常量变量Python数据类型基本数据类型数据类型转换运算符与表达式算术运算符关系运算符赋值运算符逻辑运算符位运算符成员运算符标识运算符运算符优先级表达式基本数据类型基本数据类型数字类型Python中包含三种数据类型整数类型浮点数类型复数类型在Python中,变量值数字类型是不可改变的基本数据类型整数类型开头是0X或0x,被认为是十六进制的常量。如0x22,表示的数是十进制的34开头是0O或0o,则被认为是八进制的常量。如0O22,表示的数是十进制的18开头是0B或0b,则被认为是二进制的常量。如0B1101,表示的数是十进制的13长整型长整型能表示的数的范围是无限的,只与机器的内存有关(Python很容易计算大数的阶乘!!!)可能是高精+动态分配内存在Python3.5中,只有一种整数类型:int基本数据类型浮点数类型整数部分和小数部分组成的数字Python语言中浮点数的数值范围存在限制,小数精度也存在限制。这种限制与在不同计算机系统有关Float_info结构序列用于展示float类型基本数据类型浮点数类型示例0.0,-77.,-2.17(整数和小数)96e4,4.3e-3,9.6E5(科学计数法)(注意:只要用E表示就是浮点类型)科学计数法使用字母“e”或者“E”作为幂的符号,以10为基数。科学计数法含义如下:<a>e<b>=a*10b注意:使用浮点数进行计算时,可能出现小数位数不确定的情况。基本数据类型复数类型与数学中的复数概念一致,z=a+bj,a是实数部分,b是虚数部分,a和b都是浮点类型,虚数部分用j或者J标识示例12.3+4j-5.6+7j基本数据类型复数类型z=1.23e-4+5.6e+89j(实部和虚部是什么?)对于复数z,可以用z.real获得实数部分,z.imag获得虚数部分z.real=0.000123z.imag=5.6e+89基本数据类型布尔类型布尔型(bool)即逻辑型,用于表示逻辑判断的结果。True---1False---00---False非0---True为空的数据序列、字符串、元组、字典、None等---FalseTrue+False---1基本数据类型布尔类型空值空值是Python中一个特殊的值,用None表示。它不支持任何运算,也没有任何内置函数方法。None和任何其他的数据类型比较永远返回False。基本数据类型布尔类型bool(X):将X转换为真or假print(bool(''),bool(0),bool({}),bool(None),bool([]),bool(()),bool(0.0)) FalseFalseFalseFalseFalseFalseFalseprint(bool('!'),bool(1),bool(2),bool('3'),bool('\n'),bool(-10),bool(-12.3)) TrueTrueTrueTrueTrueTrueTrue数据类型转换数字类型的判断函数:type(x),返回x的类型,适用于所有类型的判断示例:数据类型转换数字类型的转换数值运算操作符可以隐式地转换输出结果的数字类型例如,两个整数采用运算符“/”的除法将可能输出浮点数结果。通过内置的数字类型转换函数可以显式地在数字类型之间进行转换函数描述int(x)将x转换为整数,x可以是浮点数或字符串float(x)将x转换为浮点数,x可以是整数或字符串complex(re[,im])生成一个复数,实部为re,虚部为im,re可以是整数、浮点数或字符串,im可以是整数或浮点数但不能为字符串数据类型转换数字类型的转换三种类型可以相互转换函数:int(),float(),complex()示例:int(4.5)=4(直接去掉小数部分)float(4)=4.0(增加小数部分)complex(4)=4+0j(增加虚数部分)数据类型转换数字类型的转换int()#不传入参数时,得到结果0int(3) 3int(3.6)
3int('12',16)
#如果是带参数base的话,12要以字符串的形式进行输入,12为16进制18int('0xa',16)
10int('10',base=8)8注意:int(’12.5’)int(‘12’)基本输入/输出input()和print()是Python的基本输入输出函数,前者用来接收用户的键盘输入,后者用来把数据以指定的格式输出到标准控制台或指定的文件对象。不论用户输入什么内容,input()一律返回字符串对待,必要的时候可以使用内置函数int()、float()或eval()对用户输入的内容进行类型转换。基本输入/输出>>>x=input('Pleaseinput:')Pleaseinput:345>>>x'345'>>>type(x)#把用户的输入作为字符串对待<class'str'>>>>int(x)#转换为整数345>>>eval(x)#对字符串求值,或类型转换345基本输入/输出内置函数print()用于输出信息到标准控制台或指定文件,语法格式为:print(value1,value2,...,sep='',end='\n',file=sys.stdout,flush=False)value为需要输出的内容(可以有多个);sep参数用于指定数据之间的分隔符,默认为空格;end参数用于指定输出完数据之后再输出什么字符;基本输入/输出file=sys.stdout:设置输出设备,及把print中的值打印到什么地方,默认输出到准端,可以设置file=文件储存对象,把内容存到该文件中,如下:f=open(r'a.txt','w')print('pythonisgood',file=f)f.close()则把pythonisgood保存到a.txt文件中基本输入/输出flush=False:该参数主要是刷新,默认False,不刷新,Ture时刷新。正常情况下print到f中的内容先存到内存中,当文件对象关闭时才把内容输出到a.txt中,当flush=True时它会立即把内容刷新存到a.txt中。f=open(r'a.txt','w')print('pythonisgood',file=f,flush=True)PythonACM模式下的输入输出#输入为:1a=int(input())#单个转换#输入为:12345b=input().split()#b=['1','2','3','4','5']#使用map进行并行转换e=map(int,input().split())#此时e是一个map迭代器,不能赋值,也不能索引f=list(e)#转换为列表,e=[1,2,3,4,5]g=list(map(int,input().split()))#一步到位常量与变量
签到码:2158常量与变量常量常量指在程序的执行过程中不变的量,通常大写字面量1,2,3,4;1.1,1.2,1.0'abc',"Python"True,False符号常量frommathimport*pi#显示3.141592653589793e#显示2.718281828459045常量与变量保留字与标识符保留字是Python语言中已经被赋予特定意义的一些单词,开发程序时,不可以作为变量、函数、类、模块和其他对象的名称来使用。Python的标准库提供了一个keyword模块,可以输出当前版本的所有关键字:importkeyword
keyword.kwlist标识符(变量)第一个字符必须是字母表中字母或下划线
_
。标识符的其他的部分由字母、数字和下划线组成。标识符对大小写敏感。不能使用已有的关键字(保留字)常见保留字andasassertbreakclasscontinuedefdelelifelseexceptfinallyforfromFalseglobalifimportinislambdanonlocalnotNoneorpassraisereturntryTruewhilewithyield
常量与变量变量指向对象的值的名称就是变量变量是一个标识符,通过等号(=)赋值运算创建变量本身类型不固定----动态语言多个变量可以引用同一个对象,一个变量也可以引用不同的对象。引用不同的对象时,id也就不同的。Python采用基于值的内存管理方式,不同的值分配不同的存储空间常量与变量C语言中,定义一个变量,就是把值放到变量盒子里面去:如上图所示,赋值b=a,就是新建一个盒子,然后把值赋值一份放过去,特点是:两个值之间完全独立。常量与变量Python的变量就是贴标签!(类属性啥的都在变量自己内部保存着呢!)上面的a=2之后,1就没有归属了,就无法调用了,python的基于值的内存管理器很快就会把这个对象的内存给清理掉的。常量与变量id相同,就是相同的对象Python中的变量不需要声明可以随时赋不同类型的值当python变量不需要时,会自动回收内存空间常量与变量内存中的变量(查看内存地址id())(请画出存储示意图)a=5b=5c=5d=aa=6常量与变量#include<stdio.h>intmain(){intx=4;
printf("%p%d\n",&x,x);x=5;printf("%p%d\n",&x,x);return0;}常量与变量Python下的变量:不需要预先声明变量的类型,变量的类型和值在赋值的那一刻被初始化比如:x=5系统先是找了一块内存,将5存储了进去,紧接着x指向了当前的这块内存地址在python中,一开始初始化存储在内存的东西是不可以更改的,我们所能更改的只是它的指向,但是,在c中,对于int
x=
4;x的地址是定的,里面存储的东西可以更改。常量与变量运算符与表达式运算符与表达式算术运算符注:/、//、%三个运算符的除数都不能为0。运算符说明+算术加法,列表、元组、字符串合并与连接,正号-算术减法,集合差集,相反数*算术乘法,序列重复/真除法,结果为浮点数//求整商,但如果操作数中有实数的话,结果为实数形式的整数%求余数,字符串格式化**幂运算运算符与表达式关系运算符(比较运算符)两个值进行比较,运算结果为True或FalsePython关系运算符最大的特点是可以连用。使用关系运算符的一个最重要的前提是,操作数之间必须可比较大小。运算符说明>大于<小于>=大于等于<=小于等于==等于!=不等于运算符与表达式赋值运算符注意:赋值运算符(=)和关系运算符(==)运算符示例=c=2+=c+=2相当于c=c+2-=*=%=**=c**=2相当于c=c*c//=运算符与表达式逻辑运算符运算符与表达式逻辑运算符逻辑运算符and、or、not常用来连接条件表达式构成更加复杂的条件表达式,并且and和or具有惰性求值或逻辑短路的特点,当连接多个表达式时只计算必须要计算的值。注意:运算符and和or并不一定会返回True或False,而是得到最后一个被计算的表达式的值,但是运算符not一定会返回True或False。运算符说明and布尔“与”or布尔“或”not布尔“非”运算符与表达式位运算符正数的移位操作较为简单,即左移右移都只补零。负数先将其二进制按位取反加一,然后进行移位,符号位不变,左移则其后补零,右移则其前补1,然后按位取反加一。(操作的是补码)左移(<<):相当于乘以2;右移(>>):相当于除于2,7>>1(取得整除)运算符说明<<左移>>右移&按位与|按位或^按位异或~按位翻转/jniantic/p/12189648.html~x=-(x+1)运算符与表达式成员运算符成员运算符用于判断序列中是否有某个成员。运算符示例inxiny,x是y的成员,则为Truenotinx不是y的成员,则为True运算符与表达式标识运算符标识运算符is用于比较两个对象的内存位置。示例:运算符与表达式运算符优先级Python运算符有一套严格的优先级规则,但是强烈建议在编写复杂表达式时使用圆括号来明确说明其中的逻辑来提高代码可读性。类型运算符说明单目运算符~、+、-取反、正号和负号算术运算符*、/、%、//乘、除、求余+、-加、减位运算符<<、>>左移、右移&位与^位异或|位或比较运算符<、<=、>、>=、==、!=小于、小于等于、大于、大于等于、等于、不等于优先级从高到底运算符与表达式
Python程序控制结构《智能车Python编程设计》Python程序控制结构流程控制对于任何一门编程语言来说都是至关重要的,它提供了控制程序如何执行的方法。如果没有控制语句,整个程序将按照顺序依次执行,而不能根据用户的需求决定程序执行的顺序。本章将详细介绍Python中的流程控制内容,其中包含程序的三种控制结构、程序流程图、分支结构、循环结构等等。最后通过一系列的实例和项目实战帮助读者掌握Python编程语言中的流程控制语句。课程大纲基本的程序结构程序的流程图程序的基本结构分支结构单分支结构:if语句二分支结构:if…else语句多分支结构:if…elif…else语句if语句的嵌套pass语句循环结构无限循环:while语句遍历循环:for语句循环嵌套循环保留字:break和continuerandom库的使用random库的概述random库的解析程序的基本结构程序的基本结构三种控制结构程序流程图程序的基本结构程序的流程图程序流程图用一系列图形、流程线和文字说明描述程序的基本操作和控制流程,它是程序分析和过程描述的最基本方式。流程图的基本元素包括7种:程序的基本结构流程图的基本元素汇总程序的基本结构程序流程图示例:由连接点A连接的一个程序
程序的基本结构程序流程图示例程序的基本结构程序的基本结构顺序结构是程序的基础,但单一的顺序结构不可能解决所有问题。程序由三种基本结构组成:顺序结构分支结构(选择)循环结构这些基本结构都有一个入口和一个出口。任何程序都由这三种基本结构组合而成。程序的基本结构顺序结构是程序按照线性顺序依次执行的一种运行方式,其中语句块1和语句块2表示一个或一组顺序执行的语句。程序的基本结构分支结构是程序根据条件判断结果而选择不同向前执行路径的一种运行方式,包括单分支结构和二分支结构。由二分支结构会组合形成多分支结构。程序的基本结构循环结构是程序根据条件判断结果向后反复执行的一种运行方式,根据循环体触发条件不同,包括条件循环和遍历循环结构。程序的基本结构对于一个计算问题,可以用IPO描述---->流程图描述或者直接以Python代码方式描述。示例:求圆的周长和面积步骤1:(I)输入:圆半径R(P)处理:圆面积:S=π*R*R圆周长:L=2*π*R(O)输出:圆面积S、周长LR=eval(input("请输入圆半径:"))S=3.1415*R*RL=2*3.1415*Rprint("面积和周长:",S,L)问题IPO描述流程图描述Python代码描述程序的基本结构IPO描述主要用于区分程序的输入输出关系,重点在于结构划分,算法主要采用自然语言描述流程图描述侧重于描述算法的具体流程关系,流程图的结构化关系相比自然语言描述更进一步,有助于阐述算法的具体操作过程Python代码描述是最终的程序产出,最为细致。程序的基本结构练习用三种描述方法表示以下问题1.实数绝对值的计算。-33-102.求1+2+3+…+100的和。IPO问题描述、流程图描述不写程序,用IPO、程序流程图分支结构分支结构单分支结构:if语句Python中if语句的语法格式如下:if表达式:
语句块语句块是if条件满足后执行的一个或多个语句序列语句块中语句通过与if所在行形成缩进表达包含关系if语句首先评估<条件>的结果值,如果结果为True,则执行语句块里的语句序列,然后控制转向程序的下一条语句。如果结果为False,语句块里的语句会被跳过。分支结构if语句中语句块执行与否依赖于条件判断。但无论什么情况,控制都会转到if语句后与该语句同级别的下一条语句
if语句的控制流程图
分支结构if语中<条件>部分可以使用任何能够产生True或False的语句形成判断条件最常见的方式是采用关系操作符Python语言共有6个关系操作符操作符数学符号操作符含义<<小于<=≤小于等于>=≥大于等于>>大于===等于!=≠不等于分支结构示例1:输入一个整数判读该整数是否大于6,若大于6,输出该整数大于6;否则直接退出。a=input(“请输入一个整数:”)a=int(a)ifa>6: print(a,“大于6”)分支结构二分支结构:if…
else语句Python中if-else语句用来形成二分支结构,语法格式如下:if表达式:
语句块1else:
语句块2<语句块1>是在if条件满足后执行的一个或多个语句序列<语句块2>是if条件不满足后执行的语句序列二分支语句用于区分<条件>的两种可能True或者False,分别形成执行路径分支结构if…
else语句流程图分支结构示例2:对示例1进行修改,输入一个整数判读该整数是否大于6,若大于6,输出该整数大于6;否则输出该整数小于或等于6。a=input(“请输入一个整数:”)a=int(a)ifa>6: print(a,“大于6”)else: print(a,“小于或等于6”)分支结构(单分支和二分支)练习1:输入一个年份,判断是否为闰年。闰年必须满足以下两个条件之一:(1)能被4整除,但不能被100整除的年份都是闰年。(2)能被400整除的年份都是闰年。练习2:任意输入3个数字,按从小到大的顺序输出。答案x=int(input("第一个数:"))y=int(input("第二个数:"))z=int(input("第三个数:"))ifx>y:x,y=y,xifx>z:x,z=z,xify>z:y,z=z,yprint(x,y,z)分支结构多分支结构:if…elif…else语句Python的if-elif-else描述多分支结构,语句格式如下:if<条件1>:<语句块1>elif<条件2>:<语句块2>...else:<语句块N>分支结构多分支结构是二分支结构的扩展,这种形式通常用于设置同一个判断条件的多条执行路径。Python依次评估寻找第一个结果为True的条件,执行该条件下的语句块,同时结束后跳过整个if-elif-else结构,执行后面的语句。如果没有任何条件成立,else下面的语句块被执行。else子句是可选的。分支结构示例3:对上面示例再次修改,输入一个整数判读该整数是否大于6,若大于6,输出该整数大于6;若该整数等于6则输出该整数等于6;否则输出该整数小于6。a=input(“请输入一个整数:”)a=int(a)ifa>6: print(a,“大于6”)elifa==6: print(a,“等于6”)
else: print(a,“小于6”)分支结构if语句的嵌套前面讲过的3种选择语句之间都可以嵌套。
分支结构if语句的嵌套分支结构pass语句Python提供一个关键字pass,类似于空语句,可以用在类和函数的定义中或者选择结构中。当暂时没有确定如何实现功能,或者为以后的软件升级预留空间,或者为其他类型功能时,可以使用该关键字来“占位”。示例:
ifa<b: pass#什么操作也不做 else: z=acalssA:#类的定义passdefdemo():#函数的定义pass分支结构练习1:输入学生成绩S,按分数输出其等级,S≥90为优,90>S≥80为良,80>S≥70为中等,70>S≥60为及格,S<60为不及格。练习2:使用嵌套语句完成练习1。练习3:判断支付密码的输入数字是否合法。练习2参考grade=int(input('请输入你的成绩:'))ifgrade>=90:print('优')else:ifgrade<90andgrade>=80:print('良')else:ifgrade<80andgrade>=70:print('中等')else:ifgrade<70andgrade>=60:print('及格')else:print('不及格')循环结构循环结构无限循环:while语句无限循环一直保持循环操作直到特定循环条件不被满足才结束,不需要提前知道确定循环次数。Python通过保留字while实现无限循环,使用方法如下:while判断条件:
执行语句
循环结构无限循环也有一种使用保留字else的扩展模式:while<判断条件>:<语句块1>else:<语句块2>循环结构示例:求1+2+3…+100。(扩展1+2…+n) Sum=0 counter=1 whilecounter<=100: Sum=Sum+counter counter+=1 print(“1到100之和为:”,Sum)
循环结构练习:输入两个整数,用“辗转相除法”求它们的最大公约数。(1)比较两数,并使m大于n。(2)将m作被除数,n作除数,相除后余数为r。(3)循环判断r,若r=0,则n为最大公约数,结束循环。若r≠0,执行mn,nr
;将m作被除数,n作除数,相除后余数为r。思路分析step1:将两数中大的那个数放在m中,小的放在n中。 step2:求出m被n除后的余数r。 step3:若余数为0则执行步骤(7),否则执行步骤(4)。 step4:把除数作为新的被除数;把余数作为新的除数。 step5:求出新的余数r。 step6:重复步骤(3)到(5)。 step7:输出n,n即为最大公约数。参考答案参考m,n=map(int,input("请输入两个数:").split(","))#输入两个数用逗号分开ifm<n:#如果m比n小,互换m和n的位置
m,n=n,mr=m%n#求出m除n的余数whiler:#如果余数不为0,进行循环
m=n#把n赋值给mn=r#把r赋值给nr=m%n#求余数print(f"最大公约数是{n}")#输出n,即为最大公约数循环结构遍历循环:for语句for语句可以遍历任何序列的项目,如一个列表、元组或者一个字符串。for循环的语法格式如下:for
循环索引值in
序列:
循环体
for语句的执行过程:每次循环,判断循环索引值是否还在序列中,如果在,取出该值提供给循环体内的语句使用;若果不在,则结束循环。循环结构示例1:for循环把字符串中的字符遍历出来。循环结构示例2:for循环把列表中的元素遍历出来。循环结构Python的range()内置函数可以生成一个整数序列,通过list()函数可以转换为list列表。循环结构示例:循环结构练习:使用range()函数的for循环求1+2+3…+100的和。循环结构循环嵌套Python语音允许在一个循环体中嵌入另一个循环。While循环中可以嵌入for循环,也可以在for循环中嵌入while循环。双层循环是一种常见的循环嵌套,循环的次数等于内外层循环次数之积。示例:注意:1.循环嵌套时,外层循环和内层循环是包含关系,即内层循环必须被完全包含在外层循环中。2.程序每执行一次外层循环,则其内层循环必须循环所有的次数后,才能进入到外层循环的下一次循环。循环结构循环保留字:break和continue循环结构有两个辅助保留字:break和continue,它们用来辅助控制循环执行break用来跳出最内层for或while循环,脱离该循环后程序从循环后代码继续执行。示例:其中,break语句跳出了最内层for循环,但仍然继续执行外层循环。每个break语句只有能力跳出当前层次循环Python中的循环控制保留字有两个:continue和break。continue用于终止当前轮次的循环,本轮循环中后面的语句将不会被执行,提前执行下一轮循环。break用于退出本层循环,继续执行循环外后面的语句。循环结构continue用来结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。对于while循环,继续求解循环条件。而对于for循环,程序流程接着遍历循环列表对比continue和break语句,如下:循环结构continue语句和break语句的区别是:continue语句只结束本次循环,而不终止整个循环的执行。break语句则是结束整个(当前的)循环过程,不再判断执行循环的条件是否成立。循环结构for循环和while循环中都存在一个else扩展用法。else中的语句块只在一种条件下执行,即for循环正常遍历了所有内容没有因为break或return而退出。continue保留字对else没有影响。示例:循环结构
九九乘法口诀表参考答案练习1foriinrange(1,10):forjinrange(1,i+1):print('{0}*{1}={2}'.format(i,j,i*j),end='\t')print(end='\n’)参考答案练习2foriinrange(100,1000):b=int(i/100)s=int(i%100/10)g=int(i%10)ifb**3+s**3+g**3==i:print(i)参考答案练习3和练习4forxinrange(1,5):foryinrange(1,5):forzinrange(1,5):if(x!=y)and(y!=z)and(x!=z):print('{0}{1}{2}'.format(x,y,z))random库的使用random库的使用random库概述随机数在计算机应用中十分常见,Python内置的random库主要用于产生各种分布的伪随机数序列。random库采用梅森旋转算法(Mersennetwister)生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。使用random库主要目的是生成随机数,因此,读者只需要查阅该库的随机数生成函数,找到符合使用场景的函数使用即可。这个库提供了不同类型的随机数函数,所有函数都是基于最基本的random.random()函数扩展而来。random库的使用random库解析函数描述seed(a=None)初始化随机数种子,默认值为当前系统时间random()生成一个[0.0,1.0)之间的随机小数randint(a,b)生成一个[a,b]之间的整数getrandbits(k)生成一个k比特长度的随机整数randrange(start,stop[,step])生成一个[start,stop)之间以step为步数的随机整数uniform(a,b)生成一个[a,b]之间的随机小数choice(seq)从序列类型(例如:列表)中随机返回一个元素shuffle(seq)将序列类型中元素随机排列,返回打乱后的序列sample(pop,k)从pop类型中随机选取k个元素,以列表类型返回random库的使用导入使用importrandom或fromrandomimport*示例:random库的使用生成随机数之前可以通过seed()函数指定随机数种子,随机种子一般是一个整数,只要种子相同,每次生成的随机数序列也相同。这种情况便于测试和同步数据。示例:Python容器(1)--字符串《智能车Python编程设计》课程大纲Python容器简述字符串简介字符串简介字符串编码
转义字符转义字符简介不同的转义字符格式化字符串字符串常用操作创建、访问字符串截取字符串拼接字符串计算字符串的长度分割字符串合并字符串检索字符串字符串类型的转换内置字符串处理函数Python容器简述Python容器简述1.为什么需要数据容器?假设你是一位老师,你现在需要用程序记录班上3名学生的信息,你需要怎么做呢?可能有人会说,可以直接定义3个字符串变量,如下代码:name1="学生1"name2="学生2"name3="学生3“这种方法虽然可以满足我们的需求,但是写起来很麻烦,这里只有3名学生的信息,那要是有1000个呢?难道我们要定义1000个变量吗?这显然是不现实的。那有什么办法能解决此问题吗?当然有,这就要谈起我们数据容器了,比如我们定义一个列表(list)来存储。my_list=["学生1","学生2","学生3"]只用一个变量接收多份数据,可知Python数据容器具有组织数据的作用Python容器简述1.什么是数据容器?Python数据容器具有组织数据的作用数据容器就是一种可以存储多份数据的数据类型,数据容器内的数据被称为元素,元素可以是任意数据类型(字符串、整数、布尔等),数据容器分为5类,分别是:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)。Python中的容器主要分为两种:序列和映射。Python容器简述有序序列无序序列列表元组字符串字典集合range、zip、map、enumerate等可变序列不可变序列序号数据结构(类型)定义符号是否可变是否重复是否有序1字符串(str)‘’\””\’’’’’’\””””””不可变可重复有序2列表(list)[]可变可重复有序3元组(tuple)()不可变可重复有序4字典(dict){key:value}可变可重复无序5集合(set){}、空集合set()可变不可重复无序字符串简介字符串简介字符串或串(String)是由数字、字母、下划线组成的一串字符。一般记为s=“a1a2…an”(n>=0)。它是编程语言中表示文本的数据类型。在程序设计中,字符串(string)为符号或数值的一个连续序列,如符号串(一串字符)或二进制数字串(一串二进制数字)。字符串在存储上类似字符数组,它每一位单个元素都是能提取的。字符串简介字符串简介在Python中,字符串属于不可变有序序列,使用单引号、双引号、三单引号或三双引号作为定界符,并且不同的定界符之间可以互相嵌套。Python中不支持字符类型,统一都用字符串。Python中单字符也作为字符串使用例如:Var1=‘helloworld’Var2=“helloworld”字符串编码字符串编码Python3的
默认编码
为Unicode,可以识别中文字符。最早的字符串编码是美国标准信息交换码ASCII,仅对10个数字、26个大写英文字母、26个小写英文字母及一些其他符号进行了编码。ASCII码采用1个字节来对字符进行编码,最多只能表示256个符号(含扩展码)。GB2312是我国制定的中文编码,使用1个字节表示英语,2个字节表示中文;GBK是GB2312的扩充,而CP936是微软在GBK基础上开发的编码方式。GB2312、GBK和CP936都是使用2个字节表示中文。字符串编码字符串编码UTF-8对全世界所有国家需要用到的字符进行了编码,以1个字节表示英语字符(兼容ASCII),以3个字节表示中文,还有些语言的符号使用2个字节(例如俄语和希腊语符号)或4个字节。不同编码格式之间相差很大,采用不同的编码格式意味着不同的表示和存储形式,把同一字符存入文件时,写入的内容可能会不同,在试图理解其内容时必须了解编码规则并进行正确的解码。如果解码方法不正确就无法还原信息,从这个角度来讲,字符串编码也具有加密的效果。字符串编码以Unicode表示的str通过encode()方法可以编码为指定的bytes>>>'ABC'.encode('ascii')b'ABC'>>>'中文'.encode('utf-8')b'\xe4\xb8\xad\xe6\x96\x87'>>>'中文'.encode('ascii')Traceback(mostrecentcalllast):File"<stdin>",line1,in<module>UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposition0-1:ordinalnotinrange(128)字符串编码将编码转为字符在bytes中,无法显示为ASCII字符的字节,用\x##显示。反过来,如果我们从网络或磁盘上读取了字节流。那么读到的数据就是bytes。要把bytes变为str,就需要用decode()方法:>>>b'ABC'.decode('ascii')'ABC'>>>b'\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8')'中文'转义字符转义字符简介转义字符是一种特殊的字符常量。转义字符以反斜线"\"开头,后跟一个或几个字符。转义字符具有特定的含义,不同于字符原有的意义,故称“转义”字符。转义字符Python语言转义符:\输出带有引号的字符串,可以使用转义符“\”你好\””使用\\输出带有转移符的字符串例如:转义字符不同的转义字符转义字符说明\续行符\n换行符\0空\t水平制表符,用于横向跳到下一制表位\”双引号\’单引号\\一个反斜杠\f换页\0dd八进制数,dd代表的字符,如\012代表换行\xhh十六进制数,hh代表的字符,如\x0a代表换行转义字符用转义符可以在字符串中表达一些不可直接打印的信息例如:用\n表示换行字符串"Hello\nWorld\n\nGoodbye32\n"用print()函数打印后的输出效果如下:HelloWorldGoodbye32转义字符为了避免对字符串中的转义字符进行转义,可以使用原始字符串,在字符串前面加上字母r或R表示原始字符串,其中的所有字符都表示原始的含义而不会进行任何转义则该字符串原样输出。思考:为了确保网址(/jishipeng/article/details/)有效,可以如何处理。格式化字符串1.使用“%”操作符语法格式:‘%[-][+][0][m][.n]格式化字符’%exp-:指定左对齐 +:对正数加正号0:表示用0填充空白处,与m一起用m:表示占有宽度 .n:表示小数点后保留位数格式化字符:指定类型exp:要转换的项格式化字符串例格式化字符串常见的数字向字符串格式化符号描述%c格式化字符及其ASCII码%s格式化字符串%d格式化整数%u格式化无符号整型%o格式化无符号八进制数%x格式化无符号十六进制数%X格式化无符号十六进制数(大写)%f格式化浮点数字,可指定小数点后的精度%e用科学计数法格式化浮点数%E作用同%e,用科学计数法格式化浮点数%g%f和%e的简写%G%F和%E的简写%p用十六进制数格式化变量的地址格式化字符串常见的数字向字符串格式化转换字符串表示的含义%[m]s将字符串写入宽为m的串%[m]d将整数写入宽为m的串%[m.n]f将实数写入宽为m的串(其中有n位小数)%[.n]e将实数按科学计数法写入串(其中有n位小数)%%将一个百分号写入串%c格式化字符%d格式化十进制整数%x格式化十六进制数格式化字符串2.使用字符串对象的format()方法语法格式:str.format(args)str:用于指定字符串的显示样式(模板)arg:指定要转换的项,多项用逗号分隔格式化字符串Python2.6开始,新增了一种格式化字符串的函数str.format(),它增强了字符串格式化的功能。相对于老版的%格式方法,它有很多优点。1.在%方法中%s只能替代字符串类型,而在format中不需要理会数据类型;2.单个参数可以多次输出,参数顺序可以不相同;3.填充方式十分灵活,对齐方式十分强大;4.官方推荐用的方式,%方式将会在后面的版本被淘汰。格式化字符串1、位置参数格式化2、关键字参数格式化3、混合参数。需要主要,混合参数中,#混合参数传参。注意位置参数必须连续(从0开始)。格式化字符串4、输出{},避免{}被作为参数符号。原样输出5、冒号作为格式化开始位置注意:当一个模板中出现多个占位符时,指定索引位置的规范需要统一,要不全部手动指定,要不全部自动例如:”我是数值:{:d},我是字符串:{1:s}”错误格式化字符串多种类型的数字格式化格式化字符串格式化不同数值类型格式化字符串
f-string2015年
python3.6根据PEP498新添加的一种字符串格式化方法,f-string实际上是在运行时计算的表达式,而不是常量值。f-string是文字字符串,前缀为’f’,其中包含大括号内的表达式。表达式会将大括号中的内容替换为其值。name="zings"print(f'mynameis{name}')
字符串常用操作字符串常用操作字符串是一个字符序列:字符串最左端位置标记为0,依次增加。字符串中的编号叫做“索引”字符串常用操作创建、访问字符串单个索引辅助访问字符串中的特定位置格式为<string>[<索引>]示例:
字符串常用操作字符串索引从0开始,一个长度为L的字符串最后一个字符的位置是L-1Python同时允许使用负数从字符串右边末尾向左边进行反向索引,最右侧索引值是-1。示例:字符串常用操作截取字符串
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年山西省政法管理干部学院马克思主义基本原理概论期末考试模拟试卷
- 2025年山东艺术设计职业学院马克思主义基本原理概论期末考试笔试真题汇编
- 浙江省台州市十校联盟2025-2026学年高二上学期11月期中联考政治试题
- 江西氨化学有限公司人力资源对策研究
- 康力电梯培训课件
- 红宝石李电商方案
- 酒店客房管理方案
- 应急机动护士培训
- 国际贸易供应链管理合同协议2026
- 信息技术合同与项目管理制度
- 2022资源环境承载能力和国土空间开发适宜性评价技术指南
- 电气工程师生涯人物访谈报告
- 职位调动申请表模板
- 2022年内蒙古交通运输厅所属事业单位考试真题及答案
- 选词填空(试题)外研版英语五年级上册
- 露地胡萝卜秋季栽培
- 历年天津理工大学高数期末考试试卷及答案
- 妇产科学(第9版)第二章女性生殖系统解剖
- 中医经络之-特定穴课件
- GB/T 9122-2000翻边环板式松套钢制管法兰
- GB/T 16895.6-2014低压电气装置第5-52部分:电气设备的选择和安装布线系统
评论
0/150
提交评论