首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一条“蟒蛇”的故事

哈哈

第一个故事

What is Python?

1

What?

今天给大家介绍的是一只快速灵活的大蟒蛇一种编程语言Python。

引用官方的说法,Python(意为“蟒蛇”)是一种“解释型的、面向对象的、带有动态语义的高级程序设计语言”。

正如我们熟悉的C、C++或是Java一样,这也是一门编程语言。我们知道世界上还有很多编程语言,例如正常的语言C#、Ruby、PHP,也有神奇的中文编程语言如易语言、中蟒(中文Python的意思)。

程序猿的创造力是无穷的,如果熟悉了编译原理,就可以自己创造属于自己的语言。正如Guido挚爱的电视剧是Monty Python’s Flying Circus,他给自己的语言命名为Python。

从Python出现到今天,它的框架已经确立。Python语言以对象为核心组织代码,支持多种编程范式,采用动态类型,自动进行内存回收。Python的生态系统开始拓展到第三方包。这些包,如Django、web.py、wxpython、numpy、matplotlib、PIL,将Python升级成了物种丰富的热带雨林。

Python有哪些用途呢?

①Web开发(如Django、YouTube……)

②视频游戏开发(如EVE)

③桌面GUI

④软件开发(如Blender)

⑤人工智能和深度学习(如TensorFlow、Caffe等架构。

Python如今竟大行其道?

2017年7月20日,IEEE Spectrum 发布了第四届顶级编程语言交互排行榜。Python 的排名从去年开始就借助人工智能持续上升,现在它已经成为了第一名。

第二个故事

为什么使用Python

优劣分析篇

输12

1

易于学习

如果你听到周围有人说“一夜速成”“三行代码”“最新操作” ,那么他十有八成是在学习Python,因为Python的易于掌握,许多非信息技术专业的学科直接以Python作为入门语言。

对于学习了C、C++或Java的同学来说,Python就更易于掌握,Python的数据类型、操作语句、对象的使用、模块(库,相当于C++中的头文件)和文件操作都有很大的共通性。作为一门解释型的语言,Python甚至看上去更像伪码,接近人的自然表达,因此很容易上手。

例如,文件的读取:

2

优雅简洁

Python的设计哲学是“优雅”、“明确”、“简单”。Python对于语句控制范围的方法是缩进,取代了大括号和分号(在C++里巧妙使用分号和大括号,可以创造混乱或奇妙的代码图案),因此,Python代码相对整洁美观。因为没有分号,换行时要在结尾加上\。

同时,Python中可以直接使用变量,无需进行声明。另外,Python中一切皆对象(恩?对象?目光突然闪烁),因此一切都可以赋值给变量,或作为参数传递给函数。因为Python具有对象回收机制,所以在编写代码的过程中无需考虑释放内存空间。

关于所说的缩进:

3

充足的模块

Python语言的核心十分强大,同时还提供了很多有趣的工具,这些就是Python的模块,最常用的是它的标准库(standard library),同时还有一些外来的模块。

而且任何Python程序都可以作为模块导入,所以不仅可以使用Python的自带电池,还可以自己发电。

在使用模块时,要使用import语句,同时注意import-only-once,否则容易出现两个模块相互导入,那么就会无限循环。

以下是一些常用模块:

4

机器学习方面

Python在科学运算,数据整理还有出图像结果的模块有:

numpy, pandas, matplotlib。

在机器学习方面,scikit learn 是汇集了众多机器学习方法的模块,它支持各种各样的机器学习方法。

在神经网络方面有著名的tensorflow等等,以及caffe架构。

(图源https://www.tensorflow.org)

5

胶水语言

Python具有丰富和强大的库。它常被昵称为胶水语言,能够把用其他语言制作的各种模块(尤其是C/C++)很轻松地联结在一起。

6

物联网

Python随着物联网技术的普及将会进一步发展,目前Rasp-berry Pi等新型平台已经将其作为开发基础。

7

一些不足之处

①速度:作为一门解释型语言,其速度往往低于编译语言。如果在大型工程中核心代码需要考虑效率的提高,可以用C语言改写,Python对此兼容性很好。

②移动端:Python在移动计算领域表现不佳,目前利用Python开发的移动应用非常罕见。

③其他:例如没有指针;属于动态类语言,设计上存在一些问题;……

输入

第三个故事

Python

让我们开始飞起来

这时候,如果你的手头有台电脑,那么就可以开始和世界打个招呼了。

1、搭建环境:

①Windows:

访问http://www.python.org。点击download,下载Windows版本的安装文件。

②Linux/Unix/Mac OS X:

打开终端,输入python,按下回车

③希望使用新版本的Python:

2、hello world:

来和世界打个招呼吧!

>>>print "hello world"

3、我们还可以试试字符串操作:

这时我们不能直接在终端写程序,因为Python不会将多行的语句编译,于是我们需要使用sublime或者Python自带的IDLE。以MacOS为例,可以在终端输入IDLE打开代码编辑器。

我们可以通过input( )读取输入值。然后对字符串进行简单的操作。

例如我们可以拼接:

'The '+'man '+'who '+'changed '+'China.' = 'The man who changed China.'

我们还可以做乘法:

'six ' * 3 = 'six six six '

我们还可以进行分割:

a = 'The man'

a[0:2] = 'Th' a[4] = m

也可以进行查找:

'who' in 'The man who changed China.'=True.

4、来试一试字典Dict的操作

Python有独特的字典结构,通过哈希表(hash table)实现。相当于说,字典是一个数组,而数组的索引是键经过哈希函数处理后得到的。哈希函数的目的是使键均匀地分布在数组中。由于不同的键可能具有相同的哈希值,即可能出现冲突,高级的哈希函数能够使冲突数目最小化。

这个字典的实现可以通过:

a = {'年轻':'simple','鸭嘴笔':'engineer','教授':'report'}

修改元素:a['年轻'] = young

添加元素:a[new key] = value

第四个故事

关于Python的数据类型

和一些拓展的应用

输12

Python的数据类型有:

基本类型:

整数、浮点数、布尔型……

顾名思义,这是基本的、熟悉的类型。变量可以直接使用,不需要声明。例如:

a = 666

print a

结果: 666

集合类型:

列表(list)、元组(tuple)、字符串:这是属于序列的典型结构,他们包含的元素都进行了编号(从0开始)。其中,列表是可变的,元组和字符串是不可变的(注意,这和C、C++是不同的)。通过分片的操作可以访问序列的一部分。

例如:a = [1,2,3,4,5] 就是一个list。

a.insert(3,6) 就可以在第3个位置插入6。

a[2]=8 就可以对list元素进行修改。

字典(dict):当索引不好用时,我们可以自己对数据建立索引,例如前文的例子。

此外,还有集合(set)等类型。

拓展应用:

①图形用户界面:可以参看wxPython(可以跨平台)、Tkinter(TK平台)或PythonWin(只能在Windows使用)、PyQt(Qt平台)等平台。

②数据库支持:可以参看PySQLite。

③网络编程:可以使用socket模块建立小型的服务器和客户机。

④ Web方面:例如进行屏幕抓取,CGI和Web服务开发。屏幕抓取是程序下载网页并从中提取信息的过程,在这里如果我们需要从动态的网页提取信息,那么这项技术就会十分有用,比如说提取一下验证的二维码,那么……

例如,我需要一个网页的所有内容:

print doc

⑤深度学习方面:例如minst(数字图像识别)的代码。

可以参看:https://github.com/yhlleo/mnist

输入

第五个故事

结束啦

此处只是

参考文献部分

参考文献:

《Python基础教程》【挪】Magnus Lie Hetland

Introduction to Python 【THU】地精工程师

更多内容可以在知乎和github上找到,感兴趣的同学可以到github上进行happy的探索。

THU自动化系学生科协(ASTA)信息推送平台,搭建科研之路,带你走向人生巅峰

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180325B14KH700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券