python人工智能基础第一季

本套课程2018年更新第一季共115集Python人工智能课程,从零基础开始,全面讲解Python基础,直达可以手写神经网络的境界。我们创造性的增加了:手写数据...

python人工智能基础第一季
  1. 授课老师:北京尚学堂
  2. 老师简介:北京尚学堂科技有限公司是一家从事JAVA、大数据、web前端、Android、ios技术开发、培训、咨询为一体的软件公司。公司由海外留学人员和国内IT精英人士创建,主要成员均拥有硕士以上学位,毕...
  3. 课程节数:115
  4. 课程评星:
  5. 售价: 免费课程
  6. 已学人数:9466学员点评:194 条
现在开始学习

课程适合人群

适合在校大学生、上班族、想转行的人员,IT人士以及对python感兴趣的人士.

课程简介

本套课程2018年更新第一季共115集
Python人工智能课程,从零基础开始,全面讲解Python基础,直达可以手写神经网络的境界。

我们创造性的增加了:手写数据结构和算法、手写神经网络项目。让零基础学员在学习Python时就开始接触高深的底层知识、神经网络底层实现的知识。
内容共分26章,讲解了Python基础的方方面面,可以作为Python学习者的“宝典”。同时,穿插了3个大型实战项目。

课程目录大纲

第1章: Python简介
第1课 时长 17:02
为什么叫Python?它是谁用什么语言写的,应用在那些方面呢?

Python是一种解释型、面向对象的语言,由吉多·范罗苏姆(Guido van Rossum)1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,因为他是一个叫Monty Python的喜剧团体的爱好者。

免费
第2课 时长 08:06
Python怎么下载和安装的,其配置有什么要求?

Python3.7.0下载,官网:www.python.org/downloads/ 环境变量配置问题,ddl缺失造成安装出错,咱们看视频怎么做!

免费
第3课 时长 09:02
开发环境介绍,交互模式怎么使用,IDE又是什么?

开发环境,英文是IDE(Integrated Development Environment ,集成开发环境)。开发环境本质上是对Python解释器python.exe的封装,可以说:“开发环境IDE,只是解释器的一个外挂而已”。使我们更方便的开发。常用的开发环境有5个,具体咱们看看视频中怎么说

免费
第4课 时长 07:21
IDLE开发环境的使用及如何建立Python源文件!

学了这节课后,马虎的人也会变成细心的人,细节决定成败。开始Python第一次编程源程序

免费
第5课 时长 08:21
写Python有什么格式要求,缩进、行注释及段注释要注意!

恰当的空格,缩进问题,逻辑行首行的空白用来决定逻辑行的缩进层次,从而用来决定语句的分组。语句从新的行的第一列开始。\n如果你有密集恐惧症,接来的课要当心!!!

免费
第6课 时长 11:56
遇到错误如何处理?《程序员修理手册》IT界的葵花宝典

马云有“功守道”,咱们有“守破离”!

免费
第7课 时长 08:28
海龟绘图坐标系问题,画笔有多种方法

开始学习图形化程序设计,我们这里从海龟画图开始,用Python做一些简单的效果,看老高如何编

免费
第8课 时长 13:00
海龟绘图画出奥运五环图吧

还记得那个难忘的2008年吗?此刻我们重温奥运五环,用python把它画出来!

免费
第2章: 内置数据类型
第9课 时长 07:27
你了解Python程序的构成吗?

python是模块化组成,一个模块对应python源文件,一般后缀名是:.py。模块有语句组成,运行python程序时,按照模块中语句的顺序依次执行。语句是python程序的构造单元,用于创建对象,变量赋值,调用函数、控制语句等

免费
第10课 时长 13:59
对象的基本组成和内存示意图

Python中,一切皆对象。对象的本质是:一个内存块,拥有特定的值,支持特定类型的相关操作

免费
第11课 时长 04:03
引用的本质,栈内存和堆内存以及内存示意图

在Python中,变量也成为:对象的引用。原因是,变量存储的就是对象的地址,也是通过地址引用了“对象”。Python是动态类型语言,也是强类型语言

免费
第12课 时长 08:12
标识符_帮助系统的简单使用_命名规则

标识符用于变量、函数、类、模块等名称,那么使用时有什么规则?

免费
第13课 时长 04:27
变量的声明和赋值,删除变量垃圾回收机制

变量的声明必须初始化,为什么?怎么删除变量,什么对象成为垃圾?本课程4分20秒为您讲解

免费
第14课 时长 05:16
链式赋值与系列解包赋值及常量

链式赋值于同一个对象赋值给多个变量,系列数据赋值给对应相同个数的变量。python支持常量吗?

免费
第15课 时长 05:58
内置数据类型与基本算术运算符

