python
1。基础知识
2。编程思想
3。培训思路,过基础,写代码
1. 知识图谱
2. 基础示例
3. 注意事项
4. 踩过的坑
5. 总结学习经验
python语言介绍
基础介绍
Python是一种跨平台的计算机程序设计语言。是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。
发展历程
创始人为荷兰人吉多·范罗苏姆
。1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字
是取自英国20世纪70年代首播的电视喜剧《蒙提.派森的飞行马戏团》(Monty Python's Flying Circus)
具体的发展历程参考 :
python语言特性及语言优势
语言特性:
简洁性(语法简单)
易读行(代码量少)
扩展性 (被C语言扩编),也可以继承父类,实现扩展
可移植性(跨平台使用)
解释性 (运行过程中进行翻译),与之相反的是编译性语言,翻译完成才进行执行
优势:
简单易学(语法简洁),
免费开源,
高层语言(不需要关注底层实现,计算机内存使用情况),
类库丰富(能处理,WEB,网络,自动化运维, 数据分析,文档,多线程),
严格的代码规范,
也支持面向对象
劣势:
动态语言,运行速度没有静态言语快
中文资料匮乏
python语言的走势图
TIOBE排行榜
TIOBE编程语言排行榜是编程语言流行趋势的一个指标,每月更新,这份排行榜排名基于互联网有经验的程序员、课程和第三方厂商的数量。排名使用著名的搜索引擎(诸如Google、MSN、Yahoo!、Wikipedia、YouTube以及Baidu等)进行计算。请注意这个排行榜只是反映某个编程语言的热门程度,并不能说明一门编程语言好不好,或者一门语言所编写的代码数量多少。
官方地址:https://www.tiobe.com/tiobe-index/
PYPL排行榜
PYPL排行榜也是一个关于编程语言流行度的参考指标,其榜单数据的排名均是根据榜单对象在 Google 上相关的搜索频率进行统计排名,原始数据来自 Google Trends,也就是说某项语言或者某款 IDE 在 Google 上搜索频率越高,表示它越受欢迎。如果你相信这些来自众多开发者以及用户的选择,我们可以将 PYPL 作为一个参考,以帮助决定学习何种语言或 IDE,或者在新的软件项目中使用何种语言或数据库。
官方地址:http://pypl.github.io/PYPL.html
python的应用
1.网络爬虫(request selenium)
2.WEB开发(Django和Flask)
3.数据科学
1.人工智能(AI),人脸识别
2.数据分析 (matplotlib)
4.游戏开发(pygame)
5.自动化脚本
1.excel ,pdf,word,cvs操作
2.图像识别
3.重复工作代替
6.其他方向
1.自动化运维
2.数据同步
总结,python,融于生活,融于工作
基础知识
1.环境搭建及开发工具使用(最新版本)
官网:https://www.python.org/
主要版本:python 2.7 ,python 3.8
python版本发展历程
Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础
Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生
Python 2.5 - September 19, 2006
Python 2.6 - October 1, 2008
Python 2.7 - July 3, 2010
Python 3.0 - December 3, 2008
Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014
Python 3.5 - September 13, 2015
Python 3.8 - Oct. 14, 2019
开发工具: pycharm
2.基础语法,数据类型
基础语法:
1.python的文件后缀为 *.py
2.输出 helloword -> print('hello,word')
3.python大小写不敏感
4.python不区分"" 和 '',当需要使用 ' 时,需要用 "
5.python 用空格来区分代码块,有严格的空格缩进要求
6.注释一行代码 # ,注释多行代码 ### 代码块 ###
7.代码从上往下执行
8.设置中文编码 文件头加入# coding=utf-8
变量和数据类型:
变量名 = 变量值
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值
变量的命名:
变量名只能包含字母、数字和下划线。变量名可以字母或下划线打头,但不能以数字打头,例如,可将变量命名为message_1,但不能将其命名为1_message。
变量名不能包含空格,但可使用下划线来分隔其中的单词。例如,变量名greeting_message可行,但变量名greeting message会引发错误。
不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print (请参见附录A.4)。
变量名应既简短又具有描述性。例如,name比n好,student_name比s_n好,name_length比length_of_persons_name好。
慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0。
数据类型:
Numbers(数字)-> 整数 和浮点型 例: num = 10 num = 1.3
String(字符串)->字符串 例:str= 'helloword'
List(列表)
由特定顺序排列的元素组成 ,可以包含,数字,字符串,列表,字典,元组;索引从0开始计算
定义一个有值列表的方式
bicycles = ['trek', 'cannondale', 'redline', 'specialized']
定义一个空列表的方式
bicycles = []
Tuple(元组)
元组和列表类似,但是不可变的
bicycles = ('trek', 'cannondale', 'redline', 'specialized')
Dictionary(字典)
字典 是一系列键—值对 。每个键 都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联的值可以是数字、字符串、列表乃至字典。可将任何Python对象用作字典中的值
alien_0 = {'color': 'green', 'points': 5}
布尔数据类型 :True , False
2.条件语句
if 比较运算符 :,
if else :,
if elseif else
比较运算符最终返回的是True 或 False
== 等于 - 比较对象是否相等 (a == b) 返回 False。
!= 不等于 - 比较两个对象是否不相等 (a != b) 返回 true.
<> 不等于 - 比较两个对象是否不相等。python3 已废弃。 (a <> b) 返回 true。这个运算符类似 != 。
> 大于 - 返回x是否大于y (a > b) 返回 False。
< 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 (a < b) 返回 true。
>= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。
<= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。
逻辑运算符
or 或 一真为真
and 并且 一假则假
not 非 取反
赋值运算符
= 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c
+= 加法赋值运算符 c += a 等效于 c = c + a
-= 减法赋值运算符 c -= a 等效于 c = c - a
*= 乘法赋值运算符 c *= a 等效于 c = c * a
/= 除法赋值运算符 c /= a 等效于 c = c / a
%= 取模赋值运算符 c %= a 等效于 c = c % a
**= 幂赋值运算符 c **= a 等效于 c = c ** a
//= 取整除赋值运算符 c //= a 等效于 c = c // a
列举几种判断
判断列表不为空 if list
判断字符串相等 if str =='str'
判断字符串不为空 if str == ''
3.循环
for循环 遍历字符串和列表
语法 for item in items :
range(起始值,终止值,歩长) 函数,生成序列
while循环
语法 while 布尔表达式:
break, 终止当前循环
continue 跳出当前循环,
4. 列表,元组 和字典
1.列表
定义一个列表 list =['1','2',3] ,list1=[]
遍历列表
for li in list :
print(li)
修改元素 通过索引指定元素进行修改 list[0]=1
删除元素 根据索引删除元素 del list[0] 或者 pop()函数 删除末尾的元素,根绝元素值删除元素 list.remove('1')
新增元素 append()函数向列表末尾添加元素; insert()函数 ,向指定索引后添加新元素
sort()函数和 sorted() ,reverse(),index()
sort()函数 对列表进行字典永久性排序
sorted()函数,对列表进行临时性排序
reverse()函数,反转列表
index()函数,获取元素的索引
range()函数生成数值列表
切片,players(起始索引,步长)
复制列表,列表 = 被复制列表[:] list2=list[:]
2.元组 特殊的列表,不能修改元素的值,但是可以给元组本身赋值
yz=() yz=(1,1,2)
3.字典就是一系列的键值对
定义一个字典 dic={'name':'name','age':'123'} , dic1={}
获取字典中某个键的值 字典[键]=值 , dic['name']='name'
添加键值对 字典[键]=值 dic['sex']='1'
删除键值对 del 字典[键] del dic['sex']
遍历字典 for key,value in dic:
print(key+"="+value)
获取字典中的key keys()
获取字典中的value value()
5.常用函数总结
str() 数值转字符串
int() 字符串转 int
float() 字符串转 浮点型
len() 获取列表或者字符串的长度
name.upper() 字符串转大写
name.lower() 字符串转小写
rstrip() 字符串去去除两边空格
input()函数。控制台输入函数
print()函数。控制台输出函数
6.函数和类
函数 定义一个函数
语法: def 函数名(参数):
函数体
return 关键词 返回数据
none值,表示为空 可以理解为 null
关键词参数,示例:def test(str): test(str ='1'),str就是关键词
默认值参数,示例:def test(str='1'): test(),str就是关键词
不定长参数,示例:def test(*str1): test((1,'2','3')),str1就是关键词 ,str参数通过列表的方式获取每一个元素
全局变量和局部变量
1.局部变量不能在全局作用域内使用
2.局部作用域不能使用其他局部作用域内的变量
3.全局变量可以在局部作用域中读取
4.名称相同的局部变量和全局变量
global 关键词,标识在函数作用域内进行改变全局变量的值
类 定义一个类
语法: class 类名():
def _init_():
示例:
class Car():
def __init__(self, make):
self.make = make
实例化: car = Car()
1.类必须有 _init_()函数,相当于是构造函数
2.一个python文件可以有多个类
3.self 表示当前实例
4.所有的属性必须放在构造函数内