Python之父Guido在最近一次采访的最后说了啥?

在前些天的一次采访中,被问到Python未来发展方向的时候原文在infoworld,咱们可爱的python老爹Guido是这样说的:

One thing I want to point out are the SciPy and NumPy movements. Those people are introducing Python as a replacement for MatLab. It's open source, it's better, they can change it. They are taking it to places where I had never expected Python would travel. They have things like the Jupyter Notebooks that show interactive Python in the browser. There is a lot of incredibly cool work that is happening in that area.

简单翻译成中文就是说:在这里我要重点提一下SciPy 和 NumPy,做这些库的朋友们正在用Python替换MatLab,把Python带向了一个我从未想过的领域。他们发明了Jupyter Notebooks 可以在浏览器上进行Python的交互式编程。

注意到没? Jupyter Notebooks !

jupyter简介

jupyter是啥啊?

这个要从ipython说起,ipython是个交互式的python的解释器,自带颜色,补全还有行号,科学界的很多大牛都用来进行数据分析和图形显示。

ipython还可以运行在浏览器上,就是下面这个样子:

名字也就高大上一点,叫ipythoon notebook,那个jupyter图标一开始就有的,现在升级改造了,不止于运行python,还有R,spark之类的高大上玩意儿。所以就直接用 jupyter来指代这一堆产品了。

官方有个try页面,可以玩一玩。

https://try.jupyter.org/

jupyter安装

官方推荐的安装是这个:

Download Anaconda. We recommend downloading Anaconda’s latest Python 3 version (currently Python 3.5).

咱们民间可以直接安装

1.如果已经有python环境:

直接pip install jupyter

2.如果没有:

就先安装个python环境,然后再装

运行

jupyter notebook

然后就自动打开浏览器中localhost的8888端口,就可以在线写代码啦!不止于python,还有R等...

用户界面和主要功能

  • 写代码
  • 写文档(cell类型就分成markdown和code,随便改,另存为md格式就是文档了)
  • 科学运算和画图(numpy, scipy,pandas之类的以前都需要一个个安装啊,现在全齐了)

示例代码

简单计算器

4+6
10

写个字典

a = {'a':'alex', 'b':'sublime', 5:9999, 6:6666}
for k, v in a.items(): # items()是dict的方法,可以通过help(dict.items)查看
print k,v
a alex
b sublime
5 9999
6 6666

这货是个装饰器

def show_output(func):
def wrapped(*args, **kwargs):
output = func(*args, **kwargs)
print("the result is : ", output)
return wrapped
def is_even(num):
return num % 2 ==0

使用装饰器运行函数,并输出结果

f = show_output(is_even)
f(3)
the result is :  False

Jupyter对Python初学者的作用

对于初学者,难免编程过程中会出现各种错误,jupyter就是个代码摄像机,写代码时候出错了,看到一堆错误提示,没关系,从新插入一个cell,再次写起来!直到正确为止!

下面举个例子!

第一个错误

# 假装我不会写helloworld
print hello world
  File "<ipython-input-1-e9edef3fb57e>", line 2
print hello world
^
SyntaxError: invalid syntax

第二个错误

# 难道加个引号?
print 'hello world"
  File "<ipython-input-2-efbc3c88a80d>", line 2
print 'hello world"
^
SyntaxError: EOL while scanning string literal

啥情况?引号也不行?!

好吧,原来要写一对啊!

终于

# 这次对了吧?你好!世界!
print 'hello world'
hello world

ok,写到这里,错误代码有了,错误信息有了,最终也有了正确代码,再次回顾缩写代码的时候,可以清晰的看到自己犯过的错误,加深印象,有利于更快的掌握Python的语法和常见库函数的作用。

当然,在学会了Python基础之后,你可以选择继续用Jupyter中的各种数学库继续深造,使用numpy, scipy等进行数据分析与可视化。这方面已经有很多参考可以学习。

如果想做自动化开发和web开发,那么推荐你用另一个神器:pycharm,这里就不过多介绍了。

人身苦短,我用Python,学习Python的路上,你并不孤独!

完事开头难,学习Python最重要的是:实践,实线,再实践!如果你已经打开你的Jupyter notebook开始练习了,恭喜你!坚持下去,大法可成!

参考资源

