人工智能导论 课件汇 江南 9.1程序设计基础知识-11.8-9 异常处理-综合实践_第1页
人工智能导论 课件汇 江南 9.1程序设计基础知识-11.8-9 异常处理-综合实践_第2页
人工智能导论 课件汇 江南 9.1程序设计基础知识-11.8-9 异常处理-综合实践_第3页
人工智能导论 课件汇 江南 9.1程序设计基础知识-11.8-9 异常处理-综合实践_第4页
人工智能导论 课件汇 江南 9.1程序设计基础知识-11.8-9 异常处理-综合实践_第5页
已阅读5页,还剩233页未读 继续免费阅读

下载本文档

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

文档简介

9.1程序设计基础知识人工智能123程序设计的基本概念程序设计发展历史和未来趋势程序设计基本思路与流程课程名列表一、程序设计的基本概念程序设计定义3计算机程序设计是以某种程序设计语言为工具,给出解决某一特定问题的计算机程序的过程。现代汉语词典里对“程序”的解释是事情进行的先后次序。我国2016版国家标准《质量管理体系基础和术语》中对于“程序”的定义是为进行某项活动或过程所规定的途径。程序是为实现预期目的而进行操作的一系列语句和指令。上述不论是哪一种解释,都蕴涵着为完成某件事情而要经历的方法流程。而本书中所说的程序则专指计算机程序。程序设计定义4计算机俗称电脑,是一种能够自动、高速处理海量数据的现代化智能电子设备,具有存储记忆功能。计算机之所以能够自动处理数据正是因为其中存储了相应的控制程序,使用时通过程序指挥计算机的各个部分协同工作完成数据处理工作。所谓计算机程序,是指使用特定语言编写的,运行在计算机上的一组能够指挥计算机完成某种工作指令的集合。程序设计定义5程序设计是给出解决特定问题程序的过程,是软件构造活动中的重要组成部分。程序需要使用某种特定的程序设计语言作为工具进行编写,因此程序设计的学习必须借助于一种程序设计语言,例本书所采用的程序设计语言即为Python语言。程序设计过程应当包括分析、设计、编码、测试、排错等不同阶段。在计算机科学中,程序设计是指按照任务需要,设计数据结构与算法,编写代码并测试其正确性,得到正确运行结果的过程。程序设计方法学是程序设计应遵循一定的方法与原则,养成良好的编程风格。程序设计范型0102030405程序设计范型函数式编程范型逻辑编程范型事件驱动编程范型面向对象的程序设计范型面向过程的程序设计范型列表二、程序设计发展历史和未来趋势发展历史81.早期程序设计语言机器语言——调试符号系统——汇编器——汇编语言高级语言——编译器/解释器例如,指令:把寄存器5的内容送入寄存器6可用机器语言表示为:4056而使用助记符系统时,可以表示为:MOVR5,R6未来趋势901声明式编程与DSL关于声明式的编程风格,主要包含两个方面,第一个方面是DSL(DomainSpecificLanguage,领域特定语言)。如SQL,CSS,正则表达式等等都属于DSL。与之相对的则是GPPL(GeneralPurposeProgrammingLanguage,通用目的编程语言)动态语言不会严格区分“编译时”和“运行时”。02动态语言与元编程03函数式编程函数式编程十分容易并行,因为它在运行时不会修改任何状态,因此无论多少线程在运行时都可以观察到正确的结果。将一个逻辑上的任务放在多个CPU上执行04并发列表三、程序设计基本思路与流程程序设计基本思路11问题分析算法设计程序编写程序调试升级维护0102030405程序设计基本思路12自然语言、流程图、伪代码、PAD图等,其中较为常用的是传统算法流程图程序设计基本流程1390程序设计基本流程编码测试维护需求分析概要设计详细设计谢谢大家书山有路勤为径,学海无涯苦作舟9.Python介绍人工智能1234Python概述Python发展历史5Python适用场景Python特点及优势作业与任务课程名Python概述17编程语言类型C语言、C++语言和Java语言等编译型语言Perl、Ruby、JavaScript和Python等解释型语言更快的运行速度和更友好的调试环境。平台独立性列表一、Python发展历史Python发展历史19Python的创始人:GuidovanRossum(吉多·范罗苏姆)Python发展历史Pascal、C、FortranUNIX以及Linux操作系统ShellABC全面高效Python发展历史211989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。之所以选Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫MontyPython的喜剧团体的爱好者。Python发展历史22ABCC程序Python发展历史23计算能力Python2.X存储能力处理能力互联网简单易用Python3.X列表二、Python适用场景Python适用场景2501Web开发Django、Tornado、Flask02数据分析NumPy、Pandas03Web爬虫Scrapy、BeautifulSoup04数据库操作SQLAlchemy、DjangoORM05人工智能TensorFlow、PyTorch06自动化测试Selenium、RobotFramework07游戏开发Tkinter、Pygame08科学计算SciPy、NumPyPython适用场景261.Web开发Django、Flask、Tornado等Web框架的选择PythonWeb框架提供了表单处理的功能表单处理Web框架提供了路由和URL处理的功能路由和URL处理DjangoRESTframework、Flask-RESTfulRESTfulAPI的开发Jinja2、Mako模板引擎的使用CSRF防护、XSS防护Web安全SQLAlchemy、DjangoORM数据库操作Gunicorn、uWSGIWeb部署Python适用场景272.数据分析NumPy、Pandas等数据处理Tensorflow、Keras、PyTorch深度学习Matplotlib、Seaborn等数据可视化NLTK、spaCy自然语言处理SciPy、Statsmodels等统计分析Scikit-Learn机器学习Python适用场景283.Web爬虫Scrapy、BeautifulSoup、Selenium爬虫框架代理IP、模拟浏览器行为反爬机制爬虫框架提供了URL处理的功能URL处理并发控制的功能,可以同时处理多个请求并发控制HTML解析库有BeautifulSoup、lxmlHTML解析SQLAlchemy、DjangoORM存储数据库有XPath、CSS选择器数据提取Python适用场景294.数据库操作MySQLdb、psycopg2、sqlite3数据库连接要对表进行索引和优化索引和优化查询、插入、更新、删除等SQL语句编写Python数据库连接库提供了相应的接口来调用这些功能存储过程和触发器Python数据库连接库提供了相应的接口来处理这些差异数据类型和约束考虑安全性和权限管理的问题安全性和权限管理Python数据库连接库提供了事务处理的接口事务处理Python适用场景305.人工智能Scikit-learn机器学习库卷积神经网络、循环神经网络等神经网络数据清洗、特征提取、归一化等。NumPy、Pandas等数据预处理Python提供了多种强化学习库,如DQN、A3C强化学习交叉验证、网格搜索模型选择和调优NLTK、spaCy等自然语言处理TensorFlow、PyTorch等深度学习框架Python适用场景316.自动化测试nittest、pytest、nose等测试框架选择多线程、多进程等并发控制断言、参数化测试测试用例编写Jenkins、TravisCI等持续集成Faker、DataFactory测试数据管理HTMLTestRunner、unittest-xml-reporting等测试报告生成Python适用场景327.游戏开发Pygame、Panda3D、Godot游戏引擎选择机器学习、神经网络等AI编写如事件处理、状态机等游戏逻辑编写Pygame、OpenCV等音频和视频处理Pygame、Tkinter等游戏界面设计Pygame-Multiplayer、Pyglet-Multiplayer等多人游戏开发Pymunk、Chipmunk等物理引擎Python适用场景338.科学计算多维数组对象和数学函数库NumPy各种机器学习算法和工具Scikit-learn各种科学计算工具和算法SciPy深度学习的开源框架TensorFlow绘制各种图表和可视化效果Matplotlib基于TensorFlow的高级神经网络APIKeras数据处理和分析的库Pandas列表三、Python特点及优势Python特点及优势35Python特点使用缩进来表示代码块语法简洁从科学计算到数据处理中的大量任务通用灵活语法结构清晰明了,容易被其他人阅读和理解。可读性强标准库功能强大,开源社区也提供了大量的第三方包类库多样很容易地进行功能扩展开放扩展使用类和对象来组织和管理代码面向对象开源社区开源共享可以在多个操作系统上运行跨平台性Python特点及优势36Python优势Python的语法简洁明了,易于理解和学习,因此可以大大提高开发效率开发效率高Python可以通过编写扩展模块来扩展其功能。可扩展性强Python在各个领域都有广泛的应用,包括Web开发、数据分析、人工智能、机器学习等。应用广泛Python有一个庞大的社区,其中有许多优秀的开发者和用户。社区活跃由于Python可以在多个操作系统上运行,因此它的可移植性很强。可移植性强谢谢大家书山有路勤为径,学海无涯苦作舟Python编程基础公共基础课-《人工智能导论》1Python运行原理及开发环境Python基本语法Python编程基础Python基本数据类型Python运算符Python流程控制结构文件操作模块化编程异常处理综合实践23456789Python编程基础一、Python运行原理及开发环境Python运行原理41编译型语言由编译型语言编写的源程序需要经过编译、汇编和链接才能输出目标代码,然后机器执行目标代码,得出运行结果,目标代码由机器指令组成,一般不能独立运行。C、C++、Pascal等都是编译实现的。Python运行原理42解释型语言解释型语言的实现中,翻译器并不产生目标机器代码,而是产生易于执行的中间代码,由解释器解释执行。解释型语言的每条语言一般只有在执行才被翻译,每执行一次就翻译一次,因而效率低下。Python运行原理43Python语言Python语句的执行方式是由解释器来解释执行每条语句,不需要编译成二进制代码,它可以直接从源代码运行程序。当运行Python文件程序的时候,Python解释器把源代码转换成中间形式:字节码,然后再由Python虚拟机来执行这些字节码。每次运行时都要转换成字节码,然后再由虚拟机把字节码转换成机器语言,最后在硬件上运行。每次运行都会多出两道工序,性能较低。由于不用关心程序的编译以及库的连接等问题,所以开发工作会变得更轻松;同时虚拟机距离物理机器更远了,更加易于移植。开发环境简介44开发环境简介集成开发环境(IntegratedDevelopmentEnvironment)简称IDE,是一种辅助程序开发人员进行开发工作的应用软件,在开发工具内部就可以辅助编写代码,并编译打包成为可用的程序,有些甚至可以设计图形接口。开发环境简介45开发环境简介课程使用Anaconda软件,便捷获取包且对包能够进行管理,同时对环境可以统一管理的发行版本。Anaconda包含了conda、Python在内的超过180个科学包及其依赖项。平台中的JupyterNotebook组件是一个交互性良好的编程环境,操作界面简洁,使用方便。安装Anaconda46下载登录网址,进入官网,/,点击download下载Anaconda应用程序安装Anaconda47下载选择适合自己电脑的版本安装Anaconda48安装双击安装程序进行安装。单击“Next”开始安装,选择“IAgree”同意安装协议。安装Anaconda49安装用户选择类型选择,建议为所有用户安装,选择一个安装路径,然后单击“Next”。安装Anaconda50安装选择将Anaconda作为默认Python,并单击“Install”,等待安装完成。安装Anaconda51安装安装完成,单击“Next”,安装成功,单击“Finish”。安装Anaconda52安装打开开始菜单,找到Anaconda3文件夹,打开后选择Spyder,新建一个Python文件就可以开始Python之旅。Python编程基础二、Python基本语法第一个Python程序541.运行Spyder程序“开始”菜单中找到安装的Anaconda,在展开的选项中单击“Spyder”。(1)左侧边栏显示行号,并显示当前文件中存在的任何代码分析警告(2)滚动条允许在文件中进行垂直和水平导航(3)上下文(右键单击)菜单显示与所单击内容相关的操作(4)选项菜单(右上角的“汉堡”图标)包括与编辑器相关的有用设置和操作。(5)编辑器窗格顶部的位置栏显示当前文件的完整路径。(6)选项卡栏显示所有打开的文件的名称。第一个Python程序552.运行一个简单的Python程序打开Spyder程序,系统会默认带出上次编辑的文件,如果是第一次编写会弹出未保存的untitled.py文件。先单击“保存”按钮,或者用“Ctrl+S”快捷键保存文件到指定路径第一个Python程序562.运行一个简单的Python程序设置完文件保存路径后,在编辑框中输入代码:print(“HelloWorld!”);单击运行按钮,或使用快捷键“F5”即可运行代码,若代码有错误,可以根据提示信息进行调试。运行结果“HelloWorld!”显示在右侧IpythonConsole框内。第一个Python程序572.运行一个简单的Python程序设置完文件保存路径后,在编辑框中输入代码:print(“HelloWorld!”);单击运行按钮,或使用快捷键“F5”即可运行代码,若代码有错误,可以根据提示信息进行调试。运行结果“HelloWorld!”显示在右侧IpythonConsole框内。行与缩进58Python的代码块不使用大括号{}来控制类,函数以及其他逻辑判断。Python最具特色的就是用缩进来写模块。缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。多行语句59多行语句包括多行一个语句和一行多个语句。一般情况下是一行写完一条语句,但是如果语句太长,就会使得语句冗长不美观,通过反斜杠(\)可以实现一个长语句的换行,又不至于被机器识别成多个语句。多行语句60Python中在[]、{}、()里面的多行语句在换行时是不需要使用多行连接符反斜杠(\)的。多行语句61一行多个语句通常在短语句中应用比较广泛,使用分号(;)对多个短语句实现隔离,就可以在同一行实现多个语句。注释62注释用于为程序添加说明性的文字,以提升程序的可读性。代码会告诉程序的读者怎么做,注释会告诉其为何是这样。这样对程序的读者非常有用,他们可以很容易地理解程序是做什么的。在Python程序运行时,注释会被自动忽略。Python注释有单行注释和多行注释。注释63注释不必是解释代码的文本,它也可以用来阻止Python执行代码,下面代码中第一个print函数就被注释掉,程序运行时不再执行。单行注释注释64在实际应用中,常常会有多行注释的需求。多行注释可以在每一行前加#号,也可以使用三个单引号'''或双引号"""。多行注释变量65变量是存放在计算机内存中的值,由变量名、赋值符号(=)、变量值构成。当变量定义的时候,会在内存中申请一块空间专门用来存放变量值,而变量名,就是这个空间的门牌号(地址),能方便的找到这块内存空间。如name=“Mike”,在Python执行该语句时包含以下三个步骤:步骤一、创建表示字符串类型Mike的对象。在Python中所有数据都是以对象形式存在的。步骤二、检查变量名name在内存中是否存在,若不存在则创建它。步骤三、建立变量名name和对象“Mike”之间的关系,可以看到变量名和变量值之间的标识符Id(地址)是相同的,Python通过变量名来操作具体的变量值对象(对象)。变量的基本定义变量66变量名只能包含字母、数字和下划线(A-z、0-9和_)。变量名不能以数字开头。例如,可将变量命名为top_1,但不能将其命名为1_top。变量名区分大小写,name、Name、NAME分别表示三个不同的变量。不要将Python保留字和已有标识符用作变量名,常用的保留字如表11-2中所示。变量名应既简洁又顾名思义。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。变量的命名规则变量67保留字变量68变量的赋值Python中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量名、和数据信息。每个变量在使用前都必须赋值,等号(=)用来给变量赋值,创建变量、建立变量到对象的引用。Python语言支持多种格式的赋值语句,包括简单赋值、序列赋值、多目标赋值和增强赋值等。变量69变量的赋值Python中的变量赋值不需要类型声明。每个变量在内存中创建,都包括变量名、和数据信息。每个变量在使用前都必须赋值,等号(=)用来给变量赋值,创建变量、建立变量到对象的引用。Python语言支持多种格式的赋值语句,包括简单赋值、序列赋值、多目标赋值和增强赋值等。谢谢大家书山有路勤为径,学海无涯苦作舟Python编程基础公共基础课-《人工智能导论》1Python运行原理及开发环境Python基本语法Python编程基础Python基本数据类型Python运算符Python流程控制结构文件操作模块化编程异常处理综合实践23456789Python编程基础三、Python基本数据类型章节介绍74章节简述在计算机科学中,内存是用来存储和处理数据的关键部分。Python作为一种功能强大且易于学习的编程语言,提供了六个标准数据类型:Numbers(数字)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)和Set(集合),以便开发者能够高效地存储和操作各种数据。不同类型的数据需要不同的存储方式和处理方法。例如,考虑一个人的个人信息:他的年龄是一个数字,可以通过数字类型存储;而他的姓名则是由字母组成的文本,适合用字符串类型来存储。章节介绍75课程目标了解数字、字符串、列表、元组、字典和集合的特点和用途,为之后的深入学习打下坚实的基础。学习如何创建、访问、修改这些数据类型,以及它们的特定方法和应用场景。通过实例演示和练习,加深对这些数据类型在实际编程中的应用理解。通过分析和解决实际问题,提升使用这些基本数据类型解决编程难题的能力。数字(Numbers)76Python的数字类型是编程中最基本的数据类型之一,主要包括以下几种:整型(int)浮点数类型(float)布尔类型(bool)整型(int)77整型是不带有小数点的数,如3、-3、0、521等。整型用于表示整数,无论是正数、负数还是零。Python中的整型没有固定的大小限制,理论上可以表示任意大小的整数,受限于机器的内存。常用于计数、迭代、索引数组等场景。浮点数类型(float)78浮点型用于表示带小数点的实数。它适用于需要表示小数或非常大范围的数值,例如科学计算。在Python中,浮点数的精度可能有限,因为它们在内部是以二进制形式表示的,这可能导致精度损失。13.14、5.0都属于合法的浮点数常量。布尔类型(bool)79布尔类型有两个值,分别是True和False,分别表示逻辑真和逻辑假。布尔值通常用于条件判断和循环控制。在Python中,布尔值可以被视为整数值的子类型,其中True等同于1,False等同于0。字符串(String)80字符串或串(String)是由数字、字母、下划线组成的一串字符。可以用print函数显示字符串内容。字符串的操作包括字符串的格式化、赋值、截取、过滤、合并、查找、替换等操作,大致如下:字符串赋值字符串格式化字符串拼接字符串切片字符串查找字符串替换字符串大小写转换字符串的测试、判断函数字符串的分割字符串比较字符串赋值81通过使用变量名称后跟等号和字符串,可以把字符串赋值给变量。也可以使用三个引号将多行字符串赋值给变量。1、赋值单行字符串2、赋值多行字符串str_1="thisisadog"str_2="""Pythonisaprogramminglanguagethatletsyouworkquicklyandintegratesystemsmoreeffectively."""字符串格式化82Python通过将若干值插入带“%”标记的字符串中,从而动态地输出字符串。符号描述符号描述%c格式化字符机器ASCII码%f格式化浮点数字,可指定小数点后的精度%s格式化字符串%e用科学计数法格式化浮点数%d格式化整数%E作用同%e%u格式化无符号数整型%g根据值的大小决定使用%f或%e%o格式化无符号八进制数%G作用同%g%x格式化无符号十六进制数%p用十六进制数格式化变量的地址字符串拼接83字符串的拼接即字符串的连接,在Python当中可以直接用“+”来完成字符串拼接操作。1、使用+号进行拼接2、使用join函数进行拼接str1="Mynameis"str2="Jack"str=str1+str2"Jack".join(["Mynameis",""])字符串切片84字符串的切片也称截取,指的是从字符串当中取出若干连续的字符形成新的字符串。切片操作是字符串操作中比较重要的内容,格式为:字符串[start:end:step],其中end不包含在输出中,step默认为1,-1表示逆序输出。str="anappleadaykeepsthedoctoraway“print(str[0:3])#截取第一位到第三位的字符print(str[:])#截取字符串的全部字符print(str[6:])#截取第七个字符到结尾print(str[:-3])#截取从头开始到倒数第三个字符之前print(str[2])#截取第三个字符print(str[::-1])#创造一个与原字符串顺序相反的字符串print(str[8:3:-1])#逆序截取第八位到第四位字符print(str[-3:-1])#截取倒数第三位与倒数第一位之前的字符字符串查找85查找字符串中另外一个字符串的位置。index()方法查找指定值的首次出现。如果找不到该值,index()方法将引发异常。index()方法与find()方法几乎相同,唯一的区别是,如果找不到该值,则find()方法将返回-1。str="Hello,welcometomyworld."result=str.index("e")#index()方法print(result)result=str.find("welcome")#find()方法print(result)result=str.find("welcome222")print(result)result=str.index("welcome222")print(result)字符串替换86字符串替换是用另一个指定的字符串替换一个指定的字符串。字符串提供replace(oldvalue,newvalue,count)函数来操作,如果未指定count,则将替换所有出现的指定短语。string1='HelloAmy,welcometomyworld,yourworld,hisworld,herworld,ourworld'new_string1=string1.replace('world','place')#默认不指定count,全部替换print(new_string1)new_string2=string1.replace('world','place',2)#指定count,替换前count个print(new_string2)字符串大小写转换87lower()方法返回一个字符串,其中所有字符均为小写,upper()方法返回一个字符串,其中所有字符均大写。符号和数字将被忽略。函数名介绍lower全部转小写upper全部转大写title每个单词首字母大写capitalize首字母大写swapcase大写转小写,小写转大写字符串的测试、判断函数88字符串的测试、判断函数主要是判断字符串在格式上是否满足特定的要求,即是否全部是字母、全部为数字等,字符串的测试、判断函数代码示例:Str="HelloWorld!"print(Str.startswith("Hi"))#是否以Hi开头print(Str.endswith("ld"))#是否以Id结尾print(Str.isalnum())#是否全是字母和数字,并至少有一个字符print(Str.isalpha())#是否全是字母,并至少有一个字符print(Str.isdigit())#是否全是数字,并至少有一个字符print(Str.isspace())#是否全是空白字符,并至少有一个字符print(Str.islower())#S中的字母是否全是小写print(Str.isupper())#S中的字母是否全是大写print(Str.istitle())#S是否是首字母大写字符串的分割89Python中Split函数可以对字符串按照指定规则分割,并将分割后的字段作为list返回的函数。mystring="ThisisPythonTutorial"#输出变量mystring的类型print(type(mystring))#对字符串进行分割,返回结果赋值给newstring变量newstring=mystring.split()#打印新变量print(newstring)#查看新变量类型print(type(newstring))字符串比较90利用函数对字符串进行比较操作代码示例:importoperatorasop#引入operatorsStr1="12345"sStr2="123bc"n=3#调用eq方法对前n位字符进行判等比较print(op.eq(sStr1[0:n],sStr2[0:n]))字符串操作符91操作符描述案例1+字符串连接>>>a+b'HelloPython'2*重复输出字符串>>>a*2'HelloHello'3[]通过索引获取字符串中字符>>>a[1]'e'4[:]截取字符串中的一部分>>>a[1:4]'ell'5in成员运算符-如果字符串中包含给定的字符返回True>>>"H"inaTrue6notin成员运算符-如果字符串中不包含给定的字符返回True>>>"M"notinaTrue字符串操作符字符串常用函数92编号函数名描述1lower()转换string中所有大写字符为小写2upper()转换string中的小写字母为大写3lstrip()截掉string左边的空格(默认)4rstrip()删除string字符串末尾的空格(默认)5strip()去除左右两侧空格6split(str="")以str为分隔符切片string7replace(str1,str2)把string中的str1替换成str2字符串常用函数列表的含义93列表是数据的集合列表内元素的个数及元素的值可以改变列表(List)是由一系列元素组成,所有的元素被包含在一对方括号([])中。列表被创建后,可以执行添加、删除、修改操作。列表中可能包含任意的Python数据信息,如字符串、数字、列表、元组等。列表的含义例:person1=[“tom”,25,1.78]person2=list()如何定义列表?列表的操作94一、列表数据的获取例:person1=[“tom”,”male”,25,1.78,89]1、获取某一个元素值-下标法person1[0]2、获取所有内容-循环forninperson1:

