# 第一章 计算机基础知识## 课程介绍课程名称:Python基础视频教程讲师:尚硅谷教育,李立超(lichao.li@foxmail.com)面向的层次:From Zero to Hero(从入门到精通)学习方法:认真听讲,多敲代码必备技能:① 计算机基本操作② 打字的速度③ 英语(能阅读基本的英文文档)## 计算机是什么在现实生活中,越来越无法离开计算机了电脑、笔记本、手机、游戏机、汽车导航、智能电视 。。。计算机就是一个用来计算的机器!目前来讲,计算机只能根据人类的指令来完成各种操作,人让它干嘛他就得干嘛所以我们学习计算机,就是学习如何控制计算机!## 计算机的组成计算机由两部分组成:硬件 和 软件硬件包含:键盘、鼠标、显示器、CPU、主板、内存、硬盘 。。。硬件是看的见摸得着的软件包含:系统软件(windows、macOS、Linux)和应用软件(office 、QQ、绝地求生)软件是看的见摸不着的,软件负责控制计算机中的硬件    ## 计算机的使用方式我们必须要通过软件来对计算机完成各种操作,但是注意,软件中并不是所有的功能都会对用户开放,用户需要调用软件提供的接口(Interface 交互界面)来操作计算机用户界面分成两种:TUI(文本交互界面)和 GUI(图形化交互界面)## windows的命令行命令行就是文本交互界面,通过命令行可以使用一个一个的指令来操作计算机任何的计算机的操作系统中都包含有命令行(windows、linux、macOS)命令行有多个不同的名字:命令行、命令行窗口、DOS窗口、命令提示符、CMD窗口、Shell、终端、Terminal练习1:通过搜索引擎来搜索一下,各个操作系统当中的命令行窗口的样式1.如何进入到命令行win键 + R 出现运行窗口,输入cmd,然后回车2.命令行的结构- 版本及版权声明(一般没有什么用)Microsoft Windows [版本 10.0.16299.431](c) 2017 Microsoft Corporation。保留所有权利。- 命令提示符C:\Users\lilichao>  C:  - 当前所在的磁盘根目录- 可以通过 x: 来切换盘符(x表示你的盘符)\Users\lilichao- 所在磁盘的路径,当前所在的文件夹- cd 来切换目录>- 命令提示符,在大于号后边可以直接输入指令练习2:尝试使用多种方式进入到你的系统的命令行,并且观察你的和我的有什么区别? 3.常用的dos命令dir 查看当前目录下的所有文件(夹)cd 进入到指定的目录. 表示当前目录.. 表示上一级目录md 创建一个目录rd 删除一个目录    del 删除一个文件cls 清除屏幕命令的语法命令 [参数] [选项]练习3:通过搜索引擎搜索一下其他的一些常用DOS命令,并尝试使用一些命令的选项    4.小技巧- 方向键上下,查看命令的历史记录- tab键自动补全命令        ## 环境变量(environment variable)环境变量指的就是操作系统当中的一些变量。可以通过修改环境变量,来对计算机进行配置(主要是来配置一些路径的)1.查看环境变量> 右键 计算机(此电脑),选择属性> 系统界面左侧选择 高级系统设置> 选择环境变量环境变量界面分成了两个部分,上边是用户环境变量,下边是系统环境变量建议只修改用户的环境变量,不要修改系统的环境变量2.添加环境变量> 通过新建按钮添加环境变量> 一个环境变量可以由多个值,值与值之间使用;(英文)隔开3.修改环境变量> 通过编辑按钮来修改环境变量4.删除环境变量> 通过删除按钮来删除环境变量练习4:进入到环境变量的界面,创建一个USERNAME环境变量,修改USERNAME环境变量,并尝试添加多个值,然后删除USERNAME环境变量    ## path环境变量path环境变量中保存的是一个一个的路径。当我们在命令行中输入一个命令(或访问一个文件时),系统会首先在当前目录下寻找,如果找到了则直接执行或打开如果没有找到,则会依次去path环境变量的路径中去寻找,直到找到为止如果path环境变量中的路径都没有找到,则报错'xxx' 不是内部或外部命令,也不是可运行的程序或批处理文件。我们可以将一些经常需要访问到的文件会程序的路径,添加到path环境变量中,这样我们就可以在任意的位置访问到这些文件了注意事项:1.如果环境变量中没有path,可以手动添加2.path环境变量不区分大小写 PATH Path path   3.修改完环境变量必须重新启动命令行窗口4.多个路径之间使用;隔开练习5:在桌面创建一个hello文件夹,文件中创建一个abc.txt输入随意的内容然后将hello的路径添加到path环境变量中,尝试在任意位置访问abc.txt最后将hello路径从path环境变量中删除。             ## 进制- 十进制(最常用的进制)- 十进制就是满十进一的进制- 十进制当中一共有10个数字0 1 2 3 4 5 6 7 8 9- 十进制如何计数0 1 2 3 4 5 6 7 8 9 10 11 12 。。。 19 20 。。。29 30- 二进制(计算机底层使用的进制)- 满二进一- 二进制中一共有2个数字0 1- 二进制如何计数0 1 10 11 100 101 110 111 1000- 所有的数据在计算机底层都是以二进制的形式保存的,计算机只认二进制- 可以将内存想象为一个一个的小格子,小格子中可以存储一个0或一个1- 内存中的每一个小格子,我们称为1bit(位)    bit是计算机中的最小的单位byte是我们最小的可操作的单位8bit = 1byte(字节)    1024byte = 1kb(千字节) 1024kb = 1mb(兆字节)1024mb = 1gb(吉字节)1024gb = 1tb(太字节)。。。- 八进制(一般不用)- 满八进一- 八进制中一共有8个数字0 1 2 3 4 5 6 7- 八进制如何计数0 1 2 3 4 5 6 7 10 11 。。。 17 20 。。。27 30- 十六进制- 满十六进一- 十六进制中一共有16个数字由于十六进制是满16才进位,所以十六进制中引入了a b c d e f来表示 10 11 12 13 14 15   0 1 2 3 4 5 6 7 8 9 a b c d e f - 十六进制如何计数    0 1 2 3 4 5 6 7 8 9 a b c d e f 10 11 12 。。。 1a 1b 1c 1d 1e 1f20 21 22 。。。 2a 2b 2c 2d 2e 2f 30    - 我们在查看二进制数据时,一般会以十六进制的形式显示## 文本文件和字符集- 文本分成两种,一种叫做纯文本,还有一种叫做富文本- 纯文本中只能保存单一的文本内容,无法保存内容无关的东西(字体、颜色、图片。。。)- 富文本中可以保存文本以外的内容(word文档)- 在开发时,编写程序使用的全都是纯文本!- 纯文本在计算机底层也会转换为二进制保存,将字符转换为二进制码的过程,我们称为编码将二进制码转换为字符的过程,我们称为解码编码和解码时所采用的规则,我们称为字符集- 常见的字符集:ASCII- 美国人编码,使用7位来对美国常用的字符进行编码- 包含128个字符ISO-8859-1- 欧洲的编码,使用8位- 包含256个字符GB2312GBK国标码,中国的编码Unicode   万国码,包含世界上所有的语言和符号,编写程序时一般都会使用Unicode编码Unicode编码有多种实现,UTF-8 UTF-16 UTF-32最常用的就是UTF-8- 乱码编写程序时,如果发现程序代码出现乱码的情况,就要马上去检查字符集是否正确        ## Sublime Text 3- 纯文本编辑器- Package Control(Sublime的包管理器)- Sublime Text3中的插件,通过该插件可以向Sublime中安装新的包- 练习:1.安装Sublime Text32.在Sublime中安装Package Control3.通过Package Control安装Sublime的中文语言包   4.尝试为你的Sublime安装新的主题(通过搜索引擎搜索)
# 第二章 Python入门## 什么是计算机语言计算机就是一台用来计算机的机器,人让计算机干什么计算机就得干什么!需要通过计算机的语言来控制计算机(编程语言)!计算机语言其实和人类的语言没有本质的区别,不同点就是交流的主体不同!计算机语言发展经历了三个阶段:机器语言- 机器语言通过二进制编码来编写程序- 执行效率好,编写起来太麻烦符号语言(汇编)- 使用符号来代替机器码- 编写程序时,不需要使用二进制,而是直接编写符号- 编写完成后,需要将符号转换为机器码,然后再由计算机执行符号转换为机器码的过程称为汇编- 将机器码转换为符号的过程,称为反汇编  - 汇编语言一般只适用于某些硬件,兼容性比较差  高级语言- 高级语言的语法基本和现在英语语法类似,并且和硬件的关系没有那么紧密了- 也就是说我们通过高级语言开发程序可以在不同的硬件系统中执行- 并且高级语言学习起来也更加的容易,现在我们知道的语言基本都是高级语言- C、C++、C#、Java、JavaScript、Python 。。。## 编译型语言和解释型语言计算机只能识别二进制编码(机器码),所以任何的语言在交由计算机执行时必须要先转换为机器码,也就是像 print('hello') 必需要转换为类似 1010101 这样的机器码   根据转换时机的不同,语言分成了两大类:编译型语言- C语言- 编译型语言,会在代码执行前将代码编译为机器码,然后将机器码交由计算机执行- a(源码) --编译--> b(编译后的机器码)- 特点:执行速度特别快跨平台性比较差解释型语言 - Python JS Java- 解释型语言,不会在执行前对代码进行编译,而是在执行的同时一边执行一边编译- a(源码)--解释器--> 解释执行  - 特点:执行速度比较慢跨平台性比较好   ## Python的介绍   Python是解释型语言Python(英国发音:/ˈpaɪθən/ 美国发音:/ˈpaɪθɑːn/),是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆创造,第一版发布于1991年。可以视之为一种改良(加入一些其他编程语言的优点,如面向对象)的LISP。作为一种解释型语言,Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。相比于C++或Java,Python让开发者能够用更少的代码表达想法。不管是小型还是大型程序,该语言都试图让程序的结构清晰明了。 Life is short you need Python (人生苦短,我用Python)    Python的用途:WEB应用Facebook 豆瓣 。。。爬虫程序科学计算自动化运维大数据(数据清洗)云计算桌面软件/游戏人工智能。。。     ## Python开发环境搭建开发环境搭建就是安装Python的解释器Python的解释器分类:CPython(官方)用c语言编写的Python解释器PyPy用Python语言编写的Python解释器IronPython用.net编写的Python解释器Jython用Java编写的Python解释器步骤:1.下载安装包 python-3.6.5.exe- 3.x- 2.x    2.安装(傻瓜式安装) 3.打开命令行窗口,输入python 出现如下内容Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.>>>    ## Python的交互界面当我们通过命令行来输入Python,所进入到的界面就是Python的交互界面结构:版本和版权声明:Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 16:07:46) [MSC v.1900 32 bit (Intel)] on win32Type "help", "copyright", "credits" or "license" for more information.命令提示符:>>>在命令提示符后可以直接输入Python的指令!输入完的指令将会被Python的解释器立即执行!安装Python的同时,会自动安装一个Python的开发工具IDLE,通过IDLE也可以进入到交互模式但是不同的是,在IDLE中可以通过TAB键来查看语句的提示。IDLE实际上就是一个交互界面,但是他可以有一些简单的提示,并且可以将代码保存交互模式只能你输入一行代码,它就是执行一行,所以他并不适用于我们日常的开发! 仅可以用来做一些日常的简单的测试!   我们一般会将Python代码编写到一个py文件中,然后通过python指令来执行文件中的代码练习:自己尝试创建一个py文件,并向文件中写入python打印语句(print...) 然后执行该文件。如果你的系统的扩展名无法修改,请尝试自行baidu!## Python和Sublime的整合1.在Sublime中执行Python代码,ctrl + b 自动在Sublime内置的控制台中执行  这种执行方式,在某些版本的Sublime中对中文支持不好,并且不能使用input()函数2.使用SublimeREPL来运行python代码    安装完成,设置快捷键,希望按f5则自动执行当前的Python代码{ "keys": ["f5"], "caption": "SublimeREPL:Python","command": "run_existing_window_command", "args":{"id": "repl_python_run","file": "config/Python/Main.sublime-menu"}},## 几个概念1.表达式表达式就是一个类似于数学公式的东西比如:10 + 5   8 - 4表达式一般仅仅用了计算一些结果,不会对程序产生实质性的影响如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出2.语句在程序中语句一般需要完成某种功能,比如打印信息、获取信息、为变量赋值。。。比如:print()input()a = 10语句的执行一般会对程序产生一定的影响在交互模式中不一定会输出语句的执行结果  3.程序(program)程序就是由一条一条的语句和一条一条的表达式构成的。4.函数(function)函数就是一种语句,函数专门用来完成特定的功能函数长的形如:xxx()          函数的分类:内置函数- 由Python解释器提供的函数,可以在Python中直接使用自定义函数   - 由程序员自主的创建的函数当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数 函数的两个要素:参数- ()中的内容就是函数的参数- 函数中可以没有参数,也可以有多个参数,多个参数之间使用,隔开返回值        - 返回值是函数的返回结果,不是所有的函数都有返回值## 基本语法1.在Python中严格区分大小写2.Python中的每一行就是一条语句,每条语句以换行结束3.Python中每一行语句不要过长(规范中建议每行不要超过80个字符)"rulers":[80],4.一条语句可以分多行编写,多行编写时语句后边以\结尾  5.Python是缩进严格的语言,所以在Python中不要随便写缩进  6.在Python中使用#来表示注释,#后的内容都属于注释,注释的内容将会被解释器所忽略我们可以通过注释来对程序进行解释说明,一定要养成良好的编写注释的习惯注释要求简单明了,一般习惯上#后边会跟着一个空格## 字面量和变量字面量就是一个一个的值,比如:1,2,3,4,5,6,‘HELLO’字面量所表示的意思就是它的字面的值,在程序中可以直接使用字面量变量(variable)变量可以用来保存字面量,并且变量中保存的字面量是不定的变量本身没有任何意思,它会根据不同的字面量表示不同的意思一般我们在开发时,很少直接使用字面量,都是将字面量保存到变量中,通过变量来引用字面量## 变量和标识符## 数据类型   数据类型指的就是变量的值得类型,也就是可以为变量赋哪些值 数值整型布尔值浮点型复数字符串空值## 类型检查## 对象(object)- Python是一门面向对象的语言- 一切皆对象!- 程序运行当中,所有的数据都是存储到内存当中然后再运行的!- 对象就是内存中专门用来存储指定数据的一块区域- 对象实际上就是一个容器,专门用来存储数据- 像我们之前学习的数值、字符串、布尔值、None都是对象- 参考 图1## 对象的结构- 每个对象中都要保存三种数据- id(标识)> id用来标识对象的唯一性,每一个对象都有唯一的id> 对象的id就相当于人的身份证号一样> 可以通过id()函数来查看对象的id> id是由解析器生成的,在CPython中,id就是对象的内存地址> 对象一旦创建,则它的id永远不能再改变- type(类型)> 类型用来标识当前对象所属的类型> 比如:int str float bool 。。。> 类型决定了对象有哪些功能> 通过type()函数来查看对象的类型> Python是一门强类型的语言,对象一旦创建类型便不能修改- value(值)> 值就是对象中存储的具体的数据> 对于有些对象值是可以改变的> 对象分成两大类,可变对象 不可变对象可变对象的值可以改变不可变对象的值不能改变,之前学习的对象都是不可变对象练习:尝试自己画一下对象的内存结构。  ## 变量和对象- 对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名- 变量中存储的不是对象的值,而是对象的id(内存地址),当我们使用变量时,实际上就是在通过对象id在查找对象- 变量中保存的对象,只有在为变量重新赋值时才会改变- 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量## 类型转换- 所谓的类型转换,将一个类型的对象转换为其他对象- 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象## 运算符(操作符)- 运算符可以对一个值或多个值进行运算或各种操作- 比如 + 、-、= 都属于运算符- 运算符的分类:1.算术运算符2.赋值运算符3.比较运算符(关系运算符)4.逻辑运算符5.条件运算符(三元运算符)    ```python# 第三章 流程控制语句## 简介Python代码在执行时是按照自上向下顺序执行的。通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次流程控制语句分成两大类:条件判断语句,循环语句## 条件判断语句(if语句)练习1:编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数。练习2:编写一个程序,检查任意一个年份是否是闰年。如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年练习3:我家的狗5岁了,5岁的狗相当于多大年龄的人呢?其实非常简单,狗的前两年每一年相当于人类的10.5岁,然后每增加一年就增加四岁。那么5岁的狗相等于人类的年龄就应该是10.5+10.5+4+4+4 = 33岁 编写一个程序,获取用户输入的狗的年龄,然后通过程序显示其相当于人类的年龄。如果用户输入负数,请显示一个提示信息练习4:从键盘输入小明的期末成绩:当成绩为100时,'奖励一辆BMW'当成绩为[80-99]时,'奖励一台iphone'当成绩为[60-79]时,'奖励一本参考书'其他时,什么奖励也没有练习5:大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:高:180cm以上; 富:1000万以上; 帅:500以上;如果这三个条件同时满足,则:'我一定要嫁给他'如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'如果三个条件都不满足,则:'不嫁!'## 循环语句练习1:求100以内所有的奇数之和练习2:求100以内所有7的倍数之和,以及个数练习3: 水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。求1000以内所有的水仙花数练习4:    获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的数,1不是质数也不是合数。## 循环嵌套练习1:打印99乘法表1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=9...                 9*9=81练习2:求100以内所有的质数## 小游戏 《唐僧大战白骨精》1、身份选择① 显示提示信息欢迎光临 xxx 游戏!请选择你的身份:1.xxx2.xxx请选择:x② 根据用户选择来分配身份(显示不同的提示消息)  1.---2.---3.---  2、游戏进行① 显示玩家的基本信息(攻击力 生命值)② 显示玩家可以进行的操作:1、练级- 提升玩家的攻击力和生命值2、打BOSS- 玩家对BOSS进行攻击,玩家要攻击BOSS,BOSS对玩家进行反击- 计算BOSS是否被玩家消灭,玩家是否被BOSS消灭- 游戏结束3、逃跑- 退出游戏,显示提示信息,游戏结束!