最基本内置数据类型有哪些?运算符使用规则会在5分50秒时间内为您讲解

免费
第16课 时长 10:01
整数与不同进制及其他类型转换成整数

什么是整数?是不是初中学习的整数?Python中的数如何转换成整数?

免费
第17课 时长 08:42
浮点数自动转换和强制转换及增强赋值运算符

浮点数称为float,浮点数用a×b^10形式的科学计算法表示。python编码中类型转换和四色五入,什么是增强赋值运算符?

免费
第18课 时长 08:26
时间表示与unix时间点及毫秒和微

老高说:知新而温故,通过学习时间回过头来学习整数和浮点数。也就是学习新知识的同时复习相关联的知识。您知道计算机的时间是从什么开始的?

免费
第19课 时长 08:06
多点坐标_绘出折线图_计算两点距离

定义多点坐标,如何用Python代码绘出折线并计算起点和终点距离

免费
第20课 时长 07:09
布尔值与比较运算符和逻辑运算符及短路问题

本课讲解布尔值、比较运算符、逻辑运算符及短路问题。Python2中没有布尔值,直接用数字0表示False,用数字1表示True。Python3中,把True和False定义成了关键字,但本质还是1和0,甚至可以和数字相加。比较运算符中,所有运算符返回1表示真,返回0表示假。这分别于特殊的变量True和False等价。

免费
第21课 时长 09:58
同一运算符与整数缓存问题

本节课主讲同一运算符用于比较两个对象的存储单元,实际比较的是对象的地址。Python仅仅对比较小的整数对象进行缓存,而并非是所整数有对像,需要注意的是,这仅仅是在命令行中执行,而在pycharm或者保存为文件执行,结果是不是一样的,这是因为解释器做好一部分优化。

免费
第22课 时长 11:40
字符串和unicode字符集及三种创建字符串方式

很多人初学编程时,总是担心自己数学不行,潜意识里认为数学好才能编程。实际上大多数程序员打交道最多的是“字符集”而不是“数字”。因为编程是用来解决现实问题的,因此逻辑思维的重要性远远超过数学能力,字符集的本质是:字符序列,python的字符串是不可以变得,我们无法对原字符串做任何修改,但是可以将字符串部分复制到新创建的字符集。python不支持单子字符串,单字符也是作为一个字符串使用

免费
第23课 时长 10:19
字符串转义字符、字符串拼接、字符串复制及获得键盘输入

我们可以使用“\\+特殊字符”,实现某些难以用字符表示的效果。比如换行等。字符串拼接、字符串复制,不换行打印,从控制台读取字符串

免费
第24课 时长 10:43
str()使用及使用[ ]提取字符、字符串替换和字符串切片

当我们调用print{}函数时,解释器自动调用了str()将非字符串的对象转成了字符串,我们在面向对象章节中详细解释这部分内容。字符串的本质就是字符序列,我们可以通过在字符串后面添加[],在[]里面指定偏移量,可以提取该位置的单个字符。replace()实现字符串替换,字符串切片slice操作

免费
第25课 时长 09:51
字符串切片slice操作及逆序

切片slice操作可以让我们快速的提取字符串,标准格式为:i【起始偏移量 start:终止偏移量end:步长step】。切片操作时,起始偏移量和终止偏移量不在[0,字符串长度,也不会报错。起始偏移量小于0则会当做0,终止偏移量大于“长度-1”会被当成-1]。

免费
第26课 时长 16:10
字符串_split()分割_join()合并_join()效率测试

split()可以基于指定分隔符将字符串分割成多个子字符串。如果不指定分割符,则默认使用空白字符(空格、换行符、制表符)。使用字符串拼接符+,会生成新的字符串对象,因此不推荐使用+来拼接字符串。推荐使用join函数,因为join函数在拼接字符串之前会计算所有字符串的长度,然后逐一拷贝,仅新建一次对象

免费
第27课 时长 07:02
字符串驻留机制与内存分析,字符串同一判断与值相等判断

字符串驻留:仅保存一份相同且不可变字符串的方法,不同的值被存放在字符串驻留池中。Python支持字符串驻留机制,对于符合标识规则的字符串会启用字符串驻留机制。字符串比较和同一性,我们可以直接使用==,!=对字符串进行比较,是否含有相同的字符,使用is/not is,判断两个对象是否同一个对象,比较的是对象的地址。

免费
第28课 时长 12:24
字符串常用查找方法与去除首位信息,大小写转换及排版

字符串有很多常用的方法,我们需要熟悉。我们通过表格将这些方法汇总起来,方便大家查阅,希望大家针对每一个方法都做一次测试

免费
第29课 时长 13:53
字符串format格式化及数字格式化操作

