新一代信息技术与人工智能 课件 第5章 让计算机来解决难题吧_第1页
新一代信息技术与人工智能 课件 第5章 让计算机来解决难题吧_第2页
新一代信息技术与人工智能 课件 第5章 让计算机来解决难题吧_第3页
新一代信息技术与人工智能 课件 第5章 让计算机来解决难题吧_第4页
新一代信息技术与人工智能 课件 第5章 让计算机来解决难题吧_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

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

文档简介

第五章

让计算机来解决难题吧本章导读人工智能的三大重要基础分别是算力、大数据和算法。近几年人工智能得以快速发展和广泛应用,高性能算法发挥了非常重要的作用。杨立昆开发的卷积神经网络算法、杰弗里·辛顿提出的深度学习算法、约书亚·本吉奥提出的语言模型与注意力机制算法等,有力地促进了深度学习模型的实用化,为此三位科学家共同获得了2018年度图灵奖。本章介绍算法与程序设计,有了好的算法,才能编写出高性能的程序,才能在计算机上实现各种功能,包括智能化功能。学习目标1.理解算法特性及评价标准。2.了解Python基础语法及数据类型。3.了解数据结构:线性结构、树形结构、图状结构的特点与应用。目录01计算机语言04数据结构

与程序设计03Python程序设计02算法计算机语言01计算机语言程序设计语言就是一种人与计算机进行交流,让计算机理解人的意图并按照人的意图完成工作的语言。程序设计语言的发展经历了机器语言、汇编语言和高级语言三个阶段,机器语言和汇编语言都称为低级语言。2025年01月编程语言排行榜计算机语言--机器语言机器语言是由0或1二进制代码按一定规则组成的、能被机器直接理解和执行的指令集合。机器语言中的每一条语句实际上是一条二进制形式的指令代码。指令格式:

操作码 操作数计算A=10+8的机器语言程序计算机语言--汇编语言汇编语言采用助记符来表示机器指令代码或地址。汇编语言在一定程度上克服了机器语言难读、难修改的缺点。汇编语言的实质和机器语言是相同的,虽然对机器语言进行了符号化处理,但它仍然是直接对硬件操作,是面向机器的语言,通用性差、不具有可移植性。计算A=10+8的汇编语言程序计算机语言--高级语言高级语言是一种接近自然语言和数学公式的程序设计语言。程序员就可以不用再与计算机的硬件打交道,能将精力集中在问题的解决上,极大地提高了编程效率计算A=10+8的用Python语言(3.0以上版本)实现代码计算机语言--高级语言和汇编语言相比,高级语言不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,这样就大大简化了程序中的指令01由于省略了很多细节,编程者也就不需要有太多的专业知识,经过一定的学习之后都可以编程02高级语言主要是相对于低级语言而言的,它并不是特指某一种具体的语言,而是包括了很多种编程语言,如流行的Java、C、C++、C#、Pascal、Python、Scala、PHP等03高级语言编写的程序不能直接被计算机识别,必须经过转换才能被执行04计算机语言--高级语言用高级语言编写的程序称为源程序。对于源程序,计算机是不能识别和执行的,必须先将它翻译成计算机能识别和执行的二进制机器指令,然后才能让计算机执行。计算机将源程序翻译成机器指令时,通常有编译、解释两种翻译方式。编译解释计算机语言--编程语言的选择目前,各大高校越来越重视Python教学,Python已经成为最受高校欢迎的程序设计语言之一以前,大部分高校采用的编程语言往往是C、C++或Java,最近几年,Python凭借其独特的优势逐渐崭露头角Python语言广泛用于计算机程序设计教学、系统管理编程、科学计算等,特别适用于快速的应用程序开发030102与传统编程语言的复杂开发过程不同,Python在操作上非常方便、快捷,学习者容易掌握,可以提升学习者的编程效率,并增强其学习信心04计算机语言--编程语言的选择Python的主要优势如下:大部分高校采用Python作为编程语言学习入门容易功能强大应用领域非常广泛算法02算法算法(algorithm)是计算机科学的重要组成,一旦确定了求解问题的算法,就可以用程序设计语言来编写程序。计算机求解问题的基本过程算法程序与程序设计算法--概念简单来说,就是解决问题的操作步骤或方法。它是对解题方案的准确而完整的描述,包含了一系列清晰定义的指令,用于指导计算机或其他计算设备完成特定的任务。算法的基本特性有穷性确切性输入项输出项可行性算法--算法的表示算法可以用自然语言、‌程序框图、‌N-S图、‌伪代码、‌计算机语言等表示‌使用日常语言来描述算法的步骤,‌虽然通俗易懂,‌但文字冗长,‌易出现歧义自然语言‌又称流程图,它‌通过一些规定的图形、‌流程线和文字说明来直观描述算法程序框图‌也称为盒图,‌是一种没有流程线的流程图。‌它将整个程序写在一个大框内,‌由若干个小的基本框图构成N-S图‌一种非正式的、‌简化的编程语言,‌用于描述算法的逻辑结构,‌不依赖于任何特定的编程语言语法伪代码‌直接使用某种编程语言来实现算法,‌包括高级语言、‌汇编语言和机器语言等计算机语言算法--算法的表示程序框图使用一些规定的图形、流程线和文字说明来直观地描述算法。……算法--算法的表示计算0+1+2+3+……+100算法--算法的评价时间复杂度

