精华内容
下载资源
问答
  • 本科不是简单地介绍Python语法,而是通过案例,有针对性地讲解Python最经典、最核心的功能。 2.Python网络爬虫 人工智能离不开大数据,而数据从何而来呢?没错,使用Python网络爬虫,就可以从浩瀚的互联网中获取海量...
  • Python应用与实践

    千次阅读 2018-08-02 17:31:22
    Python应用与实践 目录 1. Python是什么?... 1 1.1. Python语言... 2 1.2. Python哲学... 5
    原文地址为:
    Python应用与实践
    

     

    Python应用实践

    目录

    1.      Python是什么?... 1

    1.1.      Python语言... 2

    1.2.      Python哲学... 5

    2.      Python在工作中的应用... 6

    2.1.      实例1:文件批量处理... 6

    2.2.      实例2xmlexcel互转... 7

    2.3.      总结... 11

    3.      为什么选择Python... 12

    3.1.      前途!钱途!... 12

    3.2.      开发效率极高... 14

    3.3.      总而言之... 20

    4.      还有谁在用Python... 20

    4.1.      国外... 21

    4.2.      国内... 28

    5.      是不是想学习Python了?... 32

    入门资料... 32

    工具... 32

     

    可能有些标题党,没有针对某些具体的应用与实践。有哪些补充、不足请大家指出。

    1.  Python是什么?

    Life is short, You need python

    生命苦短,我用Python

    1.1.      Python语言

    Python是一种解释型面向对象动态数据类型的高级程序设计语言,具有20多年的发展历史,成熟且稳定。Python具有以下特点(摘自《A Byte of Python》,中译名《简明Python教程》):

    l  简单Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样。它使你能够专注于解决问题而不是去搞明白语言本身。

    l  易学Python极其容易上手,因为Python有极其简单的

    l  免费、开源

    l  高层语言:用Python语言编写程序的时候无需考虑诸如如何管理你的程序使用的内存一类的底层细节。

    l  可移植性:由于它的开源本质,Python已经被移植在几乎所有平台上(经过改动使它能够工作在不同平台上)。

    l  解释性Python解释器把源代码转换成称为字节码的中间形式,然后再把它翻译成计算机使用的机器语言并运行。这使得使用Python更加简单。也使得Python程序更加易于移植。

    l  面向对象Python既支持面向过程的编程也支持面向对象的编程。在面向过程的语言中,程序是由过程或仅仅是可重用代码的函数构建起来的。在面向对象的语言中,程序是由数据和功能组合而成的对象构建起来的。

    l  可扩展性:如果需要一段关键代码运行得更快或者希望某些算法不公开,可以部分程序用CC++编写,然后在Python程序中使用它们。(胶水语言)

    l  可嵌入性:可以把Python嵌入C/C++程序,从而向程序用户提供脚本功能。

    l  丰富的库Python标准库确实很庞大。它可以帮助处理各种工作,包括正则表达式、文档生成、单元测试线程数据库、网页浏览器CGIFTP电子邮件XMLXML-RPCHTMLWAV文件、密码系统、GUI图形用户界面)、Tk和其他与系统有关的操作。这被称作Python功能齐全理念。除了标准库以外,还有许多其他高质量的库,如wxPythonTwistedPython图像库等等。

    下面简单介绍下几个关键版本:

    l  1989年圣诞节期间的阿姆斯特丹,吉多为了打发圣诞节的无趣,决心开发一个新的脚本解释编程。之所以选中Python作为编程的名字,是因为他是一个蒙提·派森的飞行马戏团的爱好者。

    clip_image002[4]

    创始人为吉多·范罗苏姆Guido van Rossum

    l  Python 2.020001016日发布,主要是实现了完整的垃圾回收,并且支持Unicode

    l  Python 3.02008123日发布,此版不完全兼容之前的Python源代码。

    目前使用最广泛的版本是2.7,最新稳定版本是Python 3.3.1201346日)Django等库开始支持Python3了,也意味着Python3将成为主流。

    1.2.      Python哲学

    clip_image003[4]

    图:Python哲学

    用过 Python的人,基本上都知道在交互式解释器中输入 import this 就会显示 Tim Peters The Zen of Python。(摘自:《Python之禅》的翻译和解释,http://goo.gl/1joZU

    The Zen of Python, by Tim Peters

    Beautiful is better than ugly.

    Explicit is better than implicit.

    Simple is better than complex.

    Complex is better than complicated.

    Flat is better than nested.

    Sparse is better than dense.

    Readability counts.

    Special cases aren't special enough to break the rules.

    Although practicality beats purity.

    Errors should never pass silently.

    Unless explicitly silenced.

    In the face of ambiguity, refuse the temptation to guess.

    There should be one-- and preferably only one --obvious way to do it.

    Although that way may not be obvious at first unless you're Dutch.

    Now is better than never.

    Although never is often better than *right* now.

    If the implementation is hard to explain, it's a bad idea.

    If the implementation is easy to explain, it may be a good idea.

    Namespaces are one honking great idea -- let's do more of those!

    翻译和解释

    Python之禅 by Tim Peters

    优美胜于丑陋(Python 以编写优美的代码为目标)

    明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

    简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)

    复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

    扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

    间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

    可读性很重要(优美的代码是可读的)

    即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

    不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

    当存在多种可能,不要尝试去猜测

    而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

    虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido

    做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)

    如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

    命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

     

    2.  Python在工作中的应用

    2.1.      实例1:文件批量处理

    如对文件进行批量重命名,将文件夹中所有的文件名的”scroll_1”替换为”scroll_00

    文件批量重命名

    import os

    path = 'C:\\Users\\tylerzhu\\Desktop\\icon'

    for file in os.listdir(path):

        if os.path.isfile(os.path.join(path,file))==True:

         newname = file.replace("scroll_1", "scroll_00")

            os.rename(os.path.join(path,file),os.path.join(path,newname))

            print(file)

     

    2.2.      实例2xmlexcel互转

    Excelxml

    Excelinfo_fight_monster.xls包含3sheet,分别表示怪物的基本信息、技能信息、奖励信息。

     

    XMLinfo_fight_monster.xml包含怪物的所有信息,格式如下:

    <monster attack="84" attrib="2" classId="20" define="37" desc="" frameRate="24" icon="cdn/imageres/pets/pet_56_20.png" level="4" luck="0" monsterSID="1024" name="被驯服的小火猴" skill="74" speed="0" strength="447" type="0" url="cdn/flashres/pets/pet_20.swf">

      <skill skillLevel="2" skillSID="30048"/>

      <skill skillLevel="2" skillSID="30034"/>

      <prize desc="" gameID="0" infoType="27" itemSID="80001" itemType="0" level="小火猴的魔法棒" name="" num="1" plusSID="400001" prizeSID="1" type="1"/>

    </monster>

    编写脚本将Excel转换为XML格式。

    ExcelXML

    #! /usr/bin/env python

    #coding=utf-8

    '''

    Created on 2013-3-31

    info_fight_monster.xls转换为XML格式。转换分为以下几步:

    step1 读取xml文件,info_fight_monster.xls

    step2 解析出怪物基本信息,在base这个sheet里面,并放到一个xml文件中

    step3 解析出怪物的技能信息,并将技能信息插入到对应的xml

    step4:解析出怪物的奖励信息,并插入到对应XML

    step5:保存xml文件

    @author: tylerzhu'''

    from lxml import etree

    import xlrd3, codecs

     

    attrib = ["monsterSID", "classId", "type", "level", "attrib", #

              "attack", "skill", "define", "speed", "strength", #

              "luck", "name", "desc", "icon", "url", "frameRate"];

             

    prize = ["monsterSID", "prizeSID", "type", "infoType", "gameID", "itemType",  #

             "itemSID", "num", "plusSID", "level", "name", "desc", "icon"];

            

    skill = ["monsterSID", "skillSID", "skillLevel"];

     

    info_fight_monster_xml = etree.ElementTree(etree.Element("data"));

     

    def openxls():

        excel = xlrd3.open_workbook("xls/info_fight_monster.xls");

        base = excel.sheet_by_name("base");

        monster = excel.sheet_by_name("skill");

        prize = excel.sheet_by_name("prize");

        return (base, monster, prize);

     

    def buildMonsterBase(xls):

        sheet = xls[0];

        for row in range(1, sheet.nrows):

            monsterAttr = {};

            for col in range(0, sheet.ncols):

                if sheet.cell(row, col).value != None and col < len(attrib):

                    monsterAttr[attrib[col]] = sheet.cell(row, col).value;

                    if type(monsterAttr[attrib[col]]) == float:

                        #print(str(round(monsterAttr[attrib[col]])))

                        monsterAttr[attrib[col]] = str(round(monsterAttr[attrib[col]]));

            sub = etree.SubElement(info_fight_monster_xml.getroot(), "monster", monsterAttr);

            sub.tail = "\n"

            #input()

     

    def buildMonsterSkill(xls):

        sheet = xls[1];

        for row in range(1, sheet.nrows):

            skillAttr = {};

            for col in range(1, sheet.ncols):

                if sheet.cell(row, col).value != None and col < len(attrib):

                    skillAttr[skill[col]] = sheet.cell(row, col).value;

                    if type(skillAttr[skill[col]]) == float:

                        skillAttr[skill[col]] = str(round(skillAttr[skill[col]]));

            monsterSID = str(int(sheet.cell(row, 0).value));

            monster = info_fight_monster_xml.find("*[@monsterSID='" + monsterSID + "']");

            monster.text = ("\n\t");

            sub = etree.SubElement(monster, "skill", skillAttr);

            sub.tail = "\n\t"

     

    def buildMonsterPrize(xls):

        sheet = xls[2];

        for row in range(1, sheet.nrows):

            prizeAttr = {};

            for col in range(1, sheet.ncols):

                if sheet.cell(row, col).value != None and col < len(attrib):

                    prizeAttr[prize[col]] = sheet.cell(row, col).value;

                    if type(prizeAttr[prize[col]]) == float:

                        prizeAttr[prize[col]] = str(round(prizeAttr[prize[col]]));

            monsterSID = str(int(sheet.cell(row, 0).value));

            monster = info_fight_monster_xml.find("*[@monsterSID='" + monsterSID + "']");

            monster.text = ("\n\t");

            sub = etree.SubElement(monster, "prize", prizeAttr);

            sub.tail = "\n\t"

     

    def build():

        xls = openxls();

        buildMonsterBase(xls);

        buildMonsterSkill(xls);

        buildMonsterPrize(xls);

     

        #输出合并之后的配置

        ouput = codecs.open('output/info_fight_monster.xml', 'w', 'utf-8');

        ouput.write(etree.tounicode(info_fight_monster_xml.getroot()))

        ouput.close();

     

    if  __name__ == '__main__':

        build();

    是不是很简单!

    XmlExcel

    下面的例子将技能书info_fight_book.xml的数据转换为excel格式,例子只包含一个sheet的,如果有多个sheet同样处理即可。

    XMLExcel

    #! /usr/bin/env python

    #encoding=utf-8

    '''

    Created on 2013-5-6

    将技能书info_fight_bookxml转换为excel格式。

    例子只包含一个sheet,如果有多个sheet同样处理。

    @author: tylerzhu

    '''

    from lxml import etree

    import xlwt3 as xlwt

    #excel标题

    #。。。

    wb = xlwt.Workbook()

    ws = wb.add_sheet("技能书")

     

    tree = etree.parse('../xls/info_fight_book.xml')

    root = tree.getroot()

    row = 0

    col = 0

    for item in root:

        if len(item.attrib) == 0:

            continue

        row = row + 1

        col = 0

        for attr in item.attrib:

            ws.write(row, col, item.attrib[attr])

            col = col + 1

     

    wb.save('../output/技能书.xls')

     

    2.3.      总结

    通过上面例子,发现Python代码有以下特点:

    l  第一行是特殊形式的注释:它被称作 组织行 ——源文件的头两个字符是#!,后面跟着一个程序。这行告诉你的Linux/Unix系统当你 执行 你的程序的时候,它应该运行哪个解释器。建议使用这种形式——#!/usr/bin/env python,而不是——#!/usr/bin/python

    l  缩进很重要。Python使用缩进而不是一对花括号来划分语句块。

    l  文档字符串,__doc__,没多大用。但是一个好的Python程序,应该要有文档字符串,且一般遵循:“文档字符串的惯例是一个多行字符串,它的首行以大写字母开始,句号结尾。第二行是空行,从第三行开始是详细的描述。”

    l  python中引入模块后(import)首先就要执行模块的主块,当然模块中可能全是函数。如果要避免使用模块名称:from 模块名 import 符号名,那麽使用该符号名就不用使用模块名+点号+符号名,但是不推荐,容易造成程序不容易读,而且容易出错(特别是在python简洁而简单的语法的基础上)import... as ...起一个别名

    l  模块的__name__属性,相当有用,解决了import的缺点,可以实现如果不是运行的本模块而被调用,不调用主块

    l  如果你已经厌烦了javac++的读写文件,那么python会让你重新喜欢上文件读写,python主张解决问题的方案越少越好,写文件就一个f file(name, 'w')f.write(...)读文件也一样,f = file(name)f.readreadline,最后close

    l  ……

     

    3.1.      前途!钱途!

    clip_image006[4]

    图:据说几年之前,有公司因为提高跳槽门槛而使用Python(摘自:知乎)

    上面那截图只是2玩笑而已:-)。不管怎样,现在Python已经成为最受欢迎的程序设计语言之一,完全不用担心这个了。

    TIOBE编程语言排行榜,20072011两年被TIOBE编程语言排行榜评为年度语言

    clip_image007[4]

    图:TIOBE编程语言(2002~2012 Python索引)

    PYPLPopularity of Language Index)编程语言流行指数,它对各种语言的流行指标进行了二次发掘。在过去的十年里,Python语言获得了最大的增长幅度——十年语言之冠。

    clip_image008[4]

    图:编程语言流行指数(http://goo.gl/Nku0I

    3.2.      开发效率极高

    据说豆瓣开发只用了3个月时间就上线了。开发效率高,有以下几方面原因。

    丰富的内置类型及相关操作

    clip_image010[4]

    l  String:字符串放在单引号、双引号、三引号(多行时)中,从0开始索引,支持

    n  查:findindex

    n  切片: s[0:2]s[1:]

    n  连接:“abc”+“ef” => “abcdef”join

    n  分割:split

    n  格式化: format

    n  。。。大小写转换、编码等操作

    l  list, []names=[“Dave”, “Mark”, “Ann”],列表从0开始索引,索引元素names[1]。列表可以包括任意类型的对象,可以嵌套。支持增、删、查、分片。

    n  增:insertappend

    n  删:delremovepop

    n  查:search

    n  切片: names[0:2][1:]

    n  连接:[1,2,3]+[4,5] => [1,2,3,4,,5]extend

    n  反转:reverse

    l  tuple ()address=(“www.python.org”, 80)a = (80,)。元组语法与list相似,意义相当于枚举,可以为空,如果只含有一个元素,需要加逗号以区别于表达式(“one”, )。元组创建之后不可修改,即无法替换、删除、插入,但支持

    n  索引:address[0] => www.python.org

    n  切片:address[0:] => ('www.python.org', 80)

    n  连接:(“www.python.org”,) + (80,) => ('www.python.org', 80)

    n  host,port=addresshost => www.python.orgport => 80

    l  字典: dict() {}address={"host":"www.python.org", "port":80}支持

    n  索引:address[“host”] => “www.python.org”,

    n  getaddress.get("host") => “www.python.org”

    n  键:address.keys() => ['host', 'port']

    n  in"host" in address =>True

    n  删除:del address["host"] => {'port': 80}

    l  集合:set()a=set([1,2,3,4]);一个数值集合 b=set(“hello”)一个唯一字符集合。与列表、元组不同,集合中的元素是无序的,无法通过数字索引,且元素不能重复。

    n  并集:a|b => set([1, 2, 3, 4, 'h', 'l', 'o', 'e'])

    n  交集:a&b => set([])

    n  差集:a-b => set([1, 2, 3, 4]),即在a中不在b中元素

    n  对称差集:a^b => set([1, 2, 3, 'e', 'h', 'l', 'o', 4])

    n  adda.add(5) => set([1, 2, 3, 4, 5]) #添加一项

    n  update: a.update([6,7,8]) =>set([1, 2, 3, 4, 5, 6, 7, 8])#添加多项

    n  remove: a.remove(5) =>set([1, 2, 3, 4, 6, 7, 8])#删除一项

     

    强大的标准库

    clip_image011[4]

    Python拥有一个强大的标准库。Python语言的核心只包含数字、字符串、列表、字典、文件等常见类型和函数,而由Python标准库提供了系统管理、网络通信、文本处理、数据库接口、图形系统、XML处理等额外的功能。Python标准库命名接口清晰、文档良好,很容易学习和使用。

    Python标准库的主要功能有:

    • 文本处理,包含文本格式化、正则表达式匹配、文本差异计算与合并、Unicode支持,二进制数据处理等功能
    • 文件处理,包含文件操作、创建临时文件、文件压缩与归档、操作配置文件等功能
    • 操作系统功能,包含线程与进程支持、IO复用、日期与时间处理、调用系统函数、写日记(logging)等功能
    • 网络通信,包含网络套接字,SSL加密通信、异步网络通信等功能
    • 网络协议,支持HTTPFTPSMTPPOPIMAPNNTPXMLRPC等多种网络协议,并提供了编写网络服务器的框架
    • W3C格式支持,包含HTMLSGMLXML的处理。
    • 其它功能,包括国际化支持、数学运算、HASHTkinter

    无所不包的第三方库

    如果说强大的标准库奠定了python发展的基石,丰富的第三方库则是python不断发展的保证,随着python的发展一些稳定的第三库被加入到了标准库里面。

    “There are currently 30630 packages here.”—— https://pypi.python.org/pypi

    clip_image013[4]

    3.3.      总而言之

    用下图可以表示Python的强大。

    clip_image014[4]

    图:Python(来自:xkcdhttp://xkcd.com/353/

    Python在我工作中的应用,好像没什么说服力,证明不了啥。下面让我们看看有哪些大公司或有名的应用在使用Python,使用了哪些技术。

    4.1.      国外

    clip_image016[4]

    图:谁用在用Python

    上图只是列举了部分具有典型代表的公司,要列出所有的实在太困难的,因为太多国外在使用Python了。

    Python Google的三大编程语言之一

    GoogleC++JavaPython是使用率排名前三的编程语言,使用Python的开发团队也是Google的第三大研发部门。

    Google内部的很多项目,例如Google Engine使用C++编写性能要求极高的部分,然后用PythonJava/Go调用相应的模块。

    groups.google.comcode.google.com就是运行于Python之上的。此外,Python还广泛的用于基础维护部门。Guido Van Rossum加入Google的第一个项目Google Mondrian,是一个在线的代码预览系统,基于PerforceBigTableback-end)以及Pythonfront-end)。它使用了以下Python相关技术(http://goo.gl/3f5sy):

    The application is built on top of Python open source libraries such as the Django framework, smtpd.py mail service, and the wsgiref web server software

    Google雄心勃勃的云计算平台Google App Engine最早支持的Python编程语言。

    YouTube主要是Python写的

    l  Apache

    l  Python

    l  Linux(SuSe)

    l  MySQL

    l  psyco,一个动态的PythonC的编译器

    l  lighttpd代替Apache做视频查看

    most of the lines of code for YouTube are still in Python. Everytime you watch a YouTube video you are executing a bunch of Python code.

    YouTube解决问题的哲学只有一个词:简单。许多YouTube的产品最初只是源于一个简单的Python脚本。

    在线视频王者YouTube的技术哲学,http://goo.gl/PHMUE7 Years Of YouTube Scalability Lessons In 30 Minutes

    Quora - Python 驱动

    下面内容主要摘自并加入了自己的注释:Quora - Python 驱动,http://goo.gl/28RGq

    Quora 是使用什么语言和框架做的?

    What languages and frameworks were used to code Quora?

    创始人 Charlie 的回复:

    • 后端使用 Python 语言,Pylons 框架,但是框架一半左右被自己的系统替换(LiveNode/webnode2
    • 前端 JavaScript 基于 jQuery
    • Thrift做后端服务器之间通信(thrift最初由facebook开发,07年四月开放源码,thrift是一个软件框架,用来进行可扩展且跨语言的服务的开发。)
    • Comet Server 使用Tornado
    • hosting 主要使用 Amazon EC2, S3
    • 目前数据库使用 MySQLmemcached 做缓存,还有两个用 C++ 写的服务一起作为 data store
    • 版本控制用 Git

    为什么 Quora 选择 Python 作为开发语言

    Why did Quora choose Python for its development?. 下文只是简单整理,不是翻译。

    创始人 Adam 的回复里,提到两个创始人正好都比较熟悉 Python. 另外他说明了排除其它语言的过程:

    • PHP 根本不考虑。Facebook 陷进去无法脱身,不代表它是目前最好的选择,由此得到的经验是编程语言的选择非常重要而且改变的代价非常大。Adam 此处给了其它几个链接,其中有指出 PHP 一大堆弱点的,也包括一个问题 "Do Facebook engineers enjoy programming in PHP?". 我很赞同 Facebook 的工程师说的,familiarity breeds contempt. 没有完美的语言,每一种语言都有长有短,当把它用到极限的时候,短处就变得很显眼并让人烦恼。我个人认为 PHP 也仍然是不差的选择。
    • C# - 看起来不错但是 -
    1. 他们不想把基础搭建在微软的技术平台上。SQL Server 很好,不过 Quora 需要一大堆开源软件,这些代码即使支持 .NET, 也支持得比较差。
    2. 不想冒险使用 Mono,因为不知道它能撑多久,而且据说有性能问题
    Java 程序因为一些原因很容易变得更长,写起来比 Python 痛苦多了。 Scala 太新,也是一种冒险,另外虽然不像 Java 那么差,它也天生继承 JVM 的一些弱点。

    Python 虽然有性能问题,但是 Quora 一些性能很关键的代码都用 C++ 写(Python 的优势,Java 做起来相对困难)。至于类型检查的缺乏,Quora 通过完善的单元测试来弥补。

    Quora 另一位创始人 Charlie 加了几点:

    • 创立 Quora 的时候,Python 有许多很好的 web framework
    • Python 的数据结构跟 JavaScript 映射很好,这样 CS 之间交互数据很方便
    • Python 代码更易读
    • Python 在各方面有很多成熟的 library

    为什么 Quora 要用 Pylons 做开发

    Why did Quora choose to develop in Pylons?. Charlie 说他们想把 Pylons 的很多东西替换成自己的,比如他们不需要模版和 ORM. 在这方面,Pylons Django 之类的要好。

    Facebook九项工程改变科技产业之一——开源网络服务框架 Tornado

    其他八项可以查看:http://goo.gl/nzFCy

    Facebook九项工程改变科技产业之一——开源网络服务框架 Tornado是用 Pyhton 语言开发的实时网络服务器,它支持上万的不间断连接,也支持以长轮询(long-polling)方式发布实时数据。

    Tornado 最初是由 FriendFeed 公司开发出来的,而 FriendFeed 2009 Facebook 收购。随后 Facebook 发布 Tornado 开源工程,现在包括 Quora 在内的多家网站已使用 Tornado

    Reddit使用Python重写

    Reddit(美国最大的网上社区)最早是用 Common Lisp 开发,随之用 Python 进行了重写(2005年底完成)。著名的Python 框架 Web.py 就是 Reddit 当时的员工 Aaron Swartz 开发的,现在 Reddit Web 框架则使用了 Pylons 。在 2009 11 月,Reddit 迁移到 Amazon 的云计算平台。前端框架现在用的是 jQuery。或许你早就知道,Reddit 网站程序现在已经开源https://github.com/reddit/reddit,如果你感兴趣的话,不妨下载研究。

    Dropbox

    Dropbox 99.9%的代码是用Python写的。Python使用在服务器端、桌面客户端、网站控制逻辑,后端的 API 和分析。

    使用 Python 语言编写的代码,通过使用PyObjsWxPythontypespy2exe py2apPyWin32等工具,让Dropbox运行在WindowsMacLinux系统。

    6 Lessons From Dropbox - One Million Files Saved Every 15 Minuteshttp://goo.gl/Qj5sJ

    Instagram

    10亿美元被Facebook收购的Instagram,主要使用Python等开源技术。

    应用服务器:

    l  使用Django框架。

    l  使用Gunicorn作为 WSGI 服务器(过去曾用过 Apache 下的 mod_wsgi 模块,不过发现 Gunicorn 更容易配置并且节省 CPU 资源)。

    l  使用 Fabric 加速部署。

    任务队列/发布通知

    队列服务使用Gearman,工作实例(都用Python写的)在给定的时间内对队列中的任务进行消费,并分发给不同的服务;对于消息推送,找到的最划算的方案是,一个开源的Twisted 服务 pyapnsA universal Apple Push Notification Service (APNS) provider来实现,已经为Instagram处理了超过10亿条通知,并且绝对可靠。

    参考:What Powers Instagram: Hundreds of Instances, Dozens of Technologieshttp://goo.gl/mkfQN;中文版:http://goo.gl/Dkymt

    OpenStack

    OpenStack是一个美国国家航空航天局Rackspace合作研发的云端运算软件,以Apache许可证授权,并且是一个自由软件和开放源代码项目。

    OpenStackIaaS(基础设施即服务)组件,让任何人都可以自行建立和提供云端运算服务。此外,OpenStack也用作建立防火墙内的私有云Private Cloud),提供机构或企业内各部门共享资源。

    4.2.      国内

    clip_image018[4]

    腾讯

    腾讯游戏运营支撑体系的开发团队,在使用django/celery/rabitmq/mongodb开发了一个已广泛使用的内部开放平台。

    Django:是一个开放源代码的Web应用框架,由Python写成。采用了MVC的软件设计模式,即模型M,视图V和控制器CDjango的主要目标是使得开发复杂的、数据库驱动的网站变得简单。Django注重组件的重用性和“可插拔性”,敏捷开发和DRY法则(Don't Repeat Yourself)。

    Celery(芹菜)是一个异步任务队列/基于分布式消息传递的作业队列。它侧重于实时操作,但对调度支持也很好。celery用于生产系统每天处理数以百万计的任务。celery是用Python编写的,但该协议可以在任何语言实现。它也可以与其他语言通过webhooks实现。celery是易于集成Django, Pylons and Flask,使用 django-celery, celery-pylons and Flask-Celery 附加包即可。

    豆瓣

    豆瓣最初使用Python开发,只是用了3个月。洪强宁,《Pythonweb2.0网站的应用》,http://goo.gl/ZaI9s;《Python在豆瓣的应用》,http://goo.gl/IgeGe

    clip_image020[3]

    最早的豆瓣就完全使用 Python 开发,后台索引基于 twistedGUI 使用 Quixote,还用到了 cElementTree,数据库是 MySQL。所以豆瓣天生就有着 Python 的文化。在豆瓣,开发环境正逐步从 Subversion mercurial 迁移,还使用了 Python 编写的 trac IRC,之所以选择 IRC 是因为 IRC 有很大的灵活性,可以编写 Bot 自动化很多东西。除此之外:

    l  m.douban.com使用:Pylons

    l  内部管理系统使用: Django

    l  DPark系统:使用Python编写,支持迭代计算的MapReduce框架

    l  DAE(douban app engine):使用Python编写,类似于GAESAE,定位为内部的 PaaS 平台。

    新浪SAE

    新浪Sina App Engine Python,是新浪研发的PaaS(平台即服务)平台,已经开始支持Python了。陈正《Introduction to SAE Python》, http://goo.gl/0lkRm

    搜狐邮箱

    2007年,搜狐邮件中心基于webpy除了webpy,还用了优秀的WEB框架 – Tornado,发布了"搜狐闪电邮"的第一个Python版本。之后,Python就在搜狐邮件中心蓬勃的发展起来。到今天,搜狐邮箱已经成为国内最大的Python应用之一。而Python也成为了搜狐邮箱使用最广泛的语言。从运维到开发,从业务系统到基础服务,到处都存在它的影子。

    知乎

    (摘自知乎官方解答)知乎开发主要用的是friendfeed的框架tornadoTornado异步非阻塞的I/O模型的确让人耳目一新,Tornado的优势主要在于对大量Comet长轮询连接的维护上。这也是FriendFeed开发Tornado的原因-----因为FriendFeed需要实时更新Timeline,而Comet又是目前最好,最流行的方法。由于知乎也有大量长轮询连接需要维护,所以选择Tornado也就在情理之中了。

    但是我们也要看到,Tornado不是万金油,由于TornadoWEB服务器为单线程,一个Request如果阻塞了I/O,那么这个进程将一直挂起,既无法接受新的Request,也无法Finish正在阻塞的其它Request。虽然可以Spawn多个Tornado进程,但是进程这种重量级的东西,Spawn太多会消耗大量的内存资源。这种感觉很像PHPFastCGI进程那种味道。所以如果是会阻塞I/ORequest一般都是利用Tornado内置的异步HTTP Client交给其它动态后端来做。

    所以Tornado在生产中一般前面都要包一层nginx做反向代理,用nginx来做静态文件等大数据量的I/O操作。TornadoI/O时间实在是太金贵了,在这上面耗不起。

    各种游戏公司

    国内一些游戏后台使用Python开发,特别是一些网页游戏。可以搜索下有哪些公司在招聘Python游戏开发,会发现有很多公司在招聘。

    下面是几篇在PyCon会议上的文章:

    l  王健,《中型角色扮演游戏服务器的Python应用》,http://goo.gl/b2R6M

    l  赖勇浩,《Python webgame 的应用》,http://goo.gl/1QMOT

    l  林伟(skywind,《Python游戏开发探索与发现》中告诉大家Python已经足够简化到让策划人员也能写代码,用Python来描述一个游戏的场景。国内WebGame已经超过国外,在网易大量游戏项目用Python相关内容开发。

    通过上面的介绍,是不是迫不及待的想学习下Python了。下面推荐学习Python相关工具与文章。

    入门资料

    l  wikihttp://zh.wikipedia.org/zh/Python

    l  ChinaunixPython论坛资料

    l  OReilly-Learning-Python-4th-Edition-Oct-2009

    l  《简明 Python 教程》(中文),对应的英文版是《A Byte of Python

    l  深入 Python 3http://goo.gl/cyrUY

    工具

    l  UliPad 代码编辑工具(本身由python编写)

    l  Pydeveclipse + pydev插件

    l  Eric:基于PyQt的自由软件,功能强大。

     


    转载请注明本文地址: Python应用与实践
    展开全文
  • 主要介绍了python应用文件读取写登录注册功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
  • Python应用场景
    

    -------------------------------------
    python 因为通用(General-purpose) 所以什么能做。。。
    问在领域优势?就是想知道py在已经成熟的领域的优势?几乎没有。已知的成熟领域有许多专门、专项、成熟的工具、套件、中间件。

    py的优势在未知领域、作为探索新创意,探索新算法的辅助工具。
    像游戏的创意部分,经常变动的规则部分就用python
    像做研究的,有新想法要验证,可以用python。比如bittorrent BT就是这么来的
    像写代码的,有算法要尝试,可以用python。

    总之,不适合拿来做“照猫画虎”做山寨式抄袭(模仿)开发的。适合重点放在设计策划而不是实现implemetation的岗位。
    ----
    python一般认为是脚本语言,或者说是动态语言,速度慢肯定是所有解释性语言的缺点了,除此之外,python的多线程无法在多核上运行肯定也是需要解决的问题,不过它最大的优点就是敏捷,堪称敏捷开发的典范,适合的场合分两种:专业人士来做一些有意思的事情,比如写一些很有意思的脚本啊(黑客必学的语言之一);非专业人士用来做一些普通的事情,比如搭个自己的网站(django)或者一般的科学计算、格式转换等等。业界用python做web开发其实蛮少,不过也有,web框架比较好用的就是django,比较适合快速开发程序员至少得会c语言吧,剩下的看需要。语言无所谓。只要人牛叉,什么语言都能写出牛叉的程序。
    -----
    1. 支持OOP编程
    从根本上讲Python仍是一种面向对象的语言,支持多态、继承等高级概念,在Python里使用OOP十分容易
    没有C++、Java那样复杂,但不必做Python下OOp高手,够用即可。
    2. 免费Python的使用是完全免费的,您可以从网络上免费下载、安装使用,
    Python上的其他程序包,也可下载安装使用。
    Python的免费的同时又有很多的的社区对用户的提问提出快速的技术支持,学习和使用Python技术不再是一个人在战斗!
    3. 可移植性
    Python的实现是用ansi c编写的,可以运行在目前所有主流平台上,手机、pad上均可运行Python程序,其下的程序包也具有可移植性。
    4. 功能强大
    从特性的观点上看,Python是一个混合体,他丰富的工具集使得他介于传统的脚本语言和系统语言之间。
    ------
    python好不好,还在于自己的积累与感觉。如果你积累的多,游刃有余,会觉着它很好。从一般情况来看python是脚本语言之王,十年前是这样,十年后还是这样。

    胶水是指,python借助C语言接口,几乎可以驱动所有已知的软件,模块。 只要我们用到的,通常你都能找到一个开源的库。安装后就可以驱动它。无论是数据库,网络,互联网,图形,游戏,科学计算,GUI,OA,自动控制,甚至宇航员都在用。

    python通常不作为工程语言出现。就是正规的软件生产不使用它。主要用java, c#, xml, c。至于为什么,这是软件工程的需要。python不具有完整的语法检查。

    python并不为特定目的而产生。虽然它更适用于系统维护。不过它就是一个通用的脚本语言。

    从个人感觉来说,微软件东西,非常好,省心,一流的技术理念,开发工具是全世界最好的(没有之一)。不过,因为它只限于微软的平台,所以范围上大大打了折扣。 世界上最流行的服务器还是unix和linux。而不是windows。桌面操作系统最流行的是windows。不过在所有的平台上都有C语言,大部分平台,甚至手机平台都有python语言和它的执行环境。这是其它的所有语言,包括java几乎都很难做到的。

    python严格说叫CPython,与C/c++有天然的融合性。这也是python强大的原因之一。在windows环境下可以使用ironpython,这个版本与vc可以结合的比较好。其它的平台可以使用eclipse,不过最好还是直接使用普通的文本编辑器。比较推荐的一个编辑器是sublime text2, geany, vi等。

    python图形化编程不难。当然MFC也不难。我不认为MFC有多难。其实学习起来只是略难,但是这不是一个数量级的。MFC可以生产出非常强劲的界面。而python界面多属于简单的。

    虚拟机可以跑linux,配置好就可以。也可以独立安装一个linux。也可以直接在windows下学习python。没有太多区别。建议你买一个200多元的树莓派,很好玩。安装的是linux操作系统。

    IDLE是我初学,甚至几年中用得最多的。后来有了sublime才基本上不用它。idle只有一个缺点,就是有时候程序大了,输入键盘会有感觉延迟。
    ---
    python应用的很多的呀,web的比如豆瓣,还有非常多的网页游戏的后端。我知道的都是作为后台服务,无论开发速度还是调试之类的都很好。前端的应用产品虽然python可以实现,但是在GUI方面的开发效率还是没有VS或者XCode快。
    ----
    如果说c是剑,c++是刀,java是枪的话,python就是飞刀,学精了可以成为李寻欢那样的高手,当作常规武器用,不过绝大多数人只能把飞刀当作暗器,在某些特定场合,出奇制胜
    ----
    做web开发肯定首选php 数据挖掘首选python
    --

    Python的web框架很多,比如Django,webpy等 - webpy
    ---
    http://www.oschina.net/translate/10-myths-of-enterprise-python

    展开全文
  • 主要介绍了Python FtpLib模块应用操作,结合实例形式详细分析了FtpLib模块的功能、配置、应用相关操作技巧使用注意事项,需要的朋友可以参考下
  • 北风网项目实战培训Python金融应用第十四讲案例金融衍生品分析模块开发讲师朱彤北风网版权所有)概述本案例中我们要开发一个较小但是又很强大的用于期权和其他衍生品Monte Carlo模拟定价的应用我们的目标是开发一组...
  • python语言及其应用

    2019-04-09 11:25:30
    比较好的python 基础知识学习,方便查询,文件为pdf 格式,包含书签
  • 给大家带来的一篇关于Python数据相关的电子书资源,介绍了关于Python方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小281 MB,黄红梅 张良均编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:...

    给大家带来的一篇关于Python数据相关的电子书资源,介绍了关于Python方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小281 MB,黄红梅 张良均编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.8。

    内容介绍

    1-1Z91H14342214.jpg

    这书选用了以每日任务为导向性的教学方式,依照处理具体每日任务的工作内容线路,逐渐进行详细介绍有关的基础理论知识结构图,计算转化成行得通的解决方法,* 后贯彻落实在每日任务保持阶段。 本书绝大多数章节目录围绕每日任务要求进行,不沉积知识结构图,侧重于解决困难时构思的启迪与计划方案的执行。根据从每日任务要求到保持这一详细工作内容的感受,协助用户真实了解与消化吸收Python数据统计分析与运用。 书中实例所有来源于公司真正新项目,可执行性强,正确引导用户融汇贯通,并出示源码等有关教学资源,协助用户迅速把握互联网大数据有关专业技能。这书以每日任务为导向性,全方位地详细介绍数据统计分析的步骤和Python数据统计分析库的运用,详尽解读运用Python处理公司具体难题的方式 。本书共9章,* 1章详细介绍了数据统计分析的基本要素等有关专业知识;* 2~6章详细介绍了Python数据统计分析的常见库以及运用,包含NumPy数值计算、Matplotlib大数据可视化、pandas数据分析、应用pandas开展数据预处理、应用scikit-learn搭建实体模型,比较全方位地论述了Python数据分析方法;第7~9章融合以前所教的数据统计分析技术性,开展公司综合性实例数据统计分析。除* 1章外,这书各章都包括了培训与课后练习练习题,根据训练和实际操作实践活动,协助用户推进所教的內容。 这书可做为高等院校云计算技术类技术专业的教材内容,还可以做为云计算技术发烧友的自学用书。

    目录

    第1章 Python数据分析概述 1

    任务1.1 认识数据分析 1

    1.1.1 掌握数据分析的概念 2

    1.1.2 掌握数据分析的流程 2

    1.1.3 了解数据分析应用场景 4

    任务1.2 熟悉Python数据分析的工具 5

    1.2.1 了解数据分析常用工具 6

    1.2.2 了解Python数据分析的优势 7

    1.2.3 了解Python数据分析常用类库 7

    任务1.3 安装Python的Anaconda发行版 9

    1.3.1 了解Python的Anaconda发行版 9

    1.3.2 在Windows系统中安装Anaconda 9

    1.3.3 在Linux系统中安装Anaconda 12

    任务1.4 掌握Jupyter Notebook常用功能 14

    1.4.1 掌握Jupyter Notebook的基本功能 14

    1.4.2 掌握Jupyter Notebook的高 级功能 16

    小结 19

    课后习题 19

    第2章 NumPy数值计算基础 21

    任务2.1 掌握NumPy数组对象ndarray 21

    2.1.1 创建数组对象 21

    2.1.2 生成随机数 27

    2.1.3 通过索引访问数组 29

    2.1.4 变换数组的形态 31

    任务2.2 掌握NumPy矩阵与通用函数 34

    2.2.1 创建NumPy矩阵 34

    2.2.2 掌握ufunc函数 37

    任务2.3 利用NumPy进行统计分析 41

    2.3.1 读/写文件 41

    2.3.2 使用函数进行简单的统计分析 44

    2.3.3 任务实现 48

    小结 50

    实训 50

    实训1 创建数组并进行运算 50

    实训2 创建一个国际象棋的棋盘 50

    课后习题 51

    第3章 Matplotlib数据可视化基础 52

    任务3.1 掌握绘图基础语法与常用参数 52

    3.1.1 掌握pyplot基础语法 53

    3.1.2 设置pyplot的动态rc参数 56

    任务3.2 分析特征间的关系 59

    3.2.1 绘制散点图 59

    3.2.2 绘制折线图 62

    3.2.3 任务实现 65

    任务3.3 分析特征内部数据分布与分散状况 68

    3.3.1 绘制直方图 68

    3.3.2 绘制饼图 70

    3.3.3 绘制箱线图 71

    3.3.4 任务实现 73

    小结 77

    实训 78

    实训1 分析1996~2015年人口数据特征间的关系 78

    实训2 分析1996~2015年人口数据各个特征的分布与分散状况 78

    课后习题 79

    第4章 pandas统计分析基础 80

    任务4.1 读/写不同数据源的数据 80

    4.1.1 读/写数据库数据 80

    4.1.2 读/写文本文件 83

    4.1.3 读/写Excel文件 87

    4.1.4 任务实现 88

    任务4.2 掌握DataFrame的常用操作 89

    4.2.1 查看DataFrame的常用属性 89

    4.2.2 查改增删DataFrame数据 91

    4.2.3 描述分析DataFrame数据 101

    4.2.4 任务实现 104

    任务4.3 转换与处理时间序列数据 107

    4.3.1 转换字符串时间为标准时间 107

    4.3.2 提取时间序列数据信息 109

    4.3.3 加减时间数据 110

    4.3.4 任务实现 111

    任务4.4 使用分组聚合进行组内计算 113

    4.4.1 使用groupby方法拆分数据 114

    4.4.2 使用agg方法聚合数据 116

    4.4.3 使用apply方法聚合数据 119

    4.4.4 使用transform方法聚合数据 121

    4.4.5 任务实现 121

    任务4.5 创建透视表与交叉表 123

    4.5.1 使用pivot_table函数创建透视表 123

    4.5.2 使用crosstab函数创建交叉表 127

    4.5.3 任务实现 128

    小结 130

    实训 130

    实训1 读取并查看P2P网络贷款数据主表的基本信息 130

    实训2 提取用户信息更新表和登录信息表的时间信息 130

    实训3 使用分组聚合方法进一步分析用户信息更新表和登录信息表 131

    实训4 对用户信息更新表和登录信息表进行长宽表转换 131

    课后习题 131

    第5章 使用pandas进行数据预处理 133

    任务5.1 合并数据 133

    5.1.1 堆叠合并数据 133

    5.1.2 主键合并数据 136

    5.1.3 重叠合并数据 139

    5.1.4 任务实现 140

    任务5.2 清洗数据 141

    5.2.1 检测与处理重复值 141

    5.2.2 检测与处理缺失值 146

    5.2.3 检测与处理异常值 149

    5.2.4 任务实现 152

    任务5.3 标准化数据 154

    5.3.1 离差标准化数据 154

    5.3.2 标准差标准化数据 155

    5.3.3 小数定标标准化数据 156

    5.3.4 任务实现 157

    任务5.4 转换数据 158

    5.4.1 哑变量处理类别型数据 158

    5.4.2 离散化连续型数据 160

    5.4.3 任务实现 162

    小结 163

    实训 164

    实训1 插补用户用电量数据缺失值 164

    实训2 合并线损、用电量趋势与线路告警数据 164

    实训3 标准化建模专家样本数据 164

    课后习题 165

    第6章 使用scikit-learn构建模型 167

    任务6.1 使用sklearn转换器处理数据 167

    6.1.1 加载datasets模块中的数据集 167

    6.1.2 将数据集划分为训练集和测试集 170

    6.1.3 使用sklearn转换器进行数据预处理与降维 172

    6.1.4 任务实现 174

    任务6.2 构建并评价聚类模型 176

    6.2.1 使用sklearn估计器构建聚类模型 176

    6.2.2 评价聚类模型 179

    6.2.3 任务实现 182

    任务6.3 构建并评价分类模型 183

    6.3.1 使用sklearn估计器构建分类模型 183

    6.3.2 评价分类模型 186

    6.3.3 任务实现 188

    任务6.4 构建并评价回归模型 190

    6.4.1 使用sklearn估计器构建线性回归模型 190

    6.4.2 评价回归模型 193

    6.4.3 任务实现 194

    小结 196

    实训 196

    实训1 使用sklearn处理wine和wine_quality数据集 196

    实训2 构建基于wine数据集的K-Means聚类模型 196

    实训3 构建基于wine数据集的SVM分类模型 197

    实训4 构建基于wine_quality数据集的回归模型 197

    课后习题 198

    第7章 航空公司客户价值分析 199

    任务7.1 了解航空公司现状与客户价值分析 199

    7.1.1 了解航空公司现状 200

    7.1.2 认识客户价值分析 201

    7.1.3 熟悉航空客户价值分析的步骤与流程 201

    任务7.2 预处理航空客户数据 202

    7.2.1 处理数据缺失值与异常值 202

    7.2.2 构建航空客户价值分析关键特征 202

    7.2.3 标准化LRFMC模型的5个特征 206

    7.2.4 任务实现 207

    任务7.3 使用K-Means算法进行客户分群 209

    7.3.1 了解K-Means聚类算法 209

    7.3.2 分析聚类结果 210

    7.3.3 模型应用 213

    7.3.4 任务实现 214

    小结 215

    实训 215

    实训1 处理信用卡数据异常值 215

    实训2 构造信用卡客户风险评价关键特征 217

    实训3 构建K-Means聚类模型 218

    课后习题 218

    第8章 财政收入预测分析 220

    任务8.1 了解财政收入预测的背景与方法 220

    8.1.1 分析财政收入预测背景 220

    8.1.2 了解财政收入预测的方法 222

    8.1.3 熟悉财政收入预测的步骤与流程 223

    任务8.2 分析财政收入数据特征的相关性 223

    8.2.1 了解相关性分析 223

    8.2.2 分析计算结果 224

    8.2.3 任务实现 225

    任务8.3 使用Lasso回归选取财政收入预测的关键特征 225

    8.3.1 了解Lasso回归方法 226

    8.3.2 分析Lasso回归结果 227

    8.3.3 任务实现 227

    任务8.4 使用灰色预测和SVR构建财政收入预测模型 228

    8.4.1 了解灰色预测算法 228

    8.4.2 了解SVR算法 229

    8.4.3 分析预测结果 232

    8.4.4 任务实现 234

    小结 236

    实训 236

    实训1 求取企业所得税各特征间的相关系数 236

    实训2 选取企业所得税预测关键特征 237

    实训3 构建企业所得税预测模型 237

    课后习题 237

    第9章 家用热水器用户行为分析与事件识别 239

    任务9.1 了解家用热水器用户行为分析的背景与步骤 239

    9.1.1 分析家用热水器行业现状 240

    9.1.2 了解热水器采集数据基本情况 240

    9.1.3 熟悉家用热水器用户行为分析的步骤与流程 241

    任务9.2 预处理热水器用户用水数据 242

    9.2.1 删除冗余特征 242

    9.2.2 划分用水事件 243

    9.2.3 确定单次用水事件时长阈值 244

    9.2.4 任务实现 246

    任务9.3 构建用水行为特征并筛选用水事件 247

    9.3.1 构建用水时长与频率特征 248

    9.3.2 构建用水量与波动特征 249

    9.3.3 筛选候选洗浴事件 250

    9.3.4 任务实现 251

    任务9.4 构建行为事件分析的BP神经网络模型 255

    9.4.1 了解BP神经网络算法原理 255

    9.4.2 构建模型 259

    9.4.3 评估模型 260

    9.4.4 任务实现 260

    小结 263

    实训 263

    实训1 清洗运营商客户数据 263

    实训2 筛选客户运营商数据 264

    实训3 构建神经网络预测模型 265

    课后习题 265

    附录A 267

    附录B 270

    参考文献 295

    学习笔记

    python数据分析用什么编译器

    Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。 定义 (推荐学习:Python视频教程) 用户可以通过电子邮件,Dropbox,GitHub 和 Jupyter Notebook Viewer,将 Jupyter Notebook 分享给其他人。 在Jupyter Notebook 中,代码可以实时的生成图像,视频,LaTeX和JavaScript。 使用 数据挖掘领域中最热门的比赛 Kaggle 里的资料都是Jupyter 格式 。 架构 Jupyter组件 Jupyter包含以下组件: Jupyter Notebook 和 ……

    Python实现的微信好友数据分析功能示例

    本文实例讲述了Python实现的微信好友数据分析功能。分享给大家供大家参考,具体如下: 这里主要利用python对个人微信好友进行分析并把结果输出到一个html文档当中,主要用到的python包为 itchat , pandas , pyecharts 等 1、安装itchat 微信的python sdk,用来获取个人好友关系。获取的代码 如下: import itchatimport pandas as pdfrom pyecharts import Geo, Baritchat.login()friends = itchat.get_friends(update=True)[0:]def User2dict(User): User_dict = {} User_dict["NickName"] = User["NickName"] if User["NickName"] else "NaN" User_dict["City"] = User["City"] if User["City"] else "NaN" User_dict["Sex"] = User["Sex"] if User["Sex"] else 0 User_dict["Signature"] = User["Signature"] if User["Signature"] else "NaN" ……

    python微信好友数据分析详解

    基于微信开放的个人号接口python库itchat,实现对微信好友的获取,并对省份、性别、微信签名做数据分析。 效果: 直接上代码,建三个空文本文件stopwords.txt,newdit.txt、unionWords.txt,下载字体simhei.ttf或删除字体要求的代码,就可以直接运行。 #wxfriends.py 2018-07-09import itchatimport sysimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#绘图时可以显示中文plt.rcParams['axes.unicode_minus']=False#绘图时可以显示中文import jiebaimport jieba.posseg as psegfrom scipy.misc import imreadfrom wordcloud import WordCloudfrom os import path#解决编码问题non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd) #获取好友信息def getFriends():……

    Python数据分析之双色球基于线性回归算法预测下期中奖结果示例

    本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下: 前面讲述了关于双色球的各种算法,这里将进行下期双色球号码的预测,想想有些小激动啊。 代码中使用了线性回归算法,这个场景使用这个算法,预测效果一般,各位可以考虑使用其他算法尝试结果。 发现之前有很多代码都是重复的工作,为了让代码看的更优雅,定义了函数,去调用,顿时高大上了 #!/usr/bin/python# -*- coding:UTF-8 -*-#导入需要的包import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport operatorfrom sklearn import datasets,linear_modelfrom sklearn.linear_model import LogisticRegression#读取文件d……

    以上就是本次介绍的Python数据电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

    展开 +

    收起 -

    展开全文
  • Python语言的应用领域

    千次阅读 2019-08-30 10:03:49
    Python语言的应用领域Python简介Python特点取消了复杂数据类型面向对象思想通过缩进划分代码片段较少的保留字可推导的强类型语言Python功能范围系统编程:图形处理:数学处理:文本处理:数据库编程:网络编程:...

    Python简介

    Python是一种面向对象的解释型计算机程序设计语言,由荷兰人GuidovanRossum于1989年发明,第一个公开发行版发行于1991年。
      Python是纯粹的自由软件,源代码和解释器CPython遵循GPL(GNUGeneralPublicLicense)协议。Python语法简洁清晰,特色之一是强制用空白符(whitespace)作为语句缩进。
    Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。常见的一种应用情形是,使用Python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,性能要求特别高,就可以用C/C++重写,而后封装为Python可以调用的扩展类库。需要注意的是在您使用扩展类库时可能需要考虑平台问题,某些可能不提供跨平台的实现。

    Python特点

    取消了复杂数据类型

    Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。

    面向对象思想

    Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象的元素。

    通过缩进划分代码片段

    Python代码块使用空格或制表符缩进的方式分隔代码。

    较少的保留字

    Python仅有31个保留字,而且没有分号、begin、end等标记。

    可推导的强类型语言

    Python是强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换。

    Python的功能范围

    系统编程:

    提供API(ApplicationProgrammingInterface应用程序编程接口),能方便进行系统维护和管理,Linux下标志性语言之一,是很多系统管理员理想的编程工具。

    图形处理:

    有PIL、Tkinter等图形库支持,能方便进行图形处理。

    数学处理:

    NumPy扩展提供大量与许多标准数学库的接口。

    文本处理:

    python提供的re模块能支持正则表达式,还提供SGML,XML分析模块,许多程序员利用python进行XML程序的开发。

    数据库编程:

    程序员可通过遵循PythonDB-API(数据库应用程序编程接口)规范的模块与MicrosoftSQLServer,Oracle,Sybase,DB2,MySQL、SQLite等数据库通信。python自带有一个Gadfly模块,提供了一个完整的SQL环境。

    网络编程:

    提供丰富的模块支持sockets编程,能方便快速地开发分布式应用程序。很多大规模软件开发计划例如Zope,Mnet及BitTorrent.Google都在广泛地使用它。

    Web编程:

    应用的开发语言,支持最新的XML技术。

    多媒体应用:

    Python的PyOpenGL模块封装了“OpenGL应用程序编程接口”,能进行二维和三维图像处理。PyGame模块可用于编写游戏软件。

    pymo引擎:

    PYMO全称为pythonmemoriesoff,是一款运行于SymbianS60V3,Symbian3,S60V5,Symbian3,Android系统上的AVG游戏引擎。因其基于python2.0平台开发,并且适用于创建秋之回忆(memoriesoff)风格的AVG游戏,故命名为PYMO。

    黑客编程:

    python有一个hack的库,内置了你熟悉的或不熟悉的函数,但是缺少成就感。

    用Python写简单爬虫

    Python的应用领域

    常规软件开发

    Python支持函数式编程和OOP面向对象编程,能够承担任何种类软件的开发工作,因此常规的软件开发、脚本编写、网络编程等都属于标配能力。

    科学计算

    随着NumPy,SciPy,Matplotlib,Enthoughtlibrarys等众多程序库的开发,Python越来越适合于做科学计算、绘制高质量的2D和3D图像。和科学计算领域最流行的商业软件Matlab相比,Python是一门通用的程序设计语言,比Matlab所采用的脚本语言的应用范围更广泛,有更多的程序库的支持。虽然Matlab中的许多高级功能和toolbox目前还是无法替代的,不过在日常的科研开发之中仍然有很多的工作是可以用Python代劳的。

    自动化运维

    这几乎是Python应用的自留地,作为运维工程师首选的编程语言,Python在自动化运维方面已经深入人心,比如Saltstack和Ansible都是大名鼎鼎的自动化平台。

    云计算

    开源云计算解决方案OpenStack就是基于Python开发的,搞云计算的同学都懂的。

    WEB开发

    基于Python的Web开发框架不要太多,比如耳熟能详的Django,还有Tornado,Flask。其中的Python+Django架构,应用范围非常广,开发速度非常快,学习门槛也很低,能够帮助你快速的搭建起可用的WEB服务。

    网络爬虫

    也称网络蜘蛛,是大数据行业获取数据的核心工具。没有网络爬虫自动地、不分昼夜地、高智能地在互联网上爬取免费的数据,那些大数据相关的公司恐怕要少四分之三。能够编写网络爬虫的编程语言有不少,但Python绝对是其中的主流之一,其Scripy爬虫框架应用非常广泛。

    数据分析

    在大量数据的基础上,结合科学计算、机器学习等技术,对数据进行清洗、去重、规格化和针对性的分析是大数据行业的基石。Python是数据分析的主流语言之一。

    人工智能

    Python在人工智能大范畴领域内的机器学习、神经网络、深度学习等方面都是主流的编程语言,得到广泛的支持和应用。

    展开全文
  • 主要介绍了Python queue队列原理与应用,结合具体案例形式分析了Python queue队列的原理、功能、实现方法使用技巧,需要的朋友可以参考下
  • Python作为一种功能强大的脚本...Python正则表达式基本应用方式解读Python压缩文件基本应用代码示例解读Python os模块常用部分功能总结Python查找重复文件相关操作方式分享四种Python文件主要功能介绍Python已经有10...
  • 如何在Python中调用系统应用程序。
  • Python应用领域

    万次阅读 2017-10-16 14:14:20
    Python应用领域 本节内容如下: Python在系统编程中的应用 Python在网络爬虫方面的应用 Python在人工智能、科学计算中的应用 Python在WEB开发中的应用 Python在系统运维中的应用 Python在大数据、...
  • python八大应用领域

    千次阅读 2020-09-17 02:20:15
    相比Lua or C++,Python 比 Lua 有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑, Lua 相比,Python 更适合作为一种 Host 语言,即程序的入口点是在 Python 那一端会比较好,然后用 C/C++ 在非常必要的时候...
  • 一个Python框架,可使用最新的平台功能快速构建Slack应用。 阅读并查看我们的以了解如何使用Bolt构建应用。 建立 # Python 3.6+ required python -m venv .venv source .venv/bin/activate pip install -U pip pip ...
  • Python应用方向

    千次阅读 2018-07-25 18:58:29
    Python应用领域 ...Python定义了WSGI标准应用接口来协调Http服务器基于Python的Web程序之间的通信。一些Web框架,如Django,TurboGears,web2py,Zope等,可以让程序员轻松地开发和管理复杂的Web程序。...
  • 可编辑文档 PAGE 页码页码/NUMPAGES 总页数总页数 Python入门教程之Python应用领域 ... 云计算 云计算最火的语言 典型应用OpenStack WEB开发 python相比php\ruby的模块化设计非常便于功能扩展多年来形成了大量优秀的
  • AliOS Things 3.3.0新版本中,其中非常中的一个特点,就是支持Python应用,也就是可以直接使用Python代码来写物联网程序,并且控制软件设备。 那本文讲介绍如何给Python应用添加新的组件,比如之前Python应用中...
  • Python 应用领域

    千次阅读 2013-08-27 11:04:39
    Python 不仅仅是一个设计优秀的程序语言,它能够完成现实中的各种任务,包括开发者们日复一日所做的事情。作为编制其他组件、实现独立程序的工具,它通常应用于...实际上,作为一种通用语言,Python 的应用角色几乎
  • Mac 基于Python搭建Django应用框架

    千次阅读 2017-12-29 17:40:18
    我用python》,等以后你们跟着代码君学会了Python,你们就会理解我这句话啦~,言归正传,下面进入今天的重点戏DjangoDjango简介Django是一个开放源代码的Web应用框架,由Python写成。采用了MTV的框架模式,
  • Flask Web开发:基于Python的Web应用开发实战作者拥有25年软件开发经验,而《Flask Web开发:基于Python的Web应用开发实战》则采用讲解实例相结合的方式,不仅介绍了Flask安装、使用等基础知识,而且还带领读者...
  • PyQt4 Python GUI窗体应用程序

    千次阅读 2016-02-23 16:27:07
    目录目录 前言 软件环境 PyQT简介 ...这次来玩Python的GUI编程,做一个用于监控警报、简化SOP的窗体应用程序。首先当然是部署开发环境了,这次用PyCharm5+Python3.4+PyQt4(QT Designer)软件环境 系统 Win
  • prettyTable 是一款很简洁但是功能强大的第三方模块,主要是将输入的数据转化为格式化的形式来输出,这篇文章主要介绍了python PrettyTable模块的安装简单应用,感兴趣的小伙伴们可以参考一下
  • 主要介绍了Python匿名函数及应用,结合实例形式分析了Python匿名函数的功能、定义及函数作为参数传递的相关应用操作技巧,需要的朋友可以参考下
  • GQK少儿编程网-Scratch_Python_教程_免费儿童编程学习平台YouTube:视频分享网站,在某些功能上使用到python;GQK少儿编程网-Scratch_Python_教程_免费儿童编程学习平台Google:谷歌在很多项目中用python作为网络...
  • Flask Web开发:基于Python的Web应用开发实战作者拥有25年软件开发经验,而《Flask Web开发:基于Python的Web应用开发实战》则采用讲解实例相结合的方式,不仅介绍了Flask安装、使用等基础知识,而且还带领读者...
  • 主要介绍了Python Tkinter模块实现时钟功能,结合实例形式分析了Tkinter模块结合time模块实现的时钟图形绘制计时功能相关操作技巧,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 437,602
精华内容 175,040
关键字:

python的功能与应用

python 订阅