python历史
1,1989年圣诞节,Guido von Rossum开始编写python语言编译器
2,1991年2月,第一个python编译器诞生,是c语言实现的,后面又出现了c#和java版本,可以调用c库函数
3,1994年python1.0正式诞生
4,2000年10月 python2.0发布,实现完整版的垃圾回收,unicode支持,开发过程更加透明,社区影响力扩大,生态圈慢慢形成
5,2008年12月 python3.0发布,并不兼容2.0和之前的版本,但是许多项目还在2.0运行和维护,后来3.0的许多特性被移植到了2.6/2.7版本
python优点
1,简单明确,一件事只用一种方法
2,学习门槛低,容易上手
3,代码开源,社区和生态圈强大,不用重复造轮子
4,解释性语言,天生的平台移植性
5,支持主流编程范式(面向对象和面向函数)
6,扩展性强和可嵌入性,调用c/c++,也可以反向调用
7,代码规范度高,适合代码洁癖的强迫症人群
python缺点
1,执行效率低,计算密集型任务最好由c/c++编写
2,代码无法加密,但是现在的软件公司都是卖服务而不是卖软件,这个问题很淡化了
3,可选框架太多,旧web框架就有100多个,有选择的地方就有错误
python应用领域
云基础设施,DevOps,网络爬虫,数据分析挖掘,机器学习等场景;Web后端开发,数据api开发,自动化运维,自动化测试,科学计算和可视化,数据分析,量化交易,机器人开发,图像识别和处理等职位
环境搭建
......
基础语法
1,计算机硬件组成:运算器,控制器,存储器,输入输出设备。运算器和控制器组成cpu,用来执行各种运算和控制指令以及处理计算机中的数据。程序就是指令的集合,将指令按照一定的方式组织到一起。
2,变量类型
整形(python2.x有int和long两种类型,python3.x只有一种int类型),支持二进制、八进制、十进制、十六进制转换
浮点型 支持科学技术法
字符串型 单引号和双引号中的任意文本比如'hello'和"hello",字符串还有原始字符串表示法、字节字符串表示法、Unicode字符串表示法,而且可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾)
布尔型 True和False,注意大小写
复述型 形如3+5j,跟数学上的复数表示一样,唯一不同的是虚部的i换成了j
变量命名
字母数字下划线组成,不能用字符串开头
大小写敏感
不能跟关键字冲突
PEP8要求(小写字母,下划线拼接;受保护的实例属性用下划线开头;私有实例属性用双下划线开头)
运算符
[] [:] ~ + - * / % // << >> & ^ ` >= <= > < == != is (is_not)in (not in) not or and
分支循环
if elif else 不使用花括号,使用缩进区分代码块
for in 循环
while循环
字符串 列表 元组 的操作和相互转换,字典 集合
面向对象基础
1,面向对象:把一组数据结构和处理他们的方法组成对象,相同的行为对象归纳为类,通过类的封装隐藏内部细节,通过继承实现类的特化和泛化,通过多态实现基于对象类型的动态分派
2,封装:隐藏一切可以隐藏的实现细节,只向外界暴露(提供)简单的编程接口
3,类之间的关系 is-a(继承/范化) has-a(关联) use-a(依赖)
4,继承、多态:在已有的类的基础上创建新类,将已有类的属性和方法直接继承下来,减少重复代码(父类 超类 基类 子类 派生类 衍生类)。我们经常用子类对象去替换父类对象,叫做里氏替换原则。子类可以替换父类的方法(重写)。这样不同的子类对象会出现不同的行为(多态)
图形界面
1,基于tkinter模块的GUI,python默认的GUI开发模块是tkinter,基于TK(跨平台GUI控件),python并不擅长开发GUI应用,还有wxPython、pyQt、pyGTK等
2,GUI通常是事件驱动的,进入主事件循环就要监听鼠标键盘等,并对应代码逻辑处理不同的事件,处理之后继续监听。
3,TK为控件的摆放提供三种布局(Placer,Packer,Grid)
4,Pygame是开源的游戏开发python模块,用于多媒体应用的开发,包含对图像,声音,事件,视频,碰撞等支持,基于SDL(跨平台多媒体库c实现)。
文件和异常
1,文件操作符 w r a x b t +
2,异常处理 try exxept ; with上下文环境管理
正则表达式
1,python提供re模块支持正则表达式
进程和线程
1,进程是系统执行的程序,操作系统以进程为单位分配存储空间,每个进程有自己的地址空间,数据栈和辅助数据,操作系统管理调度进程的执行,分配进程的资源。fork来创建新的进程,进程之间的通信通过IPC实现,包括管道、信号、套接字、共享内存区等
2,线程cpu的执行单元,一个进程可以有多个并发的线程。线程在同一个进程下所以事共享上下文的,数据共享比较简单。
3,python可以通过multiprocessing来进程多进程管理,multiprocessing的queue类可以被多个进程共享的队列,底层信号通过管道和信号量机制实现的
4,python的多线程通过thread模块,但是太过底层很多功能没有,所以大家用的比较多的事threading
5,多线程并不能发挥cpu的多核特性,python解释器有一个全局解释器锁,任何线程执行前都必须获得GIL锁,每执行100字节码,就会释放锁,让别的线程执行
网络编程
1,http协议,requests库是python基于http协议的第三方库,安全,方便
2,套接字,c语言实现的库文件,用于进程之间通信和网络编程,实际开发中套接字分为三类:流套接字,数据报套接字,原始套接字
3,SMTP协议,是简历在TCP协议之上的可靠数据传输的应用级协议,python通过smptlib模块实现
图像和办公文档处理
1,python的OpenPyXL模块,LibreOffice Calc和OpenOffice Calc能够处理excel表格
 
 
 

