zoukankan      html  css  js  c++  java
  • Python的实用场景有哪些

    Python作为一种编程语言,是许多领域的首选语言,其火爆程度自不必说。那这么受欢迎的Python到底可以用来做什么呢?

    不负责任地说,Python 可以做任何事情:自动化运维、Web 程序开发、桌面程序开发、科学计算、图像处理,甚至可以助你脱单(有程序员小哥用Python制作送给女票的生日礼物)。

    Python能做的事情太多了,我们来好好的捋一捋

    一、Python适用于哪些应用场景?

    这个没有固定答案,很多人都说Python不适合开发GUI的程序,但Python自己的IDE——IDEL和第三方的IDE——Eric就是Python写的。

    也有一个情况用的比较多,用Python当胶水,与各种语言结合,共同完成某软件功能,注意观察也许你会发现在安装一些软件的时候会有Python的身影。

    另外大数据分析Python也是比较适合的,从载入到分析,再到保存结果等,Python有一整套的模块应对。

    二、Python能够胜任大数据吗?

    Python很适合做大数据相关的分析,内置的C编译的模块能应对常见的操作,个别极端的算法建议用C重写相关模块。

    Python本身的特点更多的是高效率的开发和简单的维护,速度交给C,更多的问题其实出自写代码的人没有更好的使用,而不是效率不够高。比如排序,本来Python有非常高效的内置C编译的模块,却非要自己写算法,这样的结果不慢都是奇怪的。

    另外还要看需求是CPU密集型,还是IO密集型,如果是CPU密集型建议这部分操作由C实现,IO密集型的效率不会因为Python而有多少改变。

    C的效率是高,但框架搭起来也费劲,所以还是结合着来吧。

    三、Python是否可以完全代替Shell?

    完全可以,Shell的功能Python均可实现,而且代码量更少、结构更优、可阅读性更好,而Python可实现的功能Shell却不一定能,如运维中会用到的用于网络通信的Socket模块、用于WEB的Django框架、用于性能采集的psutil模块等,而且Shell对操作系统的命令依赖性较强,Python可在更大程度上规避。

    再说下Python的效率问题,Python支持多进程、多线程以及协程(比线程更小一级),程序并发度是在Shell之上的。Python的核心模块基本都是用C实现的,因此效率更高。如有必要也可能将需要用Python实现的Python模块用C重写以提高效率,当然也可以直接用C Python,一个直接完全用C实现的Python解释器。

     

    四、Python是否可以访问常见的数据库?

    可以,Python可以访问常见的各种数据库,如Oracle、MySQL、Vertica、SQLServer等,加载相应的模块即可,模块列表如下:

    • Oracle:cx_Oracle

    • MySQL:MySQLdb

    五、Python开发是面向过程、函数还是对象?

    Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写法也是可以的,Python并不做硬性的限制。

    Python的面向对象特征如下:

    1.封装

    面向对象程序设计中的术语对象(Object)基本上可以看做数据(特性)以及由一系列可以存取、操作这些数据的方法所组成的集合。传统意义上的“程序= 数据结构+算法”被封装”掩盖“并简化为“程序=对象+消息”。对象是类的实例,类的抽象则需要经过封装。封装可以让调用者不用关心对象是如何构建的而直接进行使用。

    2.继承

    类继承:

    继承给人的直接感觉是这是一种复用代码的行为。继承可以理解为它是以普通的类为基础建立专门的类对象,子类和它继承的父类是IS-A的关系。

    多重继承:

    不同于C#,Python是支持多重类继承的(C#可继承自多个Interface,但最多继承自一个类)。多重继承机制有时很好用,但是它容易让事情变得复杂。

    3.多态

    多态意味着可以对不同的对象使用同样的操作,但它们可能会以多种形态呈现出结果。在Python中,任何不知道对象到底是什么类型,但又需要对象做点什么的时候,都会用到多态。方法是多态的,运算符也是多态的。

    六、如何快速掌握Python?

     

    阅读官方文档即可满足日常需求,官方文档有中文翻译(http://www.pythondoc.com/),更加方便学习。

    但这些都是基础的语法和常见的模块,Python学习重要的是模块,快速、高效的开发依赖的是模块的应用,站在前人的肩膀会省时省力的多。

    但学习Python其实最重要的是学习模块,而非语法本身,Python的语法十分简单,只要大学学过C或者数据结构课程,甚至完全没学过的人也是可以轻松掌握的。掌握了语法已经可以实现Shell的功能,但要想提高模块的学习必不可少,如运维人员经常用的有:

    • psutil:获取性能信息

    • socket:基本网络通信

    • IPy:IP地址相关处理

    • dnsptyhon:域名相关处理

    • difflib:文件比较

    • pexpect:屏幕信息获取,常用于自动化

    • paramiko:SSH客户端

    • XlsxWriter:Excel相关处理

    七、Python是否有专用的IDE工具?

    有,IDEL用Python实现的Python的IDE工具。

    PyCharm:

    PyCharm是JetBrains开发的Python IDE。PyCharm用于一般IDE具备的功能,比如,调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制……另外,PyCharm还提供了一些很好的功能用于Django开发,同时支持Google App Engine,更酷的是,PyCharm支持IronPython!

    Wing IDE:

    Wingware的Python IDE兼容Python 2.x和3.x,可以结合Django,matplotlib,Zope, Plone,App Engine,PyQt,PySide,wxPython,PyGTK,Tkinter,mod_wsgi,pygame,Maya,MotionBuilder,NUKE,Blender和其他Python框架使用。

    其他的还有:Eclipse withPyDev、Sublime Text、Komodo Edit、PyScripter、The Eric Python IDE、Interactive Editor for Python

     

    八、运用Python实现系统自动化监控有哪些常用方法?

    准确的说应该是有哪些模块,监控肯定要有psutil来监控性能,还会用到通信的Socket,登陆的Paramiko、telnetlib,ftp的ftplib。

    原理基本就是采集数据——本地处理数据——传输数据,如果做的比较完善可以再做个呈现数据,也可以把数据发送给Zabbix等开源工具。

    九、Python可运行在哪些平台?跨平台性如何?

     

    支持常见的主流平台,如AIX、HPUX、Solaris、Linux、Windows等,除Windows外常见的Unix、Linux平台均带有原生的Python,但版本一般较低。

    关于跨平台和他跨平台语言一样,要注意有些个别模块是单一平台特有的,整体的跨平台性还是很好的,不必为适应多平台写多套代码。

    十、Python运行速度如何? 

    通常Java的速度比Python快些。Python调用C扩展除外(也可以直接用CPython)。

    对于Python速度太慢的批评,Python语言作者Guido van Rossum说:

    如果你开发的系统发现了性能瓶颈,通常最有效率的做法是找到出问题的代码块,用速度较快的语言如C或C++写一些代码替换该功能或该模块,而不是用C或C++重写整个系统,因为对大部分代码而言,语言的速度是无关紧要的。

  • 相关阅读:
    【24.17%】【codeforces 721D】Maxim and Array
    【26.42%】【codeforces 745C】Hongcow Builds A Nation
    【67.24%】【codeforces 745A】Hongcow Learns the Cyclic Shift
    【37.50%】【codeforces 745B】Hongcow Solves A Puzzle
    【78.89%】【codeforces 746A】Compote
    【75.28%】【codeforces 764B】Decoding
    【30.43%】【codeforces 746C】Tram
    【21.58%】【codeforces 746D】Green and Black Tea
    四种生成和解析XML文档的方法详解(介绍+优缺点比较+示例)
    xml常用四种解析方式优缺点的分析×××××
  • 原文地址:https://www.cnblogs.com/shujuyr/p/14143761.html
Copyright © 2011-2022 走看看