printn列表的操作95一、列表数据的获取起始位置i终点位置j3、获取任意部分的内容-切片如何获取最后一个元素获取前三个元素获取第二到第四个元素......S[i:j]列表的操作96二、列表的赋值1、初始化时赋值person1=[“tom”,25,1.78]2、下标法赋值person1[0]=“terry”列表的操作97三、列表数据的新增例:person1=[“tom”,25,1.78]1、append()函数person1.append(85)#

在列表的最后增加值为85的元素2、insert()函数person1.insert(1,“male”)#

在索引为1的位置插入值为“male”的元素列表的操作98四、列表数据的删除例:person1=[“tom”,25,1.78]1、pop()函数person1.pop(1)#

删除索引为1的元素

person1.pop()#

删除最后一个元素2、remove()函数person1.remove(“tom”)#

删除列表中第一个元素值为"tom"的元素3、delperson1[1]#

删除索引为1的元素元组99有一些数据,一旦确定就不能更改,如何保证数据不被更改呢?星期性别国家元组的含义100元组与列表类似,与列表不同的是,元组中的元素一旦确立就不能被改变。元组可以使用在不希望数据被其他操作改变的场合列表使用的是中括号[],而元组使用的是圆括号()元组的含义week=("星期一","星期二","星期三","星期四")元组的操作101元组除了元素的值不可修改,其他操作与列表类似由于元组中的元素不能改变,所以可以通过将元组转换成列表,再改变其中的数据。同样,列表也可以转换成元组。元组和列表的相互转换代码示例:mytuple=tuple('abc’)mylist=list(mytuple)#通过list()将元组转换成列表print(mylist)mytuple=tuple(mylist)#通过tuple()将列表转换成元组print(mytuple)为什么需要字典102以下列表中保存有tom各科的考试成绩,现要求:80708895988077…scores=[80,70,88,95,98,80,77,…]1:获取语文成绩2:如果已知数据的排列顺序为:数学、英语、化学、体育、语文、物理、音乐…要求打印出语文成绩如何改善这个问题?字典语法结构103如果在每个元素前面,增加唯一对应的KEY,是不是就很清晰了呢!数学英语化学体育语文物理音乐80708895988077scores={"math":80,

"english":70,

"chem":88,

"pe":95,

"chinese":98,

"physical":80,

"music":77

}字典的含义104字典(Dictionary)是由‚”键-值”对组成的集合,字典中的”值”通过‚”键”来引用。Python中,键-值对之间用”英文逗号”隔开,并且被包含在一对花括号({})中。字典与列表最大的不同是,字典是无序的,字典中的元素是通过键来访问的。字典也是可变的,可以包含任何其他类型,字典中没有位置的概念。例如‚”取字典的第一个元素”说法错误。字典的含义字典的操作105printscores["english"]1、访问字典中的值2、添加新的键值对到字典中scores["dance"]=993、删除键值对delscores["dance"]字典的遍历1061、遍历字典中所有key和value2、获取字典中所有的key和valueforkeyinscores:

printkey,":",scores[key]forkey,valueinscores.items():

printkey,":",valueprintscores.keys()

printscores.values()集合的含义107集合的含义Python中集合set是具有唯一元素的无序集合,它和列表很相似,但它只能包含唯一的元素,同时需要注意的是集合是无序的,也就是说集合中没有第一个、第二个元素之说,通常只是说集合中是否含有这些元素。集合的创建108集合的构建可以通过set的构造函数构建空的集合,也可以构建包含初始值的集合,示例代码如下:创建一个包含多个元素的集合需要使用花括号{}。集合和字典之间的区别在于,字典要求键入由冒号“:”分隔的键值对,而集合则不需要。#创建空的集合s1=set()#创建包含初始值的集合s2={4,5,6}print(s1)print(s2)集合添加元素109集合添加元素一般使用add方法,代码示例:需要注意的是,s2尝试添加已经存在的元素6,没有发生任何事情,因为集合只能包含唯一的元素。#创建空的集合s1=set()#创建包含初始值的集合s2={4,5,6}s1.add(1)s2.add(7)s2.add(6)print(s1)print(s2)集合删除元素110如果要从集合中删除某个元素,可以简单地使用.remove方法进行操作,代码示例:此时,元素7在集合中并不存在,remove时将会触发KeyError错误信息。如果不希望删除的时候会触发错误,那么可以简单的使用discard函数,该函数和remove函数功能一样,同时在删除不存在的元素时不会触发错误,代码示例:s2={4,5,6}s2.remove(6)print(s2)s2.remove(7)print(s2)s2={4,5,6}s2.discard(6)#removes6s2.discard(7)#removesnothing,butnoerrorraisedprint(s2)集合运算111如果要计算两个集合的并集,也就是求两个集合中所有元素构成的集合,可以使用union函数。如果要计算两个集合的交集,也就是求两个集合中的公共元素所构成的集合,可以使用intersection函数。“-”操作符来获取两个集合的差集,代码示例:s1={1,2,3,4}s2={3,4,5,6}#s1和s2的并集s3=s1.union(s2)print(s3)#s1和s2的交集s4=ersection(s2)print(s4)#在s1中而不在s2中的元素s5=s1-s2print(s5)#在s2中而不在s1中的元素s6=s2-s1print(s6)Python编程基础四、Python运算符章节介绍113章节简述在编程的世界里,运算符是构建逻辑和表达式的基石,它们使得我们能够在代码中执行各种操作,从简单的数学计算到复杂的逻辑决策。Python,作为一门强大而灵活的编程语言,提供了丰富的运算符集合,覆盖了算术运算、比较逻辑、赋值操作、位操作、身份检测以及成员检测等多个方面。理解和熟练掌握这些运算符对于开发高效、可读性强的Python程序至关重要。本章节旨在提供一个全面的Python运算符概览,从基础的算术运算符讲起,逐步深入到更为复杂的逻辑和位运算符。章节介绍114课程目标了解并应用Python中的各种运算符,以执行数学计算、数据比较、逻辑决策等操作。理解运算符优先级,有效控制表达式的计算顺序。掌握如何使用赋值运算符来存储和更新变量值。学习如何通过位运算符进行高效的位级操作。识别并利用身份和成员运算符来检测对象的身份以及成员资格。基础运算符115基础运算符用于执行各种数学、逻辑和数据操作,使程序能够进行计算、决策和数据处理等任务。通过合理使用这些运算符,可以实现复杂的算法和逻辑控制。主要包括算术运算符、比较运算符、逻辑运算符、赋值运算符等。算术运算符与数值一起使用来执行常见的数学运算比较运算符用于比较两个值,返回布尔类型逻辑运算符用于组合条件语句。赋值运算符用于为变量赋值算数运算符116算术运算符是用于执行基本数学运算的运算符,它们允许您在Python中执行各种算术操作。以下是常见的算术运算符及其介绍:运算符描述+加:两个对象相加-减:得到负数或是一个数减去另一个数*乘:两个数相乘或是返回一个被重复若干次的字符串/除:x除以y%取模:返回除法的余数**幂:返回x的y次方//取整数:返回商的整数部分(向下取整)比较运算符117比较运算符用于比较两个值,并返回一个布尔值(True或False)来表示它们之间的关系。比较运算符常用于控制流程和条件语句中,以便进行条件性的决策。以下是Python中常见的比较运算符及其介绍:运算符描述==等于:比较对象是否相等!=不等于:比较两个对象是否不相等>