一,python简介 笔记的更多相关文章

  1. python学习笔记1之-python简介及其环境安装

    python学习笔记之-python简介及其环境安装 最近几年python之火不用多说,最近开始利用时间自学python,在学习的过程中,按照自己的思路和理解记录下学习的过程,并分享出来,如果正好你也 ...

  2. Python 学习笔记(一)Python 简介

    Python 简介 Python  1989年 吉多 · 范罗苏姆(Guido van Rossum)发明 Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言 Python 应用于众 ...

  3. Python学习笔记之发展史、简介以及特点

    Python发展史 Python 是由 Guido van Rossum 在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的. Python 本身也是由诸多其他语言发展而来的,这包括 ...

  4. python学习之路-1 python简介及安装方法

    python简介 一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. 目前最新版本为3.5.1,发布于2015年12月07日 ...

  5. OpenCV之Python学习笔记

    OpenCV之Python学习笔记 直都在用Python+OpenCV做一些算法的原型.本来想留下发布一些文章的,可是整理一下就有点无奈了,都是写零散不成系统的小片段.现在看 到一本国外的新书< ...

  6. Python学习笔记基础篇——总览

    Python初识与简介[开篇] Python学习笔记——基础篇[第一周]——变量与赋值.用户交互.条件判断.循环控制.数据类型.文本操作 Python学习笔记——基础篇[第二周]——解释器.字符串.列 ...

  7. 近期Python学习笔记

    近期Python 学习笔记--一篇文入门python 作者:Pleiades_Antares(www.cnblogs.com/irischen) 写在前面的话 想学Python已经许久,一年多以前(应 ...

  8. Deep learning with Python 学习笔记(9)

    神经网络模型的优化 使用 Keras 回调函数 使用 model.fit()或 model.fit_generator() 在一个大型数据集上启动数十轮的训练,有点类似于扔一架纸飞机,一开始给它一点推 ...

  9. python学习笔记目录

    人生苦短,我学python学习笔记目录: week1 python入门week2 python基础week3 python进阶week4 python模块week5 python高阶week6 数据结 ...

随机推荐

  1. pandas之时间序列(data_range)、重采样(resample)、重组时间序列(PeriodIndex)

    1.data_range生成时间范围 a) pd.date_range(start=None, end=None, periods=None, freq='D') start和end以及freq配合能 ...

  2. [转]【JVM】调优笔记2-----JVM在JDK1.8以后的新特性以及VisualVM的安装使用

    [From]https://www.cnblogs.com/sxdcgaq8080/p/7156227.html               隔壁的,加个引用做书签! [JVM]调优笔记2-----J ...

  3. Bat:Basic knowledge(同时运行多条命令,连接SqlServer执行sql,单个bat打开多个tomcat,cmd切换命令行编码,根据PID结束端口号)

    1.Windows7环境下命令行一次运行多条命令 Windows7命令行(cmd)下,如果想一次运行多条命令可能用到的连接符个人了解到的有三个:&&,||和&. aa & ...

  4. 记录一次MySQL进程崩溃,无法重启故障排查

    最近程序在跑着没几天,突然访问不了,查看应用进程都还在.只有数据库的进程down掉了.于是找到日志文件看到如下错误 -- :: [Note] InnoDB: Initializing buffer p ...

  5. 关联规则(Apriori算法)

    关联分析直观理解 关联分析中最有名的例子是“尿布与啤酒”.据报道,美国中西部的一家连锁店发现,男人们会在周四购买尿布和啤酒.这样商店实际上可以将尿布与啤酒放在一块,并确保在周四全价销售从而获利.当然, ...

  6. 代码: 0x80131500 win10应用商店崩溃了

    网上搜索大部分认同的结果如下 1.打开“运行”输入 inetcpl.cpl (“WINDOWS”+“R”键,输入 inetcpl.cpl亦可) 2.点开高级往下拉,勾上"使用TLS 1.2& ...

  7. 第四周课程总结&实验报告二

    第四周课程总结 第四周课程总结 本周重点为学习String;首先String用以创建字符串,且通过有一次课堂练习加强理解到:String 类是不可改变的,一旦创建了 String 对象,那它的值就无法 ...

  8. spring boot 框架根據 sql 創建語句自動生成 MVC層類代碼

    GITHUB: https://github.com/lin1270/spring_boot_sql2code 會自動生成model.mapper.service.controller. 代碼使用No ...

  9. mysql的root密码忘了

    忘记密码:https://www.cnblogs.com/ryanzheng/p/9348723.htmlmy.cnf的[mysqld]下加:skip-grant-tables重启 mysql -ur ...

  10. Spring 最常用的 7 大类注解,史上最强整理!

    随着技术的更新迭代,Java5.0开始支持注解.而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架. 而spring的的注解那 ...