Python之父Guido在最近一次采访的最后说了啥的更多相关文章

  1. Python之父重回决策层

    在Guido van Rossum(吉多·范罗苏姆)卸任BDFL(“终身仁慈独裁者”)一职半年多之后,Python社区迎来了新的治理新方案:指导委员会模式,而经过投票Guido van Rossum也 ...

  2. Python之父重回决策层,社区未来如何发展?

    春节假期结束了,大家陆续地重回到原来的生活轨道上.假期是一个很好的休息与调节的机会,同时,春节还有辞旧迎新的本意,它是新的轮回的开端. 在 Python 社区里,刚发生了一件大事,同样有开启新纪元的意 ...

  3. 自动编写Python程序的神器,Python 之父都发声力挺!

    ​ 就在不久前,kite——那个能够自己编写python代码的AI,Python 之父 Guido van Rossum 使用之后,也发出了「really love」感叹,向大家墙裂推荐了这一高效工具 ...

  4. Python 之父 63 岁才退休,我 23 就中年危机。。

    Java技术栈 www.javastack.cn 优秀的Java技术公众号 Python 之父 Guido van Rossum 在推特公布了自己从 Dropbox 公司离职的消息,并表示已经退休. ...

  5. Python 之父为什么嫌弃 lambda 匿名函数?

    Python 支持 lambda 匿名函数,其扩展的 BNF 表示法是lambda_expr ::= "lambda" [parameter_list] ":" ...

  6. Python 之父爆料:明年至少令 Python 提速 1 倍!

    大概在半年前,我偶然看到一篇文章,有人提出了给 Python 提速 5 倍的计划,并在寻找经费赞助.当时并没有在意,此后也没有看到这方面的消息. 但是,就在 5 月 13 日"2021 年 ...

  7. Python 之父谈放弃 Python:我对核心成员们失望至极!

    Python 之父讲述退位原因,以及 Python 的未来将何去何从. ​ 在 Python 社区,Python 的发明者 Guido Van Rossum 被称为 “仁慈的终生独裁者”(BDFL,B ...

  8. Python之父新发文,将替换现有解析器

    花下猫语: Guido van Rossum 是 Python 的创造者,虽然他现在放弃了"终身仁慈独裁者"的职位,但却成为了指导委员会的五位成员之一,其一举一动依然备受瞩目.近日 ...

  9. Python 之父撰文回忆:为什么要创造 pgen 解析器?

    花下猫语: 近日,Python 之父在 Medium 上开通了博客,并发布了一篇关于 PEG 解析器的文章(参见我翻的 全文译文).据我所知,他有自己的博客,为什么还会跑去 Medium 上写文呢?好 ...

随机推荐

  1. PHP基础之 define() 函数

    定义和用法 define() 函数定义一个常量. 常量类似变量,不同之处在于: 在设定以后,常量的值无法更改 常量名不需要开头的美元符号 ($) 作用域不影响对常量的访问 常量值只能是字符串或数字 语 ...

  2. Ubuntu安装tftp服务器

    一.安装如下软件包: sudo apt-get install xinetd tftpd tftp 二.在/etc/xinetd.d/目录下创建tftp文件,并输入如下内容. 执行命令:sudo vi ...

  3. Linux程序设计 读笔3 文件操作

    一 linux文件结构 二 系统调用和设备驱动程序 三 库函数 四 底层文件访问 五 标准IO库 六 格式化输入输出 七 文件和目录的维护 八 扫描目录 九 错误处理 十

  4. mysql插入返回当前生成的主键

     1:sql中需要添加属性 keyColumn="base_price_id" keyProperty="basePriceId" useGeneratedKe ...

  5. MySql优化方案

    mysql优化方案总结 u       Mysql数据库的优化技术 对mysql优化时一个综合性的技术,主要包括 a: 表的设计合理化(符合3NF) b: 添加适当索引(index) [四种: 普通索 ...

  6. 关于cookie的使用

    cookie的属性 domain:域名,即cookie所能使用的范围,当然当前域下可以在当前域下cookie,还有一个就是该域名的父级域名(子级的域名下是可以访问父级域名下的cookie,父级域名是不 ...

  7. 学习《Javascript权威指南》的第二章笔记

    1.Javascript区分大小写,但是HTML不区分大小写 2.JS会忽略标识之间的空格,多数情况下也会忽视换行符,所以要采用 整齐.一致的编码风格 3.//用作结尾的注释,/* 和 */可以当跨行 ...

  8. PHP header() http各种状态码大全查询

    PHP header()the function declaration: void header ( string string [, bool replace [, int http_respon ...

  9. knockout简单实用教程2

    在上一篇文章中简单了介绍了下什么ko(后文中都已ko来代替knockout.js)和一些简单的ko的使用方法下面我将介绍在实际的项目中常用到的几种绑定方式和方法. 在开始之前先拿一个dome来回顾下k ...

  10. Centos7网络配置+图形界面设置

    一. 查看网络地址: centos7取消了ifconfig命令,使用ip addr命令查看IP地址 二.配置网络 用VirtualBox安装的CentOS7,安装完成后,发现无法上网,于是到网上查了一 ...