阿里云Python入门视频课程笔记
课程地址:http://edu.aliyun.com Python说明书:(英文版)https://docs.python.org/3.9/library/index.html (中文版)https://docs.python.org/zh-cn/3/ Python学习路径 阶段 1:Python语言基础 3门课程 | 130课时; ①环境搭建与语法入门,②列表、元组、字典、集合,③函数、面向对象、异常处理; 阶段 2:Python Web开发 4门课程 I 42课时; ①Python网络编程,②Python Web开发基础,③Python Web框架Flask快速入门,④Python Web框架Django快速入门; 阶段 3:爬虫及数据分析 4门课程 I 60课时; ①Python爬虫实战,②数据可视化库Matplotlib快速入门,③科学计算库NumPy快速入门,④数据分析库Pandas快速入门;
数据库学习路线 阶段 1:SQL基础 4门课程 | 137课时 ①数据库及SQL/MySQL基础,②SQL/MySQL进阶及查询练习,③MySQL高级应用 - 索引和锁,④PostgreSQL数据库快速入门 阶段 2:关系型云数据库 3门课程 I 32课时 ①云数据库MySQL版快速上手,②PostgreSQL云上开发实践,③云数据库管理与数据迁移 阶段 3:NoSQL基础 4门课程 I 108课时 ①快速掌握MongoDB数据库,②Redis数据库快速入门,③HBase数据库快速入门,④Memcached完全自学手册 阶段 4:NoSQL云数据库 6门课程 | 45课时 ①云数据库MongoDB版使用教程,②云数据库Redis版使用教程,③云数据库HBase版使用教程,④云数据库Memcache版使用教程,⑤表格存储使用教程,⑥使用云数据库MongoDB开发应用 阶段 5:高级应用 3门课程 I 21课时 ①MySQL调优经验分享,②云数据库选型及架构设计,③云数据库优化十大经典案例
阶段 1。①环境搭建与语法入门
# 第1章 学习准备 课程2## 课程名称:Python基础视频教程,讲师:尚硅谷教育,李立超 面向的层次:From Zero to Hero(从入门到精通) 学习方法:认真听讲,多敲代码 必备技能:① 计算机基本操作 ② 打字的速度 ③ 英语(能阅读基本的英文文档) 课程3## 计算机是什么:在现实生活中,越来越无法离开计算机了;电脑、笔记本、手机、游戏机、汽车导航、智能电视 。。。计算机就是一个用来计算的机器!目前来讲,计算机只能根据人类的指令来完成各种操作。所以我们学习计算机,就是学习如何控制计算机!
## 计算机的组成:计算机由两部分组成:硬件 和 软件; 硬件包含:键盘、鼠标、显示器、CPU、主板、内存、硬盘 。。。硬件是看的见摸得着的; 软件包含:系统软件(windows、macOS、Linux)和应用软件(office 、QQ、绝地求生); 软件是看的见摸不着的,软件负责控制计算机中的硬件
## 计算机的使用方式:我们必须要通过软件来对计算机完成各种操作,但是注意,软件中并不是所有的功能都会对用户开放,用户需要调用软件提供的接口(Interface 交互界面)来操作计算机; 用户界面分成两种:TUI(文本交互界面)和 GUI(图形化交互界面)
## windows的命令行:命令行就是文本交互界面,通过命令行可以使用一个一个的指令来操作计算机;任何的计算机的操作系统中都包含有命令行(windows、linux、macOS);命令行有多个不同的名字:命令行、命令行窗口、DOS窗口、命令提示符、CMD窗口、Shell、终端、Terminal 练习1:通过搜索引擎来搜索一下,各个操作系统当中的命令行窗口的样式 如何进入到命令行:win键 + R 出现运行窗口,输入cmd,然后回车 常用的dos命令:命令的语法:命令 [参数] [选项] ; 小技巧 - 方向键上下,查看命令的历史记录 - tab键自动补全命令 命令行运行python:python 路径 \ 文件名.py python环境运行:>>>格式下,只能执行指令 ,推出环境exit()
## 环境变量(environment variable)环境变量指的就是操作系统当中的一些变量。可以通过修改环境变量,来对计算机进行配置(主要是来配置一些路径的) 环境变量就是系统的变量... (补充)环境变量的作用,比如你要运行一个程序,系统就要按照它的 path 变量所指向的目录去寻找那个程序,找到就执行,找不到那就不能执行了呗; 查看环境变量: 计算机属性> 高级系统设置 > 选择环境变量;环境变量界面上边是用户环境变量,下边是系统环境变量; 建议只改用户环境变量,不要修改系统的环境变量;
## path环境变量;path环境变量中保存的是一个一个的路径。;当我们在命令行中输入一个命令(或访问一个文件时),;系统会首先在当前目录下寻找,如果找到了则直接执行或打开; 如果没有找到,则会依次去path环境变量的路径中去寻找,直到找到为止; 如果path环境变量中的路径都没有找到,则报错; 'xxx' 不是内部或外部命令,也不是可运行的程序或批处理文件。我们可以将一些经常需要访问到的文件会程序的路径,添加到path环境变量中,这样我们就可以在任意的位置访问到这些文件了 注意事项:1.如果环境变量中没有path,可以手动;2.path环境变量不区分大小写 PATH Path path; 3.修改完环境变量必须重新启动命令行窗口;4.多个路径之间使用;隔开; 课程8## 进制 课程9## 文本文件和字符集 纯文本+富文本;在开发时,编写程序使用的全都是纯文本; 纯文本在计算机底层也会转换为二进制保存,将字符转换为二进制码的过程,我们称为编码 将二进制码转换为字符的过程,我们称为解码;编码和解码时所采用的规则,我们称为字符集; ASCII,ISO-8859-1,GB2312,GBK,Unicode,Unicode编码:UTF-8 UTF-16 UTF-32
课程10-11## Sublime Text 3纯文本编辑器 纯文本编辑器,但textbook不建议使用;安装sublime 看清32位还是64位。打开md格式,Setting设置里面可以调整字体颜色大小; Package Control(Sublime的包管理器) - Sublime Text3中的插件,通过该插件可以向Sublime中安装新的包
第2章 Pythong简介及环境搭建 课程12## 什么是计算机语言 计算机语言发展经历了三个阶段:机器语言;符号语言(汇编);高级语言;
## 编译型语言:如C语言,执行速度特别快,跨平台性比较差 解释型语言:不会在执行前对代码进行编译,而是在执行的同时一边执行一边编译,如Python
课程14## Python的介绍:是一种广泛使用的高级编程语言,属于通用型编程语言,由吉多·范罗苏姆(龟叔)创造,第一版发布于1991年。Python的设计哲学强调代码的可读性和简洁的语法(尤其是使用空格缩进划分代码块,而非使用大括号或者关键词)。Life is short you need Python (人生苦短,我用Python)
Python的用途:WEB应用,Facebook 豆瓣 。。。爬虫程序,科学计算,自动化运维,大数据(数据清洗), 云计算,桌面软件/游戏,人工智能,
课程15## Python开发环境搭建:开发环境搭建就是安装Python的解释器; Python的解释器分类:CPython(官方)用c语言编写的Python解释器;PyPy用Python语言;IronPython用.net编写;Jython用Java编写的;
Python安装:https://www.python.org/ 下载3.X版本 安装时可以改路径到c:\users\用户名下,安装勾选 环境变量path的选项,否则repl不启动
## Python的交互界面,当我们通过命令行来输入Python,所进入到的界面就是Python的交互界面,命令提示符>>>,退出exit();Python的开发工具IDLE进入交互模式 ;新建一个文本文件改拓展名为.py 或者在IDLE中新建保存,按F5就直接在IDLE中执行; 练习:自己尝试创建一个py文件,并向文件中写入python打印语句(print...)
## Python和Sublime的整合 1.在Sublime中执行Python代码,ctrl + b 自动在Sublime内置的控制台中执行;不能使用input() 2.使用SublimeREPL来运行python代码,交互式解释器(REPL)Read-Eval-Print-Loop 安装REPL:安装完成,设置快捷键,希望按f5则自动执行当前的Python代码;
{ "keys": ["f5"], "caption": "SublimeREPL:Python","command": "run_existing_window_command", "args":{"id": "repl_python_run","file": "config/Python/Main.sublime-menu"}},
第3章 语法入门 ## 几个概念 1.表达式:类似于数学公式的东西;2.语句:在程序中语句一般需要完成某种功能;3.程序(program);4.函数(function)内置函数、自定义函数 ;两个要素:参数、返回值;
## 基本语法:Python中严格区分大小写;以换行结束;每一行语句不要过长(80个字符);多行编写,以\结尾 ;缩进严格;用 #加空格 来表示注释; ## 字面量和变量:ctrl+回车不会与上一行同格式 课程22## 变量和标识符syntax:标识符不能数字开头,只能字母、数字、下划线组合; 下划线命名法:小写字母单词之间下划线,帕斯卡(大驼峰):单词开头大写;
第4章 数据类型 课程23## 数据类型 :数值、整型、布尔值、浮点型、复数、字符串、空值; 小数浮点数float类型可能不精确(如0.1+0.2等于0.3000004); 课程26##格式化字符串: print('值1‘+变量+’值2‘)或者 print('值1‘,变量,’值2‘) print('值1%s值2‘%变量值)或者 print(f'值1{变量}值2’) 引号内字符串是值,大括号{}内使变量;单双引号不能混用,不能嵌套,可以外面用双引内部单引;跨行用三引号保留格式; 反斜杠是转义字符:\'及\"及\\,\t制表符,\n换行符,\u0070及\0080小写(查unicode特殊符号);%s是占位符,后面跟着%('值');%3,5是最小3位最多取5位;%.2f保留两位小数并四舍五入; 字符串复制,用乘法号*重复次数; 布尔值bool,做逻辑判断,True相当于1,False相当于0, None空值 ## 类型检查class = type() ,如 int是数值,float浮点数取整 f{} 是变成字符串格式 Given format % values (where format is a string), % conversion specifications in format are replaced with zero or more elements of values. The effect is similar to using the sprintf() in the C language. ctrl+正斜杠/ 就是程序和注释来回切换
## 对象(object)Python是一门面向对象的语言。一切皆对象!对象就是内存中专门用来存储指定数据的一块区域;对象实际上就是一个容器,专门用来存储数据。 ## 对象的结构:三种数据id标识、type类型、value值; id(标识):唯一且不能改,通过id()函数来查看,由解析器生成的,在CPython中是内存地址;type(类型):不能改,int str float bool 。。。决定了对象有哪些功能,通过type()函数; value(值):有些对象值是可以改变的,分两大类-可变对象/不可变对象; ## 变量和对象:变量更像是给对象起了一个别名;变量中存储的不是对象的值而是对象的id(内存地址); ## 类型转换 - 所谓的类型转换,将一个类型的对象转换为其他对象;- 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象;
第5章 运算符 课程33## 运算符(操作符),分类: 1.算术运算符(//整除,**几次幂,**0.5平方根,a % b 取模就是余数); 2.赋值运算符(+=加等于就是a=a+值); 3.比较运算符(关系运算符)总是返回布尔值,不能混类型,字符串比较是比较unicode值,两位是逐位比较,用来排序,如需全部比较先转换int();==是否相等,!=是否不等于,比的是值,如果比id是否同一对象,用is或者is not; 4.逻辑运算符(not非运算布尔值取反,and与运算,只要有一方false就是false,or或运算);非布尔值逻辑运算时会当作true/false,但是返回原值;与运算找false, 第一个false直接返回第一个值,否则返回第二个值;或运算找true,第一个true直接返回第一个值,否则返回第二个值; 5.条件运算符(三元运算符) 语句1 if 条件表达式 else 语句2; 先乘除后加减优先级; 如取大值: max = a if (a>b and a>c) else (b if b>c else c) 但不方便阅读;
# 第6章 流程空值语句 ## 简介 Python代码在执行时是按照自上向下顺序执行的。通过流程控制语句,可以改变程序的执行顺序,也可以让指定的程序反复执行多次; 流程控制语句分成两大类:条件判断语句,循环语句;
## 条件判断语(if语句); if 条件表达式 冒号: (换行缩进)代码块 input()可以用于暂时阻止程序终止关闭; if 条件表达式 冒号: 语句1 (换行不缩进)else 冒号:语句2 if 条件表达式1: 代码块1 (换行不缩进)elif 条件表达式2:代码块2.。。。else: 代码块 如果为true执行当前代码块,然后语句结束,如果为false则向下找到false直至else 练习1:编写一个程序,获取一个用户输入的整数。然后通过程序显示这个数是奇数还是偶数。 练习2:编写一个程序,检查任意一个年份是否是闰年。如果一个年份可以被4整除不能被100整除,或者可以被400整除,这个年份就是闰年。 练习3:我家的狗5岁了,5岁的狗相当于多大年龄的人呢?其实非常简单,狗的前两年每一年相当于人类的10.5岁,然后每增加一年就增加四岁。那么5岁的狗相等于人类的年龄就应该是10.5+10.5+4+4+4 = 33岁。编写一个程序,获取用户输入的狗的年龄,然后通过程序显示其相当于人类的年龄。如果用户输入负数,请显示一个提示信息。 记得用float浮点数。 练习4:从键盘输入小明的期末成绩:当成绩为100时,'奖励一辆BMW',当成绩为[80-99]时,'奖励一台iphone',当成绩为[60-79]时,'奖励一本参考书',其他时,什么奖励也没有, 练习5:大家都知道,男大当婚,女大当嫁。那么女方家长要嫁女儿,当然要提出一定的条件:高:180cm以上; 富:1000万以上; 帅:500以上; 如果这三个条件同时满足,则:'我一定要嫁给他'如果三个条件有为真的情况,则:'嫁吧,比上不足,比下有余。'如果三个条件都不满足,则:'不嫁!'
## 循环语句:while 循环 和 for 循环 while 条件表达式: (换行缩进)代码块 #循环到false为止; 循环的三个要件,1初始化表达式,2条件表达式,设置循环执行条件,3更新表达式 练习1:求100以内所有的奇数之和。 练习2:求100以内所有7的倍数之和,以及个数。#计数器 count += 1 练习3:水仙花数是指一个 n 位数(n≥3 ),它的每个位上的数字的 n 次幂之和等于它本身(例如:1**3 + 5**3 + 3**3 = 153)。求1000以内所有的水仙花数。 练习4:获取用户输入的任意数,判断其是否是质数。质数是只能被1和它自身整除的数,1不是质数也不是合数。#设置旗帜: flag = True;
break退出本次循环,包括else,continue跳过本次循环,嵌套内只负责最近的循环,pass循环占位为空。 代码优化:减少程序运行时间。引入time模块。from time import * (换行)time() 练习1:打印99乘法表 练习2:求100以内所有的质数 小游戏 《唐僧大战白骨精》 重复出现的多次循环,比如提示下一步再显示:while True, 再用最末break推出; (我的补充): # sublime中的颜色标识:绿色是字符串, # 新手常犯的错误: 字符串等于用 == ,而且要引号。 if和while语句后面不要忘了冒号:,记得是英文格式不是中文格式。
阶段1.②列表、元组、字典、集合1
## 列表(list [ ])列表中可以保存多个有序的数据,列表是用来存储对象的对象,列表中的存储的叫元素,取名时一般用复数,列表的使用:1.列表的创建,2.操作列表中的数据。 索引(index):索引是元素在列表中的位置,索引从位置0开始,print(my_list[4]);负数从后向前; 获取长度(len),获取的数值返回的是最大位置; 切片,print(my_list[0:4]),可省略冒号后的数字表全部; 步长,显示元素位置的间隔,默认为1;负数从后向前间隔; 加号+可以拼接,*可以重复次数,in/not in检查元素是否在列表中,min/max获取最大最小值; s.index(x[, i[, j]]) : index of the first occurrence of x in s (at or after index i and before index j)
课程5## 序列(sequence)序列是Python中最基本的一种数据结构,数据结构指计算机中数据存储的方式,序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引),并且序列中的数据会按照添加的顺序来分配索引。 序列的分类:可变序列iterable(序列中的元素可以改变):> 列表(list); 不可变序列Immutable(序列中的元素不能改变):字符串(str), 元组(tuple);用list()可转; 通过索引直接修改:s[i:j] = t 则 slice of s from i to j is replaced by the contents of the iterable t; 删除元素:del s[i:j] ,则same as s[i:j] = [] ; 索引为0位置是插入新元素; append()位置最后添加;insert()指定位置插入;extend()加多个; s.insert(i, x) 则inserts x into s at the index given by i (same as s[i:i] = [x]) ; 清空序列clear();清除元素并返回产出值pop();删除制定值remove()多个删第一个; pop([i]) 则retrieves the item at i and also removes it from s; remove(x) 则remove the first item from s where s[i] is equal to x; reverse()反序列;sort()重新排序,默认升序,如需降序加reverse=True;
课程8##遍历列表 for 变量 in 序列 arrage用来生成自然数的序列,需要起始位置,省略默认为0, 及结束位置及步长,默认为1. for i in range(n) 让for循环n次。
课程9## 练习EMS(Employee Manager System 员工管理系统)- 做命令行版本的员工管理系统; - 功能:四个: 1.查询- 显示当前系统当中的所有员工;2.添加- 将员工添加到当前系统中; 3.删除 - 将员工从系统当中删除; 4.退出- 退出系统;- 员工信息要保存到哪里? 列表,在系统中应该有一个列表,专门用来保存所有员工信息的。
# 元组tuple 不可变序列,非空时可以省略括号,但至少有一个逗号。 元组的解包unpack或者元组的结构: 先写my_tuple = a,b,c,d 再写 10,20,30,40=my_tuple。常用来调换值;变量前加星号,则获取所有值返回一个列表。
## 可变对象- 每个对象中都保存了三个数据: id(标识) type(类型)value(值); 列表就是一个可变对象 a = [1,2,3] a[0] = 10 (改对象) - 这个操作是在通过变量去修改对象的值- 这种操作不会改变变量所指向的对象 - 当我们去修改对象时,如果有其他变量也指向了该对象,则修改也会在其他的变量中体现 - a = [4,5,6] (改变量) - 这个操作是在给变量重新赋值,- 这种操作会改变变量所指向的对象,- 为一个变量重新赋值时,不会影响其他的变量, - 一般只有在为变量赋值时才是修改变量,其余的都是修改对象。 is 可判断地址是否相同,==判断值是否相同。
## 字典 dict { key: value } 新的数据结构映射(mapping),在字典中每一个元素都有一个唯一的名字,可以快速的查找到指定的元素。字典中可以保存多个对象,每个对象都会有一个唯一的名字键(key) -- 不可变对象,任意格式但字符串str偏多,不可重复,后面出现替换前面,通过key可以快速的查询到 值(value),键值对(key-value)结构,每个字典中都可以有多个键值对 项(item)。 变量= dict(name="字符",age=15,gender="男") #创建字典 print(d['age']) #显示age的值;get(key(key[,default]) #区别是如果不存在会显示None;
## 集合(set)和列表不同点:不可变对象, 无序,不重复。
阶段1.③函数、面向对象、异常处理
## 函数简介(function) 函数也是一个对象,对象是内存中专门用来存储数据的一块区域,函数可以用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次的调用, 创建函数:def 函数名([形参1,形参2,...形参n]) : 代码块 函数名必须要符号标识符的规范,(可以包含字母、数字、下划线、但是不能以数字开头), 函数中保存的代码不会立即执行,需要调用函数代码才会执行; 调用函数: 函数对象()定义函数一般都是要实现某种功能的
## 函数的参数:在定义函数时,在函数名后的()中定义数量不等的形参,多个形参之间使用,隔开 形参(形式参数),定义形参就相当于在函数内部声明了变量,但是并不赋值; 实参(实际参数) 如果函数定义时,指定了形参,那么在调用函数时也必须传递实参,实参将会赋值给对应的形参,简单来说,有几个形参就得传几个实参; 练习1:定义一个函数,可以用来求任意三个数的乘积 练习2:定义一个函数,可以根据不同的用户名显示不同的欢迎信息
## 函数式编程: 在Python中,函数是一等对象: 一等对象一般都会具有如下特点: ① 对象是在运行时创建的 ② 能赋值给变量或作为数据结构中的元素 ③ 能作为参数传递④ 能作为返回值返回
高阶函数: ① 接收一个或多个函数作为参数 ② 将函数作为返回值返回; 过滤器filter()可以从序列中过滤出符合条件的元素,保存到一个新的序列中; 匿名函数 lambda ,语法糖,用来创建一些简单的函数 ,语法:lambda 参数列表 : 返回值 ; map()函数可以对可迭代对象中的所有元素做指定的操作,然后将其添加到一个新的对象中返回; 排序sort() 用来对列表中的元素进行排序; sorted()可以对任意的序列进行排序,而是返回一个新对象
##闭包:创建一些只有当前函数能访问的变量,私有的数据藏到的闭包; 条件 ① 函数嵌套② 将内部函数作为返回值返回 ③ 内部函数必须要使用到外部函数的变量
##装饰器 @begin_end 开闭原则(OCP)程序的设计,要求开发对程序的扩展,要关闭对程序的修改; begin_end()这种函数我们就称它为装饰器,
第六章 对象 object ## 面向对象oop,python是面向对象的程序 面向程序
## 类的定义: 相当于一个图纸,自定义某一些对象; mc = MyClass() # mc就是通过MyClass创建的对象,mc是MyClass的实例 class 类名([父类]):代码块<class '__main__.MyClass'>