大于:返回x是否大于y<

小于:返回x是否小于y>=大于等于:返回x是否大于等于y<=小于等于:返回x是否小于等于y逻辑运算符118逻辑运算符(LogicalOperators)用于执行逻辑运算,通常用于组合或修改布尔值。Python提供了三种常见的逻辑运算符,它们是:and、or、not。以下是对这些逻辑运算符的详细介绍:运算符描述and布尔“与”:x和y都为真时才返回Trueor布尔“或”:x和y其中一个为真时就返回Truenot布尔“非”:如果x为True,返回False。如果x为False,返回True赋值运算符119赋值运算符用于将一个值赋给变量或修改变量的值。Python提供了多种赋值运算符,它们允许您以不同的方式为变量分配值。以下是Python中常见的赋值运算符及其介绍:运算符描述=简单地赋值运算符,如x=5+=加法赋值运算符,如x+=5,等效于x=x+5-=减法赋值运算符,如x-=5,等效于x=x-5*=乘法赋值运算符,如x*=5,等效于x=x*5/=除法赋值运算符,如x/=5,等效于x=x/5%=取模赋值运算符,如x%=5,等效于x=x%5**=幂赋值运算符,如x**=5,等效于x=x**5//=取整除赋值运算符,如x//=5,等效于x=x//5身份运算符120身份运算符用于比较两个对象的存储单元,身份运算符主要用于比较对象的引用,而不是它们的值。这对于检查两个变量是否引用相同的可变对象(例如列表或字典)非常有用,以便了解它们是否会同时受到修改。Python中有两个身份运算符,分别是"is"和"isnot"。运算符描述isis是判断两个标识符是不是引用同一个对象isnotisnot是判断两个标识符是不是引用不同对象成员运算符121成员运算符是Python中用于测试一个值是否包含在序列或集合中的运算符。用于测试序列是否在对象中出现,对于检查元素是否在序列或集合中非常有用,它们可用于编写更简洁和易读的代码,以避免手动遍历序列来查找特定值。Python提供了两个成员运算符,分别是"in"和"notin"。运算符描述in如果对象中存在具有指定值的序列,则返回Truenotin如果对象中不存在具有指定值的序列,则返回True运算符优先级122在Python中,运算符优先级决定了表达式中操作的执行顺序。当表达式中有多个运算符时,优先级高的运算符会先被计算。理解运算符优先级对于编写正确和有效的代码非常重要,可以避免逻辑错误和不必要的混淆。运算符描述**指数(最高优先级)*/%//乘、除取模和取整数+-加、减&位“and”<=<>>=比较运算符<>==!=等于运算符=%=/=//=+/-=*=**=赋值运算符isisnot身份运算符innotin成员运算符notandor逻辑运算符下列表格列出了从最高到最低优先级的所有运算符:谢谢大家书山有路勤为径,学海无涯苦作舟Python编程基础公共基础课-《人工智能导论》1Python运行原理及开发环境Python基本语法Python编程基础Python基本数据类型Python运算符Python流程控制结构文件操作模块化编程异常处理综合实践23456789Python编程基础五、Python流程控制结构章节介绍127章节简述流程控制结构在编程中扮演着至关重要的角色,它们决定了程序代码的执行顺序,使得程序能够根据不同条件执行不同的操作。Python,作为一门既简单又强大的编程语言,提供了丰富的流程控制结构,包括条件语句、循环语句以及控制流语句,使得程序设计既灵活又直观。本章节将系统地介绍Python中的流程控制结构,从基础的if语句,到循环的for和while语句,再到流程控制的break、continue和pass语句。章节介绍128课程目标学习如何使用if、elif、else语句进行条件判断,包括复合条件判断和嵌套条件判断的应用。通过for循环和while循环的学习,学会处理需要重复执行的任务,包括遍历数据结构、条件循环等。掌握break、continue和pass语句的使用,了解如何在循环中改变程序的执行流程,包括提前结束循环或跳过某些循环迭代。学习在循环中使用计数器、累加器等技巧,以及如何编写计算累积结果或寻找特定元素的高效代码。为什么需要分支结构129为什么需要分支结构如果我好好学习了,我就能考上好大学如果我中大奖了,我就辞职不受老板气了。如果硬币为正面,就跟你走,否则,分手条件语句130条件语句是编程中用于执行基于一个或多个条件判断的代码块的结构。它们使得程序能够根据不同的条件采取不同的行动,从而增加程序的灵活性和决策能力。在Python中,条件语句主要通过if、elif和else关键字来实现。if语句:是最基本的条件控制语句,它指定了一个条件和一块当条件为真(True)时执行的代码。如果if语句的条件为假(False),程序将跳过该代码块不执行。elif语句:即“elseif”的缩写,用于在原始if条件不满足时检查另一个条件。你可以在一个if语句后有多个elif语句,以检查多个不同的条件。else语句:在所有if和elif条件都不满足时执行。else是可选的,用于定义当所有“if”和“elif”中的条件都不为真时,程序应该执行的默认动作。if语句131if语句是最简单的一种条件分支语句,其基本语法结构如下:if判断条件:

执行语句块只有当“判断条件”等于真(True)时,才会执行“执行语句块”。if语句的流程图如下图所示:else语句132可以将else语句与if语句结合使用,指定不满足的条件时会执行的操作。其基本语法结构如下:if条件:

语句块1else:

语句块2当条件判断为True时,执行语句块1,否则表示不满足条件执行语句块2。if…else…语句的流程图如下图所示:elif语句133elif语句是else语句和if语句的组合,当不满足if语句中指定的条件时,可以再使用elif语句指定另外一个条件。与if…else语句不同的是,elif语句可以处理多种情况,与C语言的if…elseif…else语句有相同的功效。其基本语法结构如下:if条件判断1:

语句块1elif 条件判断2:

语句块2…else:

语句块nelif语句134在一个if语句中,可以包含多个elif语句,基本结构为if…elif…else…语句。其流程图如下图所示:循环语句135循环语句是一种编程中常用的控制结构,它允许程序多次执行特定的操作或代码块,以满足特定条件或达到指定的次数。它们是编写重复性任务的关键工具,有助于提高代码的效率和可维护性。for循环:for循环用于遍历可迭代对象(如列表、字符串、范围等),并在每次迭代中执行一组语句,直到遍历完所有元素。while循环:while循环在满足指定条件时执行一段代码块,通常用于处理未知次数的循环,只要条件为真,循环将一直执行。嵌套循环:嵌套循环是一种在循环内部包含另一个循环的方式,常用于处理多维数据结构或需要多层迭代的任务。以下是几种常见的循环语句:while语句136while语句的基本语法结构如下:while条件判断:

循环语句体else:

不满足时的语句当条件判断等于True时,程序将循环执行循环语句体的代码。while语句的流程图如下图所示:for语句137for语句的基本语法结构如下:foriinrange(start,end):

循环语句体程序在执行for语句时,循环计算器i起始值被定义为start,然后执行循环语句体,每次被执行一次循环语句体时i都会被设置为(start,end]之间的值。当i等于end-1时,退出循环体。for循环语句代码示例:sum=0foriinrange(1,101):sum+=iprint(sum)print(i)continue语句138在循环体中使用continue语句可以跳过本次循环,直接执行下一次循环。使用continue语句实现只计算1~100之间的偶数之和代码示例:sum=0foriinrange(1,101):ifi%2!=0:continuesum+=iprint(sum)break语句139在循环体中使用break语句可以跳出当前循环体。print('--Help:typequittoexit--')#循环条件恒为TruewhileTrue: #等待用户输入

color=input('Enteryourfavoritecolor:')ifcolor.lower()=='quit':break代码示例:循环嵌套语句140Python语言允许在一个循环中嵌入另外一个循环。可以在循环体内嵌入其他的循环体,如在while循环中可以嵌入for循环,也可以在for循环中嵌入while循环。用for循环实现80到100之间每个数字从1到自身累加和的代码示例:#外层循环foriinrange(80,101):#保存1~i之间的和sum=0#内层循环,计算1~i之间累加和forjinrange(1,i+1):sum+=jprint(i,sum)Python编程基础六、文件操作章节介绍142章节简述为了长期保存数据以便重复使用、修改和共享,必须将数据以文件的形式存储到外部存储介质(如磁盘、U盘、光盘等)。在计算机系统当中,文件类型有文本文档、图片、程序等。通常可以对文件进行读出和写入,文件的操作在应用软件的开发中均占有很重要的地位。无论是文本文件还是二进制文件,在Python语言程序设计中,其对文件的操作流程基本上都是一致的,即:首先打开文件并创建文件对象,然后通过该文件对象对文件内容进行读取、写入、删除、修改等操作,最后关闭并保存文件内容。章节介绍143课程目标了解文件以及文件系统的工作原理,包括文件的不同类型(文本和二进制)和它们在计算机系统中是如何存储的。学会如何在Python中使用open()函数打开文件,并理解不同的文件打开模式(如读模式、写模式和追加模式)。通过解决文件读写过程中遇到的具体问题(如编码错误、文件不存在等),提高解决实际编程问题的能力。文件打开144创建或打开文件对象。Python通过内置的open()方法即可根据指定模式打开指定文件并创建文件对象。open()函数有两个参数:文件名和模式,需要注意的是默认打开模式为只读模式。有四种打开文件的不同方法(模式):"r"-读取:默认值。打开文件进行读取,如果文件不存在则报错。"a"-追加:打开供追加的文件,如果不存在则创建该文件。"w"-写入:打开文件进行写入,如果文件不存在则创建该文件。"x"-创建:创建指定的文件,如果文件存在则返回错误。此外,您可以指定文件是应该作为二进制还是文本模式进行处理。"t"-文本:默认值。文本模式。"b"-二进制:二进制模式(例如图像)。文件打开145文件打开代码示例:#文件对象=open(文件名[,打开模式])#以“写入”模式打开'demofile1.txt,创建f1文件对象f1=open('demofile1.txt','w’)#创建文件'demofile2.txt,如果文件存在则出现FileExistsError错误f2=open("demofile2.txt","x")#以追加模式创建或打开demofile3.txtf3=open("demofile3.txt","a")文件打开146常用文件操作:文件读取147假设有demofile.txt位于Python文件相同的文件夹,也即相同的目录下,demofile.txt的内容如下:Hello!Welcometodemofile.txtThisfileisfortestingfilereadpurposes.GoodLuck!首先打开文件,请使用内建的open()函数。open()函数返回文件对象,此对象有一个read()方法用于读取文件所有的内容:f=open("demofile.txt","r")print(f.read())默认情况下,read()方法返回整个文本,默认情况下,read()方法返回整个文本,但也可以指定要返回的字符数:f=open("demofile.txt","r")print(f.read(20))文件写入148如需在Python中创建新文件,请使用open()方法,并使用以下参数之一:"x"-创建:将创建一个文件,如果文件存在则返回错误。"a"-追加:如果指定的文件不存在,将创建一个文件。"w"-写入:如果指定的文件不存在,将创建一个文件。打开文件"demofile.txt"并将内容追加到文件中:f=open("demofile.txt","a")f.write("Writemorecontenttothefile!")f.close()