Python2.6开始,新增了一种格式化字符串的函数str.format(),他增强了字符串格式化的功能,数字格式化花样多,细听小高讲解

免费
第30课 时长 03:36
可变字符串io.StringIO

python中,字符串属于不可变对象,不支持原地修改,如果需要修改其中的值,智能创建新的字符串对象。但是,经常需要原地修改字符串可以使用io.StringIo对象或array模块

免费
第31课 时长 12:17
运算符总结与位操作符及优先级问题

这节课总结了运算符,操作符和优先级问题

免费
第3章: 序列
第32课 时长 09:37
列表_特点_内存分析

讲序列,小高老师纠结了很久。序列是一种数据存储方式,用来存储一些列的数据,在内存中,序列就是一块用来存放多个值得连续的内存空间。Python的列表大小可变,根据需要随时增加或缩小。字符串和列表都是序列类型,一个字符串是一个字符序列,一个列表是任何元素的序列。前面学习的很多字符串的方法,在列表中也有类似的用法,几乎一模一样

免费
第33课 时长 12:05
创建列表的4种方式_推导式创建列表

本课讲解基本语法[]创建,list()创建、range()创建整数列表,可以帮助我们方便的创建整数列表,在开发中及其有用;使用列表推导式可以非常方便的创建列表,在开发中经常使用。但是由于涉及到for循环和if语句,先初步了解

免费
第34课 时长 10:42
列表_元素的5种添加方式_效率问题

列表元素的增加和删除,当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担,在列表的尾部添加元素或删除元素,这会大大提高列表的操作效率,更多方法,视频中讲解

免费
第35课 时长 10:29
列表_元素删除的三种方式_删除本质是数组元素拷贝

del删除是删除列表指定位置的元素。pop()删除并返回指定位置元素,如果未指定位置则默认操作列表最后一个元素。remove()方法,删除首次出现的指定元素,若不存在该元素抛出异常。insert()插入元素,该方法可以将指定的元素插入到列表对象的任意指定位置,但这样插入所有元素进行移动,会影响处理速度。涉及大量元素时,尽量避免使用。

免费
第36课 时长 05:45
列表_元素的访问_元素出现次数统计_成员资格判断

通过索引直接访问元素,索引的区间在[0,列表长度]这个范围。超过这个范围则会抛出异常。index()获得指定元素在列表中首次出现的索引。count()获得指定元素在列表中出现的次数。len()返回列表长度,即列表中有多少元素。成员资格判断,是否在指定的元素,我们可以使用count()方法,返回0则表示不存,大于0则表示存在。但是,一般我们会使用更加简洁的in关键字来判断,直接返回true或false

免费
第37课 时长 09:48
列表_切片slice操作

我们在前面学习字符串时,学习过字符串的切片操作,对于列表的切片操作和字符串类似。切片是Python序列及其重要的操作,适用于列表、元素、字符串等等

免费
第38课 时长 07:36
列表_排序_revered逆序_max_min_sum

修改愿列表,不新建列表的排序。建新列表的排序,可以通过内置函数sorted()进行排。reversede ()返回迭代器,内置函数也支持进行逆序排列。于列个能行表对象revenue()方法不足的是,内置函数revenue不对愿列表做任何修改,只是返回一个逆序排列的迭代器对象

免费
第39课 时长 11:55
列表_二维列表_表格数据的存储和读取

一维列表可以帮助我们存储一维列表、线性的数据。二维列表可以帮助我们存储二维、表格的数据。\n40.列表属于可变序列,可以任意修改列表中的元素。元素属于不可变序列,不能修改元组中的元素。因此,我们只需要学习元组的创建和删除,元组中元素的访问和计数即可。元组的创建,通过()创建元组,小括号可以省略。如果元组只有一个元素,则必要侯庙加逗号。

免费
第40课 时长 08:27
元组_特点_创建的两种方式_tuple()要点

列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修元组中的元素。因此,元组没有增加元素、修改。删除元素相关的方法

免费
第41课 时长 05:37
元组_元素访问_计数方法_切片操作_成员资格判断_zip()

元组的元素不能修改的。元组的元素访问和列表一样,只不过返回的仍然是元组对象。列表关于排序的方法list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排序,只能使用内置函数sorted(tupleObj),并生成新的列表。zip将多个列表对应位置的元素组合成为元组,并返回这个zip对象

免费
第42课 时长 08:02
元组_生成器推导式创建元组_总结

生成器推导式与列表推导式类似,只是生成推导式使用小括号。列表推导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象。可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的_next_()方法进行遍历,或者直接作为迭代器对象来使用,元素访问结束后,如果需要重新访问其中的元素,必须重新创建该生成器对象

免费
第43课 时长 10:49
字典特点_4种创建方式_普通_dict_zip_formkeys

