二、Python 只适合测试?

关于Python是一种什么样的语言,这里不打算说对象、类之类的术语。我们可以先来看一看,时至今日 Python 都在哪些领域里得以应用:

  • 电信基础设施 (Twilio)
  • 支付系统 (PayPal, Balanced Payments)
  • 神经科学和心理学
  • 数值分析和工程 (numpy, numba)
  • 动画(LucasArts, Disney, Dreamworks)
  • 游戏后台 (Eve Online, Second Life…)
  • Email 基础设施 (Mailman, Mailgun)
  • 媒体存储和处理 (YouTube, Dropbox)
  • 操作和系统管理 (Rackspace, OpenStack)
  • 自然语言处理(NLTK)
  • 机器学习和计算机版本 (scikit-learn, Orange)
  • 安全性和渗透性测试 ( eBay/PayPal )
  • 大数据 (Disco, Hadoop support)
  • 搜索系统 (ITA, Ultraseek, 还有 Google)
  • Internet 基础设施 (DNS) (BIND 10)

在如此之多领域的公司里得到广泛使用的Python,难道只是用在它们的测试部门?至少根据网络上的谣言,豆瓣、Youbute、和 Dropbox 都是以 Python 为主体语言搭建起来的网站。Python 强大的能力(例如:网络处理能力,还有各种扩展包),可以使得程序员们把注意力投放在实现业务上,而不是内存管理,接口设计之类的细节上。

事实上,Python 最常见的应用情形是:

1.使用 Python 快速生成程序的原型(有时甚至是程序的最终界面,你会喜欢 wxPython 的), 
2.对其中有特别要求的部分,使用更合适的语言(尤其是 C/C++)改写。

由于 Python 与 C 的天然联系,它们之间的相互调用从来都不是问题。特别是 Python 如何调用 C 在《 Programming Python》的 Chapter 22. Extending Python 部分有介绍。Python 调用 C 的动态/静态库并不是一件复杂的事情。实际上, Python 原生的正则表达式库就是用 C 语言实现的。


三、Python 只是脚本语言?

Python 确实的可以完成脚本语言的功能(使用更简洁的方式)。Shell 工具往往从命令行运行,实现诸如文本文件的处理以及调用其他程序等任务。Python 能做的更多。

有专家称 Python 是大数据全栈式开发语言,在“云基础设施”、“DevOps”、”网络爬虫” 和 “数据处理”领域,Python 都是最流行的语言。

对于开源软件向来迟钝的微软参加2015年 PyCon 时高调宣布提高 Python 在 Windows 上的编程体验,包括 Visual Studio 支持 Python,优化 Python 的 C 扩展在 Windows 上的编译等等。脑补下未来 Python 作为 Windows 默认组件的场景。


四、Python 之NB

和 Python 之禅(注1)里表述的一样,简单优雅已经深入Python骨髓。正是这个原因,Python 才被认为上手简单,开发快速,程序可读性超强;也正是这些特点,互联网公司更有意愿使用它,因为快速发布是它们的生存之根本。在实践中,程序员可以很直观地发现,用 Python 写的代码通常要比同样的 C/C++ 或 JAVA 程序要短得多。


Python

#!/usr/bin/python

a = 0
while(a <= 10):
a = a + 1
print 'The number is '+a
print 'while is end'

C++

#include <iostream>

int main()
{
int a = 0;
while( a <= 10)
{
a = a + 1;
cout<<"The number is "<<a<<endl;
}
cout<<"while is end"<<endl;
}

能做到这些,是因为Python

4.1 变量不需要声明

这个真的很方便。变量的声明和定义一定会严重打断对代码逻辑的思考,还有对齐的麻烦。内存的管理,这简直都就是 C/C++ 编程中最常见的雷区,由于省略了声明,这也不再是问题了。

4.2 缩进而不是 { }

Python 是以缩进来管理代码结构的。这样做有他的优越性:程序员们一定有过漏写 ‘{’ 或者 ‘}’ 的经历。如果使用的编译器或者解释器优秀的话,漏去的’{’ ‘}’的确可以非常容易的加上。但如果不是这样,请在复杂的代码中漫游一会吧。因为可能编译器会通知一个 ‘错误’ 的错误信息,这个错误的位置可能会离你真正错误的地方很远(十万八千里?!)。相对于此,以缩进管理方式的 Python 来说,程序员几乎不用考虑这种问题。其次以缩进方式区分块的Python在进行复杂的嵌套中,Python代码就显得明了许多了。


Python

class python:
def Hello(self):
print 'Hello'
def count(self, n):
in = 0
while( in <= n):
in = in + 1
print in

C++

class python
{
public:
void Hello(void)
{
cout<<"Hello"<<endl;
}
void count(int n)
{
int in = 0;
while(in <= n)
cout<<in<<endl;
}
};