#追加后,查看文件内容:f=open("demofile.txt","r")print(f.read())文件删除149如需删除文件,必须首先导入OS模块,利用os.remove()函数对文件进行删除。一般为避免系统文件找不到错误,需要在删除文件之前检查该文件是否存在。如需删除整个文件夹,请使用os.rmdir()方法,但是文件夹必须是空的。importosifos.path.exists("demofile.txt"):os.remove("demofile.txt")else:print("Thefiledoesnotexist")案例代码:谢谢大家书山有路勤为径,学海无涯苦作舟模块化编程通识课-《人工智能通识》123函数模块第三方库章节名思考153Python语言如何减少程序的代码量,提高程序的执行效率和可维护性呢?概述154

在Python中,程序主要由包、模块以及函数构成,其中包由一系列的模块构成,模块由一系列类和函数构成。11.6模块化编程一、函数函数156

在Python中,函数是组织好的、可重复使用的,用来实现单一或相关联功能的代码段。因此,函数在程序中被用于分离不同的任务,并为代码复用提供一个通用的机制。使用函数不仅可以实现结构化程序设计,减少代码的复杂度,提高代码的质量,而且能够将大项目分割成不同的子模块,从而便于团队协作开发。Python语言中的函数157内建函数Python语言提供的系统函数,在程序编写中可以直接使用,比如之前用到的print()、input()等。库函数Python拥有丰富的标准库以及第三方库,这些库提供了各种功能,使得开发人员能够更轻松地处理各种任务。用户自定义函数用户可以在程序中自己创建函数,并实现指定功能。用户自定义的函数1581、函数定义在Python语言中,用户可以自定义一个指定功能的函数,其语法格式如下所示:def函数名(参数):