字典是“键值对”的无序可变序列,字典中的每个元素都是一个“键值对”,包含:“键值对”和“值对象的。可以通过“建”对象”实现快速获取、删除、更新对应的“值对象的”。列表中我们可以通过“下表数字”找到对应的对象。字典中通过“键对象”找到对应的“值对象”。“键”是任意的不可变数据,比如:整数、浮点数、字符串、元组。但是:列表字典、集合这些可变对象,不能作为“键”。并且“键”不可重复。

免费
第44课 时长 05:12
字典_元素的访问_键的访问_值的访问_键值对的访问

字典元素的访问,怎么样通过键值对获得相应的值?get()方法获得值,有什么优点?如何列出所有键值对?列出所有的键,所有的值。len()键值对的个数,本课程一一讲解

免费
第45课 时长 06:07
字典_元素的添加_修改_删除

字典元素的添加、删除、修改。给字典新增“键值对”。如果“键”已经存在,则覆盖旧的键值对,如果“键”不存在,新增“键值对。使用update()将新字典中所有键值对全部添加到旧字典对象上。如果key有重复,则直接覆盖。字典中元素的删除,可以使用del()方法,或者clear()删除所有键值对;pop()删除指定键值对,并返回对应的“值对象”。popitem()随机删除和返回该键值对。

免费
第46课 时长 03:35
字典_序列解包用于列表元组字典

序列解包可以用于元组、列表、字典。序列解包可以让我们方便的对多个变量赋值。序列解包用于字典时,默认是对“键”进行操作如果需要对;如果需要对键值对操作,则需要使用items();如果需要对“值”进行操作,则需要使用values()

免费
第47课 时长 10:26
字典_复杂表格数据存储_列表和字典综合嵌套

表格数据使用字典和列表存储练习,并实现fang访问

免费
第48课 时长 11:25
字典_核心底层原理_内存分析_存储键值对过程

加餐了!!!字典对象的核心是散列表。散列表是一个稀疏数组,数组的每个单元叫做bucket,每个bucket有两部分;一个是键对象的引用,一个是值对象的引用。由于,所有bucket结构和大小一致,我们可以通过偏移量来读取指定bucket

免费
第49课 时长 06:25
字典_核心底层原理_内存分析_查找值对象过程