相比较来看,Python的代码更能分清其层次,而对于C++这样的代码虽然能够编译成功。但是,对于其日后的维护,会造成无尽的痛苦。由此,可以看出 Python的语法简洁。同时,Python 的查错能力也非常强。在一般情况下,Python的解释器能够准确指出错误的位置和原因。

Python 的缩颈唯一没有做好的就是没有指定一定要缩进4个空格。

Python 能干什么的更多相关文章

  1. python能干什么?

    python能干什么? 网络爬虫 爬虫,指的是从互联网采集数据的程序脚本 . 爬天爬地爬空气 ,无聊的时候爬一爬吃鸡数据.b站评论,能得出很多有意思的结论.知乎有个很有意思的问题——"利用爬 ...

  2. Python能干啥?

    Python之py9 Python之py9-录音自动下载 Python之py9-py9作业检查 Python之py9-py9博客情况获取 Python之py9-微信监控获取mp3_url Python ...

  3. 学了python能干什么

    学了python能做些什么 1.WEB开发 Python拥有很多免费数据函数库.免费web网页模板系统.以及与web服务器进行交互的库,可以实现web开发,搭建web框架,目前比较有名气的Python ...

  4. 一行python能干什么?

    我们都知道,python作为一个编程语言,它有一个最大的优势就是代码简短,那么一行python代码能实现哪些操作呢?一起来看看吧! 1.打印Hello World! 这是最基础的,相信不管学习哪一门语 ...

  5. python学习笔记(一)

    • Python能干嘛?[1]科学计算[2]图形化开发[3]系统脚本[4]Web服务器[5]网络爬虫[6]服务器集群自动化运维 • 常用工具:easy_install.pip.ipython.Subl ...

  6. python运维开发坎坷之路-01

    前言 2014年9月,新疆乌鲁木齐,在51CTO学院看着alex老师的python教学视频,不得不说这是我第一次接触python这门高级语言,从最开始的一无所知到现在能够用python写脚本,再到未来 ...

  7. Python入门1

    简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承.Python ...

  8. 循序渐进Python3(一)-- 初识Python

    一.Python起源                

  9. python 入门教程

    转载自:http://www.crifan.com/files/doc/docbook/python_beginner_tutorial/release/html/python_beginner_tu ...

随机推荐

  1. Thinkphp3.2 PHPMailer 发送 QQ邮箱 163邮箱

    在进入正题这前先看下网易(163)邮箱的服务器地址和端口号 类型 服务器名称 服务器地址 SSL协议端口号 非SSL协议端口号 收件服务器 POP pop.163.com 995 110 收件服务器 ...

  2. [HTML5] 手机摇一摇实现

    目录结构 引入jQuery:jquery-1.11.1.min.js html代码 <!DOCTYPE html> <html lang="en"> < ...

  3. [JS] 页面回车键提交表单-常用于登录页面

    //判断是否按下了回车键 var EnterSubmit = function(evt){ evt= window.event || evt; if (evt.keyCode == 13){ //若按 ...

  4. [转]Linux动态库的种种要点

    linux下使用动态库,基本用起来还是很容易.但如果我们的程序中大量使用动态库来实现各种框架/插件,那么就会遇到一些坑,掌握这些坑才有利于程序更稳健地运行. 本篇先谈谈动态库符号方面的问题. 测试代码 ...

  5. 对Python线程池

    本文对Python线程池进行详细说明介绍,IDE选择及编码的解决方案进行了一番详细的描述,实为Python初学者必读的Python学习经验心得. AD: 干货来了,不要等!WOT2015 北京站演讲P ...

  6. vue2.0中,由于页面完成之后dom还未加载完成如何进行操作

    再vue中,当页面加载完成以后,dom还没有加载,是无法获取进行操作的,但是在vue2.0中提供了一个方法:this.$nextTick,在这个回调函数里面写dom操作即可: 如下代码: create ...

  7. poj_2823 单调队列

    题目大意 给定一行数,共N个.有一个长度为K的窗口从左向右滑动,窗口中始终有K个数字,窗口每次滑动一个数字.求各个时刻窗口中的最大值和最小值. 题目分析 直接搜索,复杂度为O(n^2).考虑使用单调队 ...

  8. 1853: [Scoi2010]幸运数字[容斥原理]

    1853: [Scoi2010]幸运数字 Time Limit: 2 Sec  Memory Limit: 64 MBSubmit: 2405  Solved: 887[Submit][Status] ...

  9. XStream别名;元素转属性;去除集合属性(剥皮);忽略不需要元素

    city package xstream; public class City { private String name; private String description; public St ...

  10. 一些VS2013的使用技巧(转载)

    1. Peek View 可以在不新建TAB的情况下快速查看.编辑一个函数的代码. 用法:在光标移至某个函数下,按下alt+F12. 然后在Peek窗口里可以继续按alt+F12.然后按ctrl+al ...