• 一,python简介 笔记


    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表格
     
     
     

  • 相关阅读:
    使用Kafka Connect导入/导出数据
    FastDFS :java.lang.Exception: getStoreStorage fail, errno code: 28
    Zookeeper+Kafka集群测试
    zookeeper,kafka错误
    kafka systemctl开机启动
    zookeeper systemctl开机启动
    kafka 集群安装
    kafka升级官方指导及注意事项
    centos7.7 添加nginx服务
    教你如何迅速秒杀掉:99%的海量数据处理面试题
  • 原文地址:https://www.cnblogs.com/hellohell/p/10960580.html
Copyright © 2020-2023  润新知