是指一个算法执行所耗费的时间空间复杂度

是指算法在计算机内执行时所需存储空间的大小0102算法复杂度Python程序设计03Python程序设计--Python简介发展到今天,Python已经成为最受欢迎的程序设计语言之一Python的设计哲学是“优雅”“明确”“简单”Python(发音[ˈpaɪθən])是1989年由荷兰人吉多·范罗苏姆(GuidovanRossum)发明的一种面向对象的解释型高级编程语言0103Python的第一个公开发行版于

1991

年发行,在

2004

年以后,Python

的使用率呈线性增长,并获得“2021年TIOBE最佳年度语言”称号0502Python常被称为“胶水语言”,能够把用其他语言(尤其是C/C++)制作的各种模块很轻松地连接在一起04Python程序设计--Python简介(1)运行速度慢(2)存在多线程性能瓶颈(3)代码不能加密(1)语言简单(2)开源、免费(3)面向对象(4)跨平台(5)强大的生态系统Python语言的优点Python语言的缺点Python程序设计--Python简介人工智能Python具有极高的开发效率和高可维护性,拥有丰富的数字算法和强悍的数据处理方法,加之基于Python的PyTorch和TensorFlow等深度学习框架的广泛应用,使之成为人工智能与大数据领域事实上的标准程序设计语言。数据处理与可视化NumPy,SciPy,Matplotlib等众多第三方库的开发和完善,使Python越来越适合做数据处理、绘制高质量的2D和3D图像。010203云计算云计算框架OpenStack和Python紧密合作并互相依赖,开发人员大量使用Python简化编写OpenStack自动化脚本的过程。Python程序设计--Python简介游戏开发网络游戏开发中Python也有很多应用。Pygame、Cocos2d、Pymunk、Arcade、Panda3d和Arcade等库让游戏的设计开发变得更加简单和快速。爬虫网络爬虫是一种按照一定的规则,自动获取网页内容并可以按照指定规则提取相应内容的程序。Python结合Request、BeautifuSoap、urllib和Scrapy等库和框架,可以快速完成数据采集、处理和储存。0405自动化运维IT运维对实时采集和海量分析要求更高。Python以其数据处理能力强、可移植性强、开发效率高和兼容性好等特点,成为所有运行维护人员广泛选用的程序设计语言之一。06Web开发Python下有Django、Flask和Tornado等多种优秀的Web框架,可以实现低成本、高效率的网站开发。07Python程序设计--安装PythonPython是解释型编程语言,需要安装解释器来解释程序代码。Python官方网站下载最新版本并安装。初学者可以用内置IDLE进行编程训练。安装Python1.Pycharm2VSCode3.Spyder4.JupyterNotebook安装第三方IDLEPython程序设计--安装PythonPython安装成功以后,会自带一个集成式开发环境IDLE,它是一个PythonShell,程序开发人员可以利用PythonShell与Python交互在Windows操作系统的“开始”菜单中找到“IDLE(Python3.12

64-bit)”,单击进入IDLE主窗口,如图所示,窗口左侧会显示Python命令提示符“>>>”,在提示符后面输入Python代码,回车后就会立即执行并返回结果Python程序设计--安装Python如果要创建一个代码文件,可以在IDLE主窗口的顶部菜单栏中选择“File→NewFile”然后就会弹出图所示的文件窗口,可以在里面输入Python代码,最后,在顶部菜单栏中选择“File→SaveAs…”,把文件保存为hello.py如果要运行代码文件hello.py,可以在IDLE的文件窗口的顶部菜单栏中选择“Run→RunModule”(或者直接使用快捷键“F5”),这时就会开始运行程序。程序运行结束后,会在IDLEShell窗口显示执行结果。Python程序设计--Python编码规范示例