函数体

(return表达式/值)用户自定义的函数159注意:①Python语言采用def进行函数定义,不用指定返回值类型。②函数参数可以为0个、1个或者多个。③return语句是可选的,当函数中有return语句时,表明该函数返回相应内容并到此结束,当没有return语句时,表明该函数返回空值。用户自定义的函数160例1:定义一个求两数之和的函数defadd(a,b): #add为函数名,a和b为参数

returna+b #返回值例2:定义一个求列表中值最大的元素的函数defmax_item(mylist):returnmax(mylist)#max返回mylist中最大的值用户自定义的函数1612、函数调用用户定义完函数之后,函数是不会自动执行的,这一点和其他语言类似,要使得代码可以执行,需要调用函数。其语法格式如下所示:函数名(参数)同样,这里的参数个数由该函数定义时的参数个数决定,可以为0个、1个或者多个。用户自定义的函数162可以通过如下代码来进行调用刚才定义的函数:list_example=[2,5,6,8,4] #创建一个列表max_value=max_item(list_example) #调用函数并把返回结果

赋给变量print(max_value)用户自定义的函数1633、参数

形参即形式参数,实参即实际参数。形参是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传递的参数;而实参是在进行函数调用时,把值传送给形参,因此应预先用赋值、输入等办法使实参获得确定值。

在Python中,def关键字定义函数时函数名后面的括号中的变量称为形参,而调用该函数所提供的值或变量称为实参。用户自定义的函数164定义一个含有两个参数的函数,用于返回这两个数的最大值: defget_max(a,b): #a、b为形参

ifa>=b: returna else: returnb用户自定义的函数165可以通过下列代码来调用该函数: max_value=get_max(1,2)#1、2为实参 print(max_value)

x=3 y=4 max_value=get_max(x,y) #x、y为实参 print(max_value)用户自定义的函数166可以通过下列代码来调用该函数: max_value=get_max(1,2)#1、2为实参 print(max_value)

x=3 y=4 max_value=get_max(x,y) #x、y为实参 print(max_value)用户自定义的函数167定义函数时,可以给函数的参数设置默认值,这个参数称为默认参数。在调用函数时,如果没有给该参数设定值,则该函数直接使用默认值;如果给该参数设定了值,则使用设定的新值。例:定义一个函数,实现输出学生的年龄和性别,如果未设置该学生的性别,默认其性别为“男”defprint_stu(age,sex="男"): #设置sex参数默认值为“男”

print("sex:",sex)print("age:",age)用户自定义的函数168分别通过如下默认参数形式和指定参数形式来调用它:print_stu(20)print_stu(18,"女")sex:男age:20sex:女age:18用户自定义的函数169注意:

在定义函数时,带有默认值的参数一定要位于参数列表最后,否则程序会报错。用户自定义的函数1704、函数的返回值函数的“返回值”指的是当该函数完成特定功能之后,最后给调用者的一个结果。通常函数根据不同的参数会返回不同的结果。如果函数没有具体返回结果,表明函数执行的功能不需要返回给调用者具体的内容。print_stu()函数只是根据参数打印不同的结果,就不需要返回具体的值。add(a,b)函数实现了计算a和b这个数字和的功能,需要返回给调用者继续参与后续的计算中。用户自定义的函数171例:判断一个整数是否为素数,若为素数返回True;反之返回Falseimportmath #导入math模块defis_prime(n): #定义函数

ifn<2:returnFalseelse:lenth=int(math.sqrt(n))foriinrange(2,lenth+

温馨提示

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

评论

0/150

提交评论