一个键值对是如何存储到数组中的,根据键值对像取到值对象,理解起来简单了。当调用a.get(\

免费
第50课 时长 05:07
集合_特点_创建和删除_交集并集差集运算

集合是无序可变,元素不能重复。实际上,集合底层是字典实现,集合的所有元素都是字典中的“键对象”,因此是不能重复的且唯一的。课程中实际操作集合创建和删除。集合和数学概念一样,集合也提供并集、交集、差集等运算

免费
第4章: 控制语句
第51课 时长 14:05
Pycharm开发环境的下载安装配置_项目管理

PyCharm开发环境的使用。下载对应的版本进行安装,视频中进行一步一步进行讲解安装

免费
第52课 时长 15:42
单分支选择结构_条件表达式详解

选择结构,通过判断条件是否成立,来决定执行哪个分支。选择结构有多种形式,分为单分支,双分支,多分支。

免费
第53课 时长 05:19
双分支选择结构_三元运算符的使用详解

本课讲解双分支选择结构代码实现,以及三元条件运算符的使用。写法多种多样,看您如何巧妙运用

免费
第54课 时长 09:20
多分支选择结构

多分支结构是多个条件判断表达式,课程中以学生分数举例,看看多分支的魅力所在吧

免费
第55课 时长 14:11
选择结构的嵌套

选择结构的嵌套,也就是不同的条件表达式集合,一个套一个,使 用时一定要注意控制好不同级别代码块的缩进量,因为缩进量决定了代码的从属关系

免费
第56课 时长 10:40
while循环结构_死循环处理

循环结构用来重复执行一条或多条语句。表达这样的逻辑如果符合条件,则反复执行循环体里的语句。在每一次执行完后都会判断一次条件是否为True,如果为True则重复执行循环体里的语句。注意死循环。while循环和for循环如何使用,那个用的比较多?

免费
第57课 时长 13:03
for循环结构_遍历迭代对象

本课介绍for循环和可迭代对象遍历。for循环通常用于可迭代对象的遍历。学习之后,看看您能运用在生活中的哪方面?

免费
第58课 时长 06:14
嵌套循环

一个循环体可以嵌入另一个循环,一般称为“嵌套循环”,或是“多重循环”。打印一个数字正方形,看过本课之后九九乘法表是否能打印出效果,还您能做出那些呢?

免费
第59课 时长 08:41
嵌套循环练习_九九乘法表_打印表格数据

这节课练习嵌套循环,打印出九九乘法表,打印出表格数据,你还有什么花样?尽情展现,可以发评论区或课堂笔记里,让大家共同学习一下

免费
第60课 时长 06:08
强大的break语句

break语句可用于while和for循环,用来结束整个循环,当有嵌套循环时,break语句只能跳出最近一层循环,试一下,如何使用break结束循环体

免费
第61课 时长 05:11
特殊的continue语句

本节课讲解continue语句用于结束本次循环,继续下一次。多个循环嵌套时,continue也是应用于最近的一层循环。会用员工的薪资进行举例

免费
第62课 时长 03:58
及其重要循环代码优化技巧

else、for循环可以附带一个else语句。while语句没有被break语句结束,则会执行else子句,否则不执行。用一个小例子讲解:员工一共4人,录入4位员工的薪资。全部录入后显示出“您已经全部录入4名员工的薪资”,最后打印出,录入的薪资和平均薪资

免费
第63课 时长 06:55
循环代码优化技巧

虽然计算机越来越快,空间也越来越大,我们仍然要在性能问题上“斤斤计较”。编写循环时,遵守下面三个原则可以大大提高运行效率,避免不必要的低效计算:\n1.尽量减少循环体内部不必要的计算\n2.嵌套循环中,尽量减少循环的计算\n3.局部变量查询比较快,尽量使用局部循环的计算\n课程中举例说明,看看差距在哪儿

免费
第64课 时长 05:02
zip()并行迭代

本课讲解使用zip()并行迭代。我们可以通过zip()函数对多个序列进行并行迭代,zip()函数在最短序列“用完”时就会停止。看看课程实际操作

免费
第65课 时长 20:32
推导式创建序列_列表推导式_字典推导式_集合推导式_生成器推导式

这节课专门简介推导式创建序列。推导式是从一个或多个迭代器快速创建序列的一种方法。它可以将循环和条件判断结合,从而避免冗长的代码。推导式是典型的python风格,会使用它代表你已经超越过python初学者的水平。课程举例说明推导式创建序列列表、字典、集合和生成器推导式

免费
第66课 时长 15:01
综合练习_绘制不同颜色的多个同心圆_绘制棋盘

前面我们学过海龟画图,本节课练习画同心圆,试试看,是否能自己用Python代码实现同心圆?看看小高如何一步一步分析实现?绘制棋盘看看你你的身手!

免费
第5章: 函数和内存分析
第67课 时长 14:03
函数的基本概念_内存分析_函数的分类_定义和调用

函数是可重用的程序代码块,函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。一致性指的是,只要修改函数的代码,则所有调用该函数的地方都能得到体现。在编写函数时,函数体中的代码写法和我们前面讲述的基本一致,只是对代码实现了封装,并郑家乐函数调用、传递参数、返回计算结果等内容。为了让大家更容易理解,掌握更深刻。我们要深入内存底层进行分析。绝大多数语言内存底层都是高度相似,掌握学习其他语言也简单

免费
第68课 时长 11:14
形参和实参_文档字符串_函数注释

本课讲解形参和实参,什么叫形参和实参?文档字符串,程序的可读性最重要,一般建议在函数体开始的部分附上函数定义说明,这就是“串”,也有人成为“函数的注释”。通过三个单引号或者三个双引号来实现,中间可以加入多行文字进行说明。

免费
第69课 时长 08:59
返回值详解

本课讲解返回值,意思是调用某个函数返回的值。\nreturn返回值要点:\n1.如果函数中间包含return语句,则结束函数执行并返回值\n2.如果函数体中不包含returny语句,则返回None值\n3.要返回多个返回值,使用列表、元组、字典、集合将多个值“存起来”即可

免费
第70课 时长 07:38
函数也是对象_内存分析

python中“一切都是对象”。实际执行def定义函数后,系统就创建了相应的函数对象。通过执行代码,我们知道,执行def时,系统中会创建函数对象,并通过print_star这个变量进行引用

免费
第71课 时长 13:59
变量的作用域_全局变量_局部变量_栈帧内存分析讲解

变量起作用的范围成为变量的作用域,不同作用域内同名变量之间互不影响,变量分为全局变量、局部变量。全局变量:1.在函数和类定义之外声明的变量。作用域为定义的模块,从定义位置开始知道模块介绍2.全局变量降低函数的通用性和可读性。应尽量避免全局变量的使用3.全局变量一般做常量使用4.函数内要改变全局变量的值,使用global声明一下。局部变量有哪些,课程中药做好笔记

免费
第72课 时长 14:08
局部变量和全局变量_效率测试

局部变量的查询和访问速度比全局变量快,优先考虑使用,尤其是在循环的时候。特强调效率的地方或者循环次数较多的地方,可以通过将全局变量传递为局部变量运行速度

免费
第73课 时长 08:40
参数的传递_传递可变对象_内存分析

函数的参数传递本质上就是:从实参到形参的赋值操作。python中“一起皆对象”,所有的赋值操作都是“引用赋值”。所以python中参数的传递都是“引用传递”,不是“值传递”。传递参数是可变对象,(例如:列表、字典、自定义的其它可变对象),实际传递的还是对象的引用。在函数体中不创建新的对象拷贝,而是可以直接修改所传递的对象

免费
第74课 时长 05:07
参数的传递_传递不可变对象_内存分析

本节课讲解,传递参数是不可变对象(例如:int、float、字符串、元组、布尔值),实际传递的还是对象的引用,在“赋值操作”,由于不可变对象无法修改,系统会新创建一个对象

免费
第75课 时长 15:25
浅拷贝和深拷贝_内存分析

为了更深入的了解参数传递的底层原理,我们需要简介一下“浅拷贝和深拷贝”。可以使用内置函数:copy(浅拷贝)、deepcopy(深拷贝)。\n浅拷贝:不拷贝子对象的内容,值是拷贝对象的应用\n深拷贝:会连子对象的内存也全部拷贝一份,对子对象的修改不会影响源对象

免费
第76课 时长 10:49
参数的传递_不可变对象含可变子对象_内存分析

传递不可变对象是浅拷贝,本课再次举例说明,各位学员搬上小板凳来围观

免费
第77课 时长 08:38
参数的类型_位置参数_默认值参数_命名参数

函数调用时,实参默认按位置顺序传递,需要个数和形参匹配。按位置传递的参数,称为“位置参数”。默认值参数,我们可以为某些参数设置默认值,这样这些参数在传递时是可选的,称为“默认值参数”。默认值参数放到参数后面

免费
第78课 时长 04:19
参数的类型_可变参数_强制命名参数

可变参数指的是“可变数量的参数”。分两种情况:1.*param(一个星号),将多个参数收集到一个“元组”对象中2.**param(两个星号),将多个参数收集到一个“字典”对象中。强制命名参数,在带星号的“可变参数”后面增加新的参数,必须是“强制命名参数”

免费
第79课 时长 10:33
lambda表达式和匿名函数

本节课讲解lambda表达式和匿名函数。lambda表达式可以用来声明匿名函数,lambda函数是一种简单的,在同一行中定义函数的方法。lambda函数时间生成了一个函数对象。\nlambda表达式只允许包含一个表达式,不能包含复杂语句,该表达式的计算结果就是函数的返回值

免费
第80课 时长 06:07
eval()函数用法

本课介绍eval()函数,功能:将字符串strf当成有效的表达式来求值并返回计算结果。\n语法:eval(source[globals[locals]])>value\n参数:source:一个python表达式或函数compile()返回的代码对象\nglobals:可选,必须是dictionary\nlocals:可选,任意映射对象

免费
第81课 时长 21:38
递归函数_函数调用内存分析_栈帧的创建

递归函数指的是:自己调用自己的函数,在函数体内部直接或者间接的自己调用自己。递归类似于中学数学的“数学归纳法”。每个递归数必须包含两个部分。\n1.终止条件:表示递归什么什么时候结束。一般用于返回值,不在调用自己\n2.递归步骤:把第n步的值和第n+1步相关联。\n递归函数由于会创建大量的函数对象、过量的消耗内存和运算能力。在处理大量数据时,谨慎使用。

免费
第82课 时长 06:41
递归函数_阶乘计算案例

本节课做递归小练习,用它做一下数学中的阶乘。您是否在课前做到?看看课程,跟自己的想法是否一样?\n

免费
第83课 时长 11:25
嵌套函数_内部函数_数据隐藏

嵌套函数也可以叫做内部函数,在函数内部定义的函数,您试试,在三角形中每个中心点再画三角形,用递归完成它\n

免费
第84课 时长 05:43
nonlocal_global

nonlocal用来声明外层的局部变量。global用来声明全局变量。使用nonlocal声明外层局部变量

免费
第85课 时长 06:09
LEGB规则

如果某个name映射在局部(local)命名空间中没有找到,接下来就会在闭包作用域(enclosed)进行搜索,如果必报作用域也没有找到,python就会到全局(global)命名空间中进行查找,最后会在内建(built-in)命名空间搜索

免费
第6章: 面向对象和内存分析
第86课 时长 14:52
面向对象和面向过程的区别_执行者思维_设计者思维

这节课讲面向对象编程的思想,主要是针对大型软件设计而来的。面向对象使程序的扩展性更强、可读性更好,编程可以像搭积木一样简单。

免费
第87课 时长 08:29
对象的进化故事

随着编程面临的问题越来越复杂,编程语言本身也在进化,从主要处理简单数据开始,随着数据变多进化“数组”;数据类型变复杂,进化除了“结构体”;处理数据的方式和逻辑变复杂,进化除了“对象”

免费
第88课 时长 15:51
类的定义_类和对象的关系

累的定义,我们把对象比作一个“饼干”,累就是制造这个饼干的“模具”。我们通过类的定义数据类型的属性(数据)和方法(行为),也就是说,“类将行为和状态打包在一起”对象是类的具体实体,一般称为“类的实体”。类看做“饼干模具”。对象就是根据这个“模具”制造出来的“饼干”

免费
第89课 时长 07:41
构造函数init

类是抽象的,也称为“对象的模板”。我们需要通过这个类这个模板,创建类的实体对象,然后才能使用类定义的功能。。\n我,们前面说过一个python对象包含三个部分:id(identity识别码)、type(对象类型)、value(对象的值)

免费
第90课 时长 09:24
实例属性_内存分析

实例属性是从属于实对象对象的属性,也称为“实例变量”。他的使用有如下几个要点:\n1.实例属性一般在_init_()方法中通过代码定义:self实例属性名 = 初始化\n2.在本类的其他实例方法中,也是通过self进行访问:self实例属性名\n3.创建实例对象后,通过实例对象访问:\nobj01 = 类名() #创建对象那个,调用_init_()初始化属性\nobj01 .实例属性名 = 值 #可以给已有属性赋值,也可以新加属性

免费
第91课 时长 13:24
实例方法_内存分析方法调用过程_dir()_isinstance

实例方法是从属于实例对象的方法。\n要点:\n1.定义实例方法时,第一个参数必须为self。和前面一样,self指当前的实例对象。\n2.调用实例方法时,不需要也不能给self传参。self由解释器自动传参。

免费
第92课 时长 06:41
类对象

类对象定义格式中,”class 类名:“。实际上,当解释器执行class语句时,就会创建一个类对象

免费
第93课 时长 09:28
类属性_内存分析创建类和对象的底层

类属性是从属于”类对象“的属性,也称为”类变量“。由于雷属性从属于类对象,就可以被所有实例对象共享。

免费
第94课 时长 10:16
类方法_静态方法_内存分析图示

要点:\n1.@classmethod必须位于方法上面一行\n2.第一个cls必须有;cls指的就是“类对象”本省\n3.调用方法格式:“类名.方法名(参数列表)”。参数列表中,不需要也不能给cls传值\n4.类方法中访问实例属性和实例方法会导致错误\n5.子类继承父类方法时,传入cls是子类对象,而非父类对象

免费
第95课 时长 07:36
析构方法和垃圾回收机制

del方法称为“析构方法”,用于实现对象被销毁时所需的操作。\npython实现自动的垃圾回收。对象没有被引用(引用计数为0),由垃圾回收器调用_del_方法

免费
第96课 时长 07:58
__call__()方法和可调用对象

定义了_call_方法的对象,称为“课调用对象”,即该对象可以像函数一样被调用

免费
第97课 时长 10:27
方法没有重载_方法的动态性

python中,方法的参数没有生命类型(调用时确定参数的类型),参数的数量也可以由可变参数控制。因此,python中是没有方法的重载的。定义一个方法即可有多重调用方式,相当于实现了其他语言中的方法的重载

免费
第98课 时长 07:02
私有属性

python对于类成员没有严格的访问控制限制,这与其他方面对象语言有区别。关于私有属性和私有 方法,有如下几点:\n1.通常我们约定,两个下划线开头的属性是私有的(private)其他为公共的(public)\n2.类部类可以访问私有属性(方法)\n3.类外部不能直接访问私有属性(方法)\n4.类外部可以通过“_类名_私有属性(方法)名”访问私有属性(方法)

免费
第99课 时长 05:14
私有方法

实际操作,私有方法,本质是一样的

免费
第100课 时长 15:17
@property装饰器_get和set方法

@property可以将一个方法的调用方式变成“属性调用”。

免费
第101课 时长 07:16
面向对象的三大特征说明

面向对象三大特征\n封装(隐藏):隐藏对象的属性和实现细节,只对外提供必要的方法。相当于“细节封装起来”,只是对外暴露“相关调用方法”\n继承:继承可以让子类具有父类的特性,提高了代码的复用性\n多态:多态是指同一个方法调用由于对象不同会产生不同的行为。

免费
第102课 时长 17:16
继承

继承就是面向对象程序设计的重要特征也是实现“代码复用”的重要手段。如果一个新类继承自一个设计好的类,就直接具备了已有类的特征,就是大大降低了工作难度。已有的类,我们称为“父类或者基类”,新的类,我们称为“子类或者派生类”

免费
第103课 时长 05:05
方法的重写

成员继承:子类继承了父类除了构造方法之外的所有成员\n方法重写:子类可以重新定义父类中的方法,这样就会覆盖父类的方法,也称为“重写”

免费
第104课 时长 04:56
object根类_dir()

object类是所有类的父类,因此所有的类都有object类的属性和方法。深入研究object类的结构,对继续深入学习python很有好处。

免费
第105课 时长 03:28
重写__str__()方法

object有一个_str_()方法,用于返回一个对于“对象的描述”,对应于内置函数str()经常用于print()方法,帮助我们查看对象的信息。_str_()可以重写。

免费
第106课 时长 04:05
多重继承

python支持多重继承,一个子类可以有多个“直接父类”。这样,就具备了“多个父类”的特点。但由于,这样会被“类的整体层次”搞的异常复杂,尽量避免使用。

免费
第107课 时长 02:49
mro()

python支持多个继承,如果父类中有相同名字的方法,在子类没有指定父类名时,解释器将“从左到右”按顺序搜索

免费
第108课 时长 05:07
super()获得父类的定义

在子类中,如果想要获得父类的方法时,我们可以通过super()来做。super()代表父类的定义,不是父类对象

免费
第109课 时长 07:35
多态

多态是指同一个方法调用由于对象不同可能会产生不同的行为。\n注意点:\n1.多态是方法的多态,属性没有多态\n2.多态的存在有两个必要条件:继承、方法重写。

免费
第110课 时长 09:55
特殊方法和运算符重载

python的运算符实际是通过调用对象的特殊方法实现的。

免费
第111课 时长 06:17
特殊属性

python对象中包含了很多双下划线开始和结束的属性,这些以为是特殊属性,有特殊用法

免费
第112课 时长 12:36
对象的浅拷贝和深拷贝_内存分析

变量的赋值操作:只是形成两个变量,实际还是指向同一个对象\n浅拷贝:python拷贝一般都是浅拷贝。拷贝时,对象包含的子对象内容不拷贝。因此,源对象和拷贝对象会引起用一个子对象\n深拷贝:使用copy模块的deepcopy函数,递归拷贝对象包含的子对象。源对象和拷贝对象所有的子对象也不同

免费
第113课 时长 08:41
组合

“is-a”关系,可以使用“继承”,从而实现了子类拥有的父类的方法和属性。“is-a”关系指的是类似这样的关系:狗是动物,dog is animal.狗类就是应该继承动物。\n“has-a”关系指的是这样的关系:手机拥有CPU。MobilePhone has a CPU.

免费
第114课 时长 09:25
设计模式_工厂模式实现

设计模式是面向对象语言特有的内容,是我们在面临某些一类问题时候固定的做法,设计模式有很多种,比较流行的是GOF23种设计模式

免费
第115课 时长 13:02
设计模式_单例模式实现

单列模式的核心作用是确保一个类只有一个实例,并且提供一个访问该实例的全局访问点\n单例模式只生成一个实例对象,减少了对系统资源的开销。当一个对象的生产需要比较多的资源,如读取配置文件、产生其他依赖对象时,可以产生一个“单例对象”,然后永久驻留内存中,宠儿极大的降低开销。

免费

课程海报

python人工智能基础第一季
python人工智能基础第一季
python人工智能基础第一季
python人工智能基础第一季

学生点评

陈鑫ykt1567078430717
已学习85课 评5星:
huaxiacmu
已学习51课 评5星:
易致绅
已学习115课 评5星:
Lykt43300952746031686
已学习92课 评5星:
ykt61901056203505057
已学习82课 评5星:
82集的内容是不是放错了
ykt14111099740042131
已学习90课 评5星:
非常不错,但是第82集上传错了
墩墩儿ykt1496613237375
已学习57课 评5星:
第55课时中的练习,第一层用for循环不能实现重新输入再做判断的效果,要用whlie循环才可以
待我訫始終妳好mooc
已学习64课 评5星:
真心讲的好,听课很舒服
ykt50453680143973209
已学习59课 评5星:
我们的生活方式是什么样子
已学习45课 评5星:
zhangshunjiayou
已学习48课 评5星:
很好!
梦想建筑师
已学习43课 评5星:
Slowtimeykt1523967422497
已学习1课 评5星:
市井造化
已学习115课 评5星:
满满的干货!
ykt1465636298120
已学习115课 评5星:
谢谢老师
大青ykt1577722513800
已学习73课 评5星:
ykt48232305760538484
已学习39课 评5星:
郑镇城ykt1577502747650
已学习6课 评5星:
ykt9990182306776454
已学习5课 评5星:
真入门到精通课程
dhdhdhshshsh
已学习0课 评5星:
本文完

北京尚学堂老师 更多课程