```python# 第四章 序列## 列表(list)- 列表是Python中的一个对象- 对象(object)就是内存中专门用来存储数据的一块区域- 之前我们学习的对象,像数值,它只能保存一个单一的数据- 列表中可以保存多个有序的数据- 列表是用来存储对象的对象- 列表的使用:1.列表的创建2.操作列表中的数据- 练习:- 创建一个列表,在列表中保存你最好的5个朋友的名字然后分别通过索引来获取每一个朋友的名字## 序列(sequence)- 序列是Python中最基本的一种数据结构- 数据结构指计算机中数据存储的方式- 序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引- 序列的分类:可变序列(序列中的元素可以改变):> 列表(list)不可变序列(序列中的元素不能改变):> 字符串(str)    > 元组(tuple)- 刚刚我们所讲所有操作都是序列的通用操作01 02 03 三个文件中的操作## EMS(Employee Manager System 员工管理系统) 练习- 做命令行版本的员工管理系统- 功能:四个:1.查询- 显示当前系统当中的所有员工2.添加- 将员工添加到当前系统中3.删除- 将员工从系统当中删除4.退出- 退出系统- 员工信息要保存到哪里? 列表,在系统中应该有一个列表,专门用来保存所有员工信息的 ## 可变对象- 每个对象中都保存了三个数据:id(标识)type(类型)value(值)    - 列表就是一个可变对象a = [1,2,3]- a[0] = 10 (改对象)- 这个操作是在通过变量去修改对象的值- 这种操作不会改变变量所指向的对象    - 当我们去修改对象时,如果有其他变量也指向了该对象,则修改也会在其他的变量中体现- a = [4,5,6] (改变量)- 这个操作是在给变量重新赋值- 这种操作会改变变量所指向的对象- 为一个变量重新赋值时,不会影响其他的变量- 一般只有在为变量赋值时才是修改变量,其余的都是修改对象## 字典(dict)- 字典属于一种新的数据结构,称为映射(mapping)- 字典的作用和列表类似,都是用来存储对象的容器- 列表存储数据的性能很好,但是查询数据的性能的很差- 在字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速的查找到指定的元素- 在查询元素时,字典的效率是非常快的- 在字典中可以保存多个对象,每个对象都会有一个唯一的名字这个唯一的名字,我们称其为键(key),通过key可以快速的查询value这个对象,我们称其为值(value)所以字典,我们也称为叫做键值对(key-value)结构每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)## 集合(set)- 集合和列表非常相似- 不同点:1.集合中只能存储不可变对象2.集合中存储的对象是无序(不是按照元素的插入顺序保存)3.集合中不能出现重复的元素
# 第五章 函数## 函数简介(function)- 函数也是一个对象- 对象是内存中专门用来存储数据的一块区域- 函数可以用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次的调用- 创建函数:def 函数名([形参1,形参2,...形参n]) :代码块- 函数名必须要符号标识符的规范(可以包含字母、数字、下划线、但是不能以数字开头)    - 函数中保存的代码不会立即执行,需要调用函数代码才会执行- 调用函数:函数对象()- 定义函数一般都是要实现某种功能的    ## 函数的参数- 在定义函数时,可以在函数名后的()中定义数量不等的形参,多个形参之间使用,隔开- 形参(形式参数),定义形参就相当于在函数内部声明了变量,但是并不赋值- 实参(实际参数)- 如果函数定义时,指定了形参,那么在调用函数时也必须传递实参,实参将会赋值给对应的形参,简单来说,有几个形参就得传几个实参- 练习1:定义一个函数,可以用来求任意三个数的乘积- 练习2:定义一个函数,可以根据不同的用户名显示不同的欢迎信息    ## 函数式编程- 在Python中,函数是一等对象- 一等对象一般都会具有如下特点:① 对象是在运行时创建的② 能赋值给变量或作为数据结构中的元素③ 能作为参数传递④ 能作为返回值返回- 高阶函数- 高阶函数至少要符合以下两个特点中的一个① 接收一个或多个函数作为参数② 将函数作为返回值返回 - 装饰器
# 第六章 对象(Object)## 什么是对象?- 对象是内存中专门用来存储数据的一块区域。- 对象中可以存放各种数据(比如:数字、布尔值、代码)- 对象由三部分组成:1.对象的标识(id)2.对象的类型(type)3.对象的值(value)## 面向对象(oop)- Python是一门面向对象的编程语言- 所谓的面向对象的语言,简单理解就是语言中的所有操作都是通过对象来进行的- 面向过程的编程的语言- 面向过程指将我们的程序的逻辑分解为一个一个的步骤,通过对每个步骤的抽象,来完成程序- 例子:- 孩子上学1.妈妈起床2.妈妈上厕所3.妈妈洗漱4.妈妈做早饭5.妈妈叫孩子起床6.孩子上厕所7.孩子要洗漱8.孩子吃饭9.孩子背着书包上学校- 面向过程的编程思想将一个功能分解为一个一个小的步骤,我们通过完成一个一个的小的步骤来完成一个程序- 这种编程方式,符合我们人类的思维,编写起来相对比较简单- 但是这种方式编写代码的往往只适用于一个功能,如果要在实现别的功能,即使功能相差极小,也往往要重新编写代码,所以它可复用性比较低,并且难于维护 - 面向对象的编程语言- 面向对象的编程语言,关注的是对象,而不关注过程 - 对于面向对象的语言来说,一切都是对象       - 例子:1.孩他妈起床叫孩子上学- 面向对象的编程思想,将所有的功能统一保存到对应的对象中比如,妈妈功能保存到妈妈的对象中,孩子的功能保存到孩子对象中要使用某个功能,直接找到对应的对象即可- 这种方式编写的代码,比较容易阅读,并且比较易于维护,容易复用。- 但是这种方式编写,不太符合常规的思维,编写起来稍微麻烦一点 - 简单归纳一下,面向对象的思想1.找对象2.搞对象## 类(class) - 我们目前所学习的对象都是Python内置的对象- 但是内置对象并不能满足所有的需求,所以我们在开发中经常需要自定义一些对象- 类,简单理解它就相当于一个图纸。在程序中我们需要根据类来创建对象- 类就是对象的图纸!- 我们也称对象是类的实例(instance)- 如果多个对象是通过一个类创建的,我们称这些对象是一类对象- 像 int() float() bool() str() list() dict() .... 这些都是类- a = int(10) # 创建一个int类的实例 等价于 a = 10- 我们自定义的类都需要使用大写字母开头,使用大驼峰命名法(帕斯卡命名法)来对类命名- 类也是一个对象!- 类就是一个用来创建对象的对象!- 类是type类型的对象,定义类实际上就是定义了一个type类型的对象## 使用类创建对象的流程(参考图1)1.创建一个变量2.在内存中创建一个新对象3.将对象的id赋值给变量## 类的定义(参考图2)- 类和对象都是对现实生活中的事物或程序中的内容的抽象- 实际上所有的事物都由两部分构成:1.数据(属性)2.行为(方法)- 在类的代码块中,我们可以定义变量和函数,变量会成为该类实例的公共属性,所有的该类实例都可以通过 对象.属性名 的形式访问 函数会成为该类实例的公共方法,所有该类实例都可以通过 对象.方法名() 的形式调用方法- 注意:方法调用时,第一个参数由解析器自动传递,所以定义方法时,至少要定义一个形参! - 实例为什么能访问到类中的属性和方法类中定义的属性和方法都是公共的,任何该类实例都可以访问- 属性和方法查找的流程当我们调用一个对象的属性时,解析器会先在当前对象中寻找是否含有该属性,如果有,则直接返回当前的对象的属性值,如果没有,则去当前对象的类对象中去寻找,如果有则返回类对象的属性值,如果类对象中依然没有,则报错!- 类对象和实例对象中都可以保存属性(方法)- 如果这个属性(方法)是所有的实例共享的,则应该将其保存到类对象中- 如果这个属性(方法)是某个实例独有,则应该保存到实例对象中     - 一般情况下,属性保存到实例对象中而方法需要保存到类对象中    ## 创建对象的流程p1 = Person()的运行流程1.创建一个变量2.在内存中创建一个新对象3.__init__(self)方法执行4.将对象的id赋值给变量## 类的基本结构   class 类名([父类]) :公共的属性... # 对象的初始化方法def __init__(self,...):...# 其他的方法    def method_1(self,...):...def method_2(self,...):......    - 练习:尝试自定义一个表示狗的类(Dog)      属性:nameagegenderheight...方法:  jiao()yao()run()...
# 第七章 异常和文件## 异常程序在运行过程当中,不可避免的会出现一些错误,比如:使用了没有赋值过的变量使用了不存在的索引除0...这些错误在程序中,我们称其为异常。程序运行过程中,一旦出现异常将会导致程序立即终止,异常以后的代码全部都不会执行!    ## 处理异常程序运行时出现异常,目的并不是让我们的程序直接终止!Python是希望在出现异常时,我们可以编写代码来对异常进行处理!    try语句try:代码块(可能出现错误的语句)except 异常类型 as 异常名:代码块(出现错误以后的处理方式)except 异常类型 as 异常名:代码块(出现错误以后的处理方式)except 异常类型 as 异常名:代码块(出现错误以后的处理方式)else:代码块(没出错时要执行的语句)    finally:代码块(该代码块总会执行)    try是必须的 else语句有没有都行except和finally至少有一个    可以将可能出错的代码放入到try语句,这样如果代码没有错误,则会正常执行,如果出现错误,则会执行expect子句中的代码,这样我们就可以通过代码来处理异常避免因为一个异常导致整个程序的终止            ## 异常的传播(抛出异常)当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会再继续传播,如果函数中没有对异常进行处理,则异常会继续向函数调用处传播,如果函数调用处处理了异常,则不再传播,如果没有处理则继续向调用处传播直到传递到全局作用域(主模块)如果依然没有处理,则程序终止,并且显示异常信息当程序运行过程中出现异常以后,所有的异常信息会被保存一个专门的异常对象中,而异常传播时,实际上就是异常对象抛给了调用处比如 : ZeroDivisionError类的对象专门用来表示除0的异常NameError类的对象专门用来处理变量错误的异常....在Python为我们提供了多个异常对象            ## 抛出异常- 可以使用 raise 语句来抛出异常,raise语句后需要跟一个异常类 或 异常的实例## 文件(File)- 通过Python程序来对计算机中的各种文件进行增删改查的操作- I/O(Input / Output)- 操作文件的步骤:① 打开文件② 对文件进行各种操作(读、写),然后保存③ 关闭文件

python基础课件相关推荐

  1. 1、Python基础课件

    Python 基础知识 1. 认识 Python 1.1 Python 概述 1.1.1 基本概念 1.1.2 语言优势 2020年2月的TIOBE的编程语言排行榜: Python也存在缺点: 1.1 ...

  2. python基础课件ppt_Python+selenium自动化测试入门【PPT课件】

    [导读]Selenium是一款基于web应用程序的开源测试工具.它支持Firefox.ie.Mozilla等众多浏览器.简单灵活.支持很多种语言.SeleniumCore:支持DHTML的测试案例(效 ...

  3. python基础ppt_Python基础课件.ppt

    Python基础课件.ppt 6.10 问题解答 (1)能不能像执行.exe文件那样执行.py文件呢? 在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在.py文件的第一行加上 ...

  4. 孙立岩 python-basic: 用于学习python基础的课件(一二三四)

    python-basic: 用于学习python基础的课件 介绍 此部分讲解Python的基础,点击目录学习对应的小节: 01-简介,概述一下python: 02-环境搭建,如何在大家自己的windo ...

  5. !!Python基础认知学习课件

    Python基础教程认知学习课件 http://www.runoob.com/python/python-tutorial.html

  6. python自学网站有哪些-Python学习网站有哪些?Python基础教程网站推荐

    Python学习网站有哪些?Python基础教程网站推荐:菜鸟教程.PHP中文网.PHP中文网.W3C.Reddit.博学谷.python中文学习大本营.Python 3 Module of the ...

  7. python基础知识ppt-python入门ppt下载

    这是python入门ppt,包括了python的安装,基础架构,元组还是列表------序列而已,从列表=['开','始','启','航'],分享你的函数,实践证明该理论等内容,欢迎点击下载. pyt ...

  8. 七月在线python数据分析_七月在线Python基础+数据分析班+爬虫项目

    资源介绍 七月在线Python基础+数据分析班+爬虫项目 目录 ├─Python基础入门班2017年 ││代码.rar │└─视频 │xa0 xa0 01.第1课 入门基础.rar │xa0 xa0 ...

  9. 【Python合集】全面掌握Python基础知识,建议收藏

    Python中有6个标准的数据类型:Number(数字).String(字符串).List(列表).Tuple(元组).Set(集合).Dictionary(字典),每种类型有其固有的属性和方法,学会 ...

  10. 两天入门Python基础(附代码实现)

    这是光城同学写的一篇python基础长文,对python的基础语法用了简单的例子进行讲解,非常适合初学者入门,初学者用两天时间看懂并实现代码后,可以对python有初步的理解,强烈建议初学者学习.(建 ...

最新文章

  1. 在FC7上安装xmms
  2. php 的函数参数值类型限定
  3. php写的微信聊天界面,浅谈 聊天界面 核心架构设计
  4. SpringBoot高级-消息-@RabbitListener@EnableRabbit
  5. 菜鸟教程-HTML 教程学习笔记
  6. html元素data属性设置变量,HTML5 自定义属性 data-* 和 jQuery.data 详解
  7. Jira 随便总结
  8. java 双向链表_23张图!万字详解「链表」,从小白到大佬
  9. JS-面向对象-改变This的指向---使用call方法改变this的指向 / 使用apply方法改变this的指向 / 使用bind方法改变this的指向
  10. UnixVi命令详解
  11. 数字化转型的本质:“研产供销服”各环节的敏捷化
  12. C++ atuo关键字的应用 -- 尾置返回类型(trailing return type)
  13. 树莓派入门(五)—— 树莓派4B之初体验
  14. hive基本用法及细节记录
  15. 【福利】邀请博主,赢取大奖
  16. FAST-LIO2代码解析(五)
  17. (转)为什么LISP语言如此先进?
  18. android wear 微信语音,moto 360手表语音回复微信教程
  19. android vitamio集成教程,集成Vitamio实现万能播放器(示例代码)
  20. git clone 拉取远程仓库

热门文章

  1. vmware workstations 共享虚拟机 failed to connect 903
  2. cuda环境安装--windows离线安装
  3. 3D MAX 倾斜物体对齐问题和坐标轴重置问题
  4. Xshell上传文件方法
  5. 常用的人脸表情数据库简介及其论文出处
  6. CAD专用卸载修复工具,一键完全彻底卸载删除CAD软件的专用卸载工具
  7. 中青杯数学建模竞赛是什么级别的比赛_2018年中青杯全国大学生数学建模竞赛...
  8. php页面增加js代码,php刷新当前页面_php js实现页面数据刷新的代码
  9. bmd硬盘测试_disk speed test mac版下载-Blackmagic Disk Speed Test for Mac(硬盘读写速度测试工具) v3.2免费版 - Mac天空...
  10. fudannlp初试