已知圆的半径,求圆的面积。importmath#引入math包r=1.0 #圆的半径s=math.pi*r*r#计算圆的面积print(s) #输出圆的面积注释规则:Python中使用“#”表示单行注释。单行注释可以作为单独的一行放在被注释代码行之上,或者也可以放在语句或表达式之后。当注释内容过多,导致一行无法显示时,就可以使用多行注释。Python中使用三个单引号或三个双引号表示多行注释。'''文件名:area.py用途:用于求解矩形的面积创建日期:2025年8月1日创建人:XY'''Python程序设计--Python编码规范示例

判断每天上课的内容。day=int(input("请输入第几天课程:"))ifday==1:print("第1天上数学课")elifday==2:print("第2天上语文课")else:print("其他时间上计算机课")缩进规则:Python采用代码缩进和冒号来区分代码之间的层次。缩进可以使用空格或者Tab键来实现(建议使用空格作为缩进)。当使用空格作为缩进时,建议使用4个空格作为一个缩进量'''文件名:lesson.py用途:用于判断每天上课的内容创建日期:2025年8月1日创建人:XY'''Python程序设计--Python基础语法变量与标识符任何编程语言都需要处理数据,比如数字、字符串、字符等,用户可以直接使用数据,也可以将数据保存到变量中,方便以后使用。每个变量都拥有独一无二的名字,通过变量的名字就能找到变量中的数据。Python标识符的命名要遵守一定的规则:标识符是由字符、下划线和数字组成,但第一个字符不能是数字。标识符不能和Python中的保留字相同。不能包含空格、@、%以及$等特殊字符标识符中的字母是严格区分大小写的。Python程序设计--Python基础语法数据类型02整数(int)浮点数(float)布尔类型(bool)复数(complex)字符串列表(list)元组(tuple)集合(set)字典(dict)基本数据数据基本数据组合数据类型01Python程序设计--Python基础语法基本数据类型整数整数类型用来存储整数数值。在Python中,整数包括正整数、负整数和0。按照进制的不同,整数类型还可以划分为十进制整数、八进制整数、十六进制整数和二进制整数布尔类型Python中的布尔类型主要用来表示“真”或“假”的值,每个对象天生具有布尔类型的True或False值。空对象、值为零的任何数字或者对象None的布尔值都是False。在Python3.x中,布尔值是作为整数的子类实现的,布尔值可以转换为数值,True的值为1,False的值为0,可以进行数值运算浮点数浮点数也称为“小数”,由整数部分和小数部分构成,比如3.14、0.2、-1.648、5.8726849267842等。浮点数也可以用科学计数法表示,比如1.3e4、-0.35e3、2.36e-3等复数复数由实数部分和虚数部分构成,可以用a+bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。例如,一个复数的实部为2.38,虚部为18.2j,则这个复数为2.38+18.2jPython程序设计--Python基础语法基本数据类型字符串是Python中最常用的数据类型,它是连续的字符序列,一般使用单引号('')、双引号("

")或三引号('''

'''或"""""")进行界定。其中,单引号和双引号中的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上,从而可以支持格式较为复杂的字符串。例如,'xyz'、'123'、'厦门'、"hadoop"、'''spark'''、"""flink"""都是合法字符串,空字符串可以表示为''、"

"或'''

'''。字符串定义要点举例Python程序设计--Python基础语法组合数据类型:列表列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型。在形式上,只要把逗号分隔的不同的数据项使用方括号括起来,就可以构成一个列表。[1,2,3,4,5]["a","b","c","d"]word_day=['Monday','Tuesday','Wednesday','Thursday','Friday']student=['王小明','男',2010,10]Python程序设计--Python基础语法组合数据类型:元组Python中的列表适合存储在程序运行时变化的数据集。但是,也不是任何数据都要在程序运行期间进行修改,有时候需要创建一组不可修改的元素,此时可以使用元组。元组的创建和列表的创建很相似,不同之处在于,创建列表时使用的是方括号,而创建元组时则需要使用圆括号。tuple1=(1,2,3,4,5)tuple2=(“apple”,“pear”,“banana”)tuple3=(2025,("大数据","分布式计算"),["spark","flink","storm"])Python程序设计--Python基础语法组合数据类型:集合集合(set)是一个无序的不重复元素序列。集合中的元素必须是不可变类型。在形式上,集合的所有元素都放在一对大括号“{}”中,两个相邻的元素之间使用逗号分隔。可以直接使用大括号{}创建集合dayset={'Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'}fruits={'apple','banana','cherry'}empty_set=set()Python程序设计--Python基础语法组合数据类型:字典字典用于存放具有映射关系的数据。字典相当于保存了两组数据,其中一组数据是关键数据,被称为“键”(key);另一组数据可通过键来访问,被称为“值”(value)。字典用大括号{}标识。在使用大括号语法创建字典时,大括号中应包含多个“键值对”,键与值之间用英文冒号隔开,多个键值对之间用英文逗号隔开。grade={"语文":67,"数学":91,"英语":78}

person={'name':'Alice','age':30,'city':'NewYork'}Python程序设计--Python基础语法表达式表达式(Expression)是由值、变量、运算符和函数调用组成的组合,它可以被解释器“求值”(计算并返回一个结果)a=(10+2)/3b=2**3p=(5>3)and(2<4)s='a'in'apple'result=len('hello')Python程序设计--Python基础语法控制结构结构化程序设计的概念最早由艾兹格·迪科斯彻(E.W.Dijkstra)在1965年提出。该概念的提出是软件发展的一个重要里程碑,它的主要观点是采用“自顶向下、逐步求精”及模块化的程序设计方法。以控制结构为单位,每个模块只有一个入口和一个出口01能够以控制结构为单位,从上到下顺序地阅读程序文本02由于程序的静态描述与执行时的控制流程容易对应,所以阅读者能够方便、正确地理解程序的动作03Python程序设计--Python基础语法Python程序的控制结构Python程序设计--Python基础语法Python程序的控制结构:顺序结构语句块1语句块2语句块3x=input("你喜欢的颜色名称:")print("Myfavoritecoloris",x)

Python基本输入:语法格式:x=input("提示语")

Python基本输出:语法格式:print(*objects,sep='',end='\n')Python程序设计--Python基础语法Python程序的控制结构:选择结构条件语句可以给定一个判断条件,并在程序执行过程中判断该条件是否成立。程序根据判断结果执行不同的操作,这样就可以改变代码的执行顺序,从而实现不同的功能。Python中的条件语句有:(1)单分支结构if语句(2)双分支结构if-else语句(3)多分支结构if-elif语句Python程序设计--Python基础语法Python程序的控制结构:选择结构(1)单分支结构if语句条件语句块TrueFalseif条件表达式语句块#当条件表达式为True时,执行语句块num=10ifnum>0:print("这是一个正数")Python程序设计--Python基础语法Python程序的控制结构:选择结构(2)双分支结构if-else语句条件语句语句块1语句块2TrueFalseif条件表达式:

语句块1

#当条件表达式为True,则执行其后的语句块1else:

语句块2

#当条件表达式为False时,则执行语句块2age=int(input("请输入你的年龄:"))ifage>=18:print("你已成年,可以进入。")else:print("你未成年,禁止进入。")Python程序设计--Python基础语法Python程序的控制结构:选择结构(3)多分支结构if-elif语句Python程序设计--Python基础语法Python程序的控制结构:选择结构(3)多分支结构if-elif语句score=85ifscore>=90:print("成绩等级:A")elifscore>=80:print("成绩等级:B")elifscore>=70:print("成绩等级:C")elifscore>=60:print("成绩等级:D")else:print("成绩等级:F(不及格)")Python程序设计--Python基础语法Python程序的控制结构:循环结构循环即让程序重复地执行某些语句。在实际应用中,当碰到需要多次重复地执行一个或多个任务时,可考虑使用循环语句来解决。循环语句的特点是在给定条件成立时,重复执行某个程序段。通常称给定条件为循环条件,称为反复执行的程序段为循环体。Python实现循环结构for语句while语句Python程序设计--Python基础语法Python程序的控制结构:循环结构for语句for循环用于遍历可迭代对象(如字符串、列表、元组、字典等),依次处理其中的每个元素。for变量/元素in可迭代对象:

循环体/语句块forwordin"Python":print(word)foriin(1,2,3):print(i,i**2,i**3)Python程序设计--Python基础语法Python程序的控制结构:循环结构for语句range(start,stop[,step])产生等差序列,从start开始,至stop结束(不包含stop)。如果指定了可选的步长step,则序列按步长step增长。range(1,11)range(1,11,3):sumN=0foriinrange(1,101):sumN+=iprint("1+2+...+100={}".formatsumN)Python程序设计--Python基础语法Python程序的控制结构:循环结构②while语句while条件表达式:

循环体

#此处语句块也称循环体i=1#定义循环变量i,并初始化sumN=0#定义累加和变量sumN,并初始化whilei<101:#循环变量i小于101则继续进行累加sumN+=ii+=1print("1+2+…+100=",sumN)Python程序设计--综合实例编写程序,根据输入的课程名,课程类型,课时数和课程学分,以下列格式进行输出。课程名:****课程类型:****课时数:****课程学分:****注:“:”左边文字信息是输入提示信息,右边“****”是程序运行时由用户输入信息。course_name=input("课程名:")course_type=input("课程类型:")course_time=input("课时数:")course_credit=input("课程学分:")print("课程名:"+course_name)print("课程类型:"+course_type)print("课时数:"+course_time)print("课程学分:"+course_credit)Python程序设计--综合实例现有103个脐橙,均分给22位同学,剩下的交还给老师。编写程序,回答下列问题:1每位同学可分得多少个脐橙?2交还老师多少个脐橙?x=103//22y=103%22print("每位同学可分得{}个脐橙".format(x))print("交还老师{}个脐橙".format(y))Python程序设计--综合实例将两块球形橡皮泥揉在一起,捏成一个正方体。编写程序,求出此正文体的边长(保留两位小数输出)。importmathr1=eval(input())r2=eval(input())V=(4/3)*math.pi*r1**3+(4/3)*math.pi*r2**3a=math.pow(V,1/3)print("正方体边长{:.2f}".format(a))Python程序设计--综合实例编程实现:从键盘输入一个整数n(n≥0),如果n为0或1时,输出"0apple"或"1apple",如果n大于1,比如n为9,输出"9apples"。n=int(input())ifn>1:print("{}apples".format(n))else:print("{}apple".format(n))Python程序设计--综合实例编程实现用户输入直角坐标系的某个数据点坐标值(x,y),判定某个数据点属于哪个象限并输出判定结论。x,y=eval(input())ifx>0:ify>0:print("({},{})属于第一象限".format(x,y))else:print("({},{})属于第四象限".format(x,y))else:ify>0:print("({},{})属于第二象限".format(x,y))else:print("({},{})属于第三象限".format(x,y))Python程序设计--综合实例古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,用户输入一个月份数,计算并在一行内输出当前月兔子的总对数。n=int(input())a,b=1,1foriinrange(n-1):a,b=b,a+bprint("第{}个月共有{}对兔子".format(n,a))Python程序设计--综合实例编写程序输出[1,n]之间的素数,其中n是由用户输入的正整数。importmathdefis_prime(n):ifn==1:returnFalseelifn==2:returnTrueelse:foriinrange(2,int(math.sqrt(n))+1):ifn%i==0:returnFalseelse: returnTruen=int(input())foriinrange(1,n+1):ifis_prime(i):print("{}是素数".format(i))Python程序设计--综合实例完成函数Add_Sum(m,n)代码编写,以实现计算区间[m,n]的累加和并输出结果(其中m,n是由用户输入的整数)功能。defAdd_Sum(m,n):ifm>n:m,n=n,mresult=0foriinrange(m,n+1):result=result+ireturnresultm,n=eval(input())print("累加和{}".format(Add_Sum(m,n)))Python程序设计--综合实例编写一个去除字符串中的重复字符的程序。text=input()result=""forcintext:ifcnotinresult:result=result+cprint("删除重复字符的字

温馨提示

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

评论

0/150

提交评论