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. Redis集群配置和常见异常解决

    前文 Redis的Cluster集群,是在分布式且开源环境下最佳的高可用解决方案,可以有效的解决服务器宕机下或高并发下,数据的完整性. 文档前提 Redis 3.0版本或更高版本.(3.0版本开始支持 ...

  2. jenkins凭证与新建任务

    一.凭证介绍 有许多第三方网站和应用程序可以与 Jenkins 进行交互,例如程序代码仓库,云存储系统和服务等. 此类应用程序的系统管理员可以在应用程序中配置凭证以专供 Jenkins 使用.通常通过 ...

  3. 外国前端收费模板wrapbootstrap

    https://wrapbootstrap.com/ 新闻模板 http://wrapbootstrap.com/preview/WB037B6R2

  4. vscode 中sftp配置

    简单记录一下,相对路径的设置不用“/”表明根目录等,直接写目录名字即可 {     "name": "profile name",     "prot ...

  5. XCTF (app1)

    打开app.一个文本框,随便输入提示如下图. 打开JEB反编译. v2调用getPackageInfo获取版本信息.一般 Android 通过 PackageInfo 这个类来获取应用安装包信息,比如 ...

  6. 【Python基础】lpthw - Exercise 47 自动化测试

    一.自动化测试的目的 利用自动化的测试代码取代手动测试,使得程序中的一些初级bug可以被自动检出,而无需人工进行重复繁琐的测试工作. 二.编写测试用例 利用上一节编写的skeleton,这次在proj ...

  7. 调用百度api的原理流程

    1.为了实现酒店地址的定位 2.使用可视化便捷的百度地图API生成器:设置公司的地址和地图等级 3.设置地图的滚轮.缩放功能 4.获取代码,拷贝到html页面中 5.申请秘钥,在html中引用地图AP ...

  8. 【并行计算-CUDA开发】OpenCL、OpenGL和DirectX三者的区别

    什么是OpenCL? OpenCL全称Open Computing Language,是第一个面向异构系统通用目的并行编程的开放式.免费标准,也是一个统一的编程环境,便于软件开发人员为高性能计算服务器 ...

  9. 西安邀请赛-E(树链剖分+线段树)

    题目链接:https://nanti.jisuanke.com/t/39272 题意:给一棵树,n个结点,树根为1,n-1条边,每个结点有一个权值.进行3种操作: 1 s t:把1和s之间的最短路径上 ...

  10. linux shell脚本中使用expect(脚本打开新终端自动远程连接顺便输一点指令)(巨坑)

    放弃吧 我找了六个小时都没找到可以用的方案(指标题括号里的内容) 给个曲线救国的方法: 现把expect脚本写成一个文件 在另一个shell脚本中调用