这一部分的笔记主要来源于 机械工业出版社的《Python3智能数据分析快速入门》 ,是在今年7月中旬读完的。然后把笔记在这里整理一下,也方便日后查阅。
Python的语法很多来自C语言,但又受到ABC语言的强烈影响。Python从ABC语言中发展起来,结合了UNIX shell和C语言的习惯,最终成为一门为众多UNIX系统和Linux系统开发者所青睐的开发语言。
(总之,Python是一门不古老但也不年轻的语言,但 人生苦短,请学Python)
Python语言是一门解释型、动态、强类型的面向对象编程语言。
所谓解释型,是指程序不需要编译,程序在运行时才翻译成机器语言,每执行一次都要翻译一次。因此效率比较低。(虽然对于入门用户而言,程序能跑起来比跑得快要更重要一些)
所谓动态,指的是脚本语言是为了缩短传统的编写-编译-链接-运行(edit-compile-link-run)过程而创建的计算机编程语言,即脚本只在被调用时进行解释或编译。
所谓强类型,是指强类型定义。例如你有一个整数,如果不显式地进行转换,你不能将其视为一个字符串。与其相对应的是弱类型语言:数据类型可以被忽略的语言。
动态语言(弱类型语言) 是运行时才确定数据类型的语言,变量在使用之前无需申明类型,通常变量的值是被赋值的那个值的类型。比如Php、Asp、JavaScript、Python、Perl等等。
静态语言(强类型语言) 是编译时变量的数据类型就可以确定的语言,大多数静态语言要求在使用变量之前必须生命数据类型。比如Java、C、C++、C#等。
(所以实际写Python时要注意数据类型的转换,如input函数输入后别把返回的str当int传入)
所谓面向对象,与面向过程相对,面向对象编程(OOP)的主要思想是把构成问题的各个事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙一个事物在整个解决问题的步骤中的行为,从而更贴近事物的自然运行模式。
应该说,是丰富的库让Python变得更美好
数值计算库 | 简介 |
---|---|
NumPy | 支持多维数组与矩阵运算,也针对数组运算提供大量的数学函数库 |
SciPy | 在NumPy库的基础上增加了众多的数学、科学及工程计算中常用的库函数 |
Pandas | 基于NumPy的一种工具,为解决数据分析任务而生 |
数据可视化库 | 简介 |
---|---|
Matplotlib | 第一个Python可视化库,功能强大但也复杂 |
Seaborn | 基于Matplotlib,用简洁的代码制作好看的图表,默认绘图风格和色彩搭配具有现代美感 |
Ggplot | 基于R的一个作图库,允许叠加不同的图层来完成一幅图 |
Bokeh | 制作可交互、可直接用于网络的图表 |
Plotly | 交互图表的制作,提供别的库中几乎没有的几种图表类型,如等值线图、树形图和三维图表 |
Pygal | 提供可直接嵌入网络浏览器的可交互图像,可将图表输出为SVG格式 |
geoplotlib | 用于制作地图和地理相关数据的工具箱,需先安装Pyglet(一个面向对象编程接口) |
missingno | 用图像的方式快速评估数据缺失的情况,根据数据的完整度对数据进行排序或过滤,或根据热度图或树状图对数据进行修正 |
(下面开始专业级了解内容)
网络编程库 | 简介 |
---|---|
Socket | 套接字通讯底层库,用于在服务器和客户端之间建立TCP或UDP连接,通过连接发送请求与响应 |
Django | 高级的Python web框架,支持快速开发,提供从模板引擎到ORM所需的一切东西 |
Flask | 轻量级框架,适合用来编写API服务 |
Twisted | 基于事件驱动的网络引擎框架,适用于底层网络 |
Tornado | 采用非阻塞网络I/O模型,可以处理数以千计的网络连接 |
MySQL连接库 | 简介 |
---|---|
MySQL-python | 该库基于C语言开发,只支持Python 2.x,且在Windows平台上的安装非常不友好 |
mysqlclient | 完全兼容MySQLdb,同时支持Python 3.x,是Django ORM的依赖工具 |
PyMySQL | 纯Python实现的驱动 |
SQLAIchemy | 一种既支持原生SQL,又支持ORM的工具 |
自动化运维应用 | 功能 |
---|---|
jumpsever跳板机 | 一种由Python编写的开源跳板机(堡垒机)系统,基于SSH协议,实现了跳板机的基本功能,包含认证、授权和审计,集成了Ansible、批量命令 |
Magedu分布式监控系统 | 一种用Python开发的硬件管理程序,可监控常用系统服务、应用、网络设备,可在一台主机上监控多个不同服务 |
Magedu的CMDB | 一种用Python开发的硬件管理系统,包含采集硬件数据、API、页面管理3部分功能,主要用于自动化管理笔记本、路由器等常见设备的日常使用 |
任务调度系统 | 一种用Python开发的任务调度系统,主要用于自动化地将一个服务进程分布到其他多个机器的多个进程中 |
Python运维流程系统 | 一种使用Python语言编写的调度和监控工作流的平台,内部用于创建、监控和调整数据管道 |
GUI库 | 简介 |
---|---|
Tkinter | 一个Python的标准GUI库,可以快速地构建GUI应用程序 |
wxPython | 一款开源软件平台GUI库wxWidgets的Python封装和Python模块 |
PyQt | 一个创建GUI应用程序的工具库,是Python编程语言和Qt的成功融合 |
PySide | 一个跨平台的应用程序框架Qt的Python绑定版本 |
Pythpn的IDE有很多,如IDLE、PyCharm、Eclipse+PyDev 、Rodeo 、Jupyter Notebook、Spyder等。
(找到合适自己的安装就好,转两个链接)
Python官网
PyCharm官网
(题干略,解释中有自我理解的部分,此部分当扩展知识用)
C
python3.x并不向下兼容python 2 ;第一个python解析器是CPython,诞生于1991年; Python核心团队将在2020年停止支持Python 2,许多第三方库已经完成向Python 3的转型; python的最新版本现有的是3.9
B
Python语言是一门解释型、动态、强类型的面向对象编程语言。
B
tensorflow 由google团队开发;Sklearn为Python机器学习标准库; Pytorch的计算方式都是动态的; Theano是一个更为学术化的神经网络模块。
C
IPython是基于CPython之上的一个交互式解释器,但仍是用C语言开发的;Cpython使用C语言开发; JPython运行在Java平台上; PyPy与CPython的执行结果有可能不同。
A
Pycharm社区版是可以免费使用的;IDLE是Python基本IDE; Jupyter Notebook可在网页页面中直接编写代码和运行代码;Spyder是一个开源的轻量级Python开发环境。
应声虫
# 创建应声虫程序 input('请输入一个字符:') print('输入成功')
请输入一个字符:1 输入成功
#求1+2+3+...+k的和 k = input('请输入一个正整数') i=1 sum=0 while i<= int(k) : sum+=i i+=1 print(sum)
请输入一个正整数100 5050
注:代码除部分经本人修改外,主要来源于本书配套资料