懂一点Python系列——快速入门

本文面相有 一定编程基础 的朋友学习,所以略过了 环境安装IDE 搭建 等一系列简单繁琐的事情。

一、Python 简介

Python 英文原意为 “蟒蛇”,直到 1989 年荷兰人 Guido van Rossum (简称 Guido)发明了一种 面向对象解释型 编程语言,并将其命名为 Python,才赋予了它表示一门编程语言的含义。

说到 Python 的诞生,极具戏剧色彩,据 Guido 的自述记载,Python 语言是他在圣诞节期间为了打发时间开发出来的,之所以会选择 Python 作为该编程语言的名字,是因为他是一个叫 Monty Python 戏剧团体的忠实粉丝。

解释型 vs 编译型

作为电子元器件的 计算机,实际上 只能 识别某些 特定的二进制指令 (特殊的 01 组合),但由于 人类阅读 这些 指令 非常难以阅读,加上使用这些指令编写程序的 耗时 太过于 冗长,所以,人们在此基础上再次制定了一套规范,采用特定的 人类可阅读 的代码编写,待到要执行时再 翻译 回特定二进制指令,这样就帮助了人们更加轻松地理解和阅读程序逻辑了。

这也就是所谓现在的 “高级编程语言” 了。

上述 翻译 这个过程 (其实相当复杂,涉及语法分析、语义分析、性能优化等等…) 其实也是由一个特定程序来执行的,那 什么时候将源代码翻译成二进制指令呢?,不同的编程语言有不同的规定:

  • 编译型语言:必须 提前 将所有源代码 一次性 转换成二进制指令,生成一个可执行文件 (例如 Windows 下的 .exe) 比如:C 语言、C++、Golang、汇编等。使用的转换工具我们称为 编译器
  • 解释型语言:允许程序 一边执行一边转换,并且不会生成可执行程序,比如 Python、JavaScript、PHP 等。使用的转换工具我们称为 解释器

JavaC# 是一种比较奇葩的存在,它们是 半编译半解释型 的语言,源码需要先转换成一种中间文件 (字节码文件),然后再把中间文件拿到 虚拟机 中执行。Java 引领了这种风潮,它的初衷是在跨平台的同时兼顾执行效率。

上图 就展示了两种不同类型语言的执行流程的不同,两种方式对比起来总结如下:

  • 编译型语言一般不能跨平台:对于不同的 CPU 来说,它们的指令集是有差异的,这就导致了 可执行文件 (翻译后的指令) 不能跨平台,另外不同的系统之间的命令也会存在差异,例如 Linux 中睡眠是 sleep() 参数是毫秒,而 Windows 中是 Sleep() (首字母大写) 参数是秒,这就导致了 源代码也不能跨平台
  • 解释型语言可跨平台:这一切都归功于 解释器,它本身就是一个可执行文件,官方只要针对不同的平台开发不同的解释器,那么解释器就能够根据相同的语法解析出同样功能的指令;
  • 编译型一般比解释型效率高:由于解释型是采取一边执行一边翻译的做法,所以会慢上一些,再加上我们强大的 编译器 会帮我们做许多代码优化的工作。
关于 Python

Python 属于典型的解释型语言,所以运行 Python 程序需要解释器的支持,只要你在不同的平台安装了不同的解释器,你的代码就可以随时运行,不用担心任何兼容性问题,真正的 “一次编写,到处运行”

Python 几乎支持所有常见的平台,比如 Linux、Windows、Mac OS、Android、FreeBSD、Solaris、PocketPC 等,你所写的 Python 代码无需修改就能在这些平台上正确运行。也就是说,Python 的 可移植性 是很强的。

面向对象 vs 面向过程

面向对象面向过程 是我们使用计算机编程解决问题的两种不同方式的方案。

面向过程 可以说是一种 基于事件 or 过程 来描述的编码方式,譬如「把大象放进冰箱」就可以描述成那经典的三个步骤,「把牛放进冰箱」又是另一个相似的经典三步,只是这样单独的事件 or 过程多了之后,随着项目复杂度的增加,项目会变得非常难以维护。

软件危机最典型的例子莫过于 IBM 的 System/360 的操作系统开发。佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)作为项目主管,率领 2000 多个程序员夜以继日的工作,共计花费了 5000 人一年的工作量,写出将近 100 万行的源码,总共投入 5 亿美元,是美国的 “曼哈顿” 原子弹计划投入的 1/4。尽管投入如此巨大,但项目进度却一再延迟,软件质量也得不到保障。布鲁克斯后来基于这个项目经验而总结的《人月神话》一书,成了史上最畅销的软件工程书籍。

  • 引用自:http://www.kancloud.cn:8080/yunhua_lee/oobaodian/110880

尽管 结构化的程序设计 (将一个大问题逐步划分成一个一个的小问题) 能够帮助我们解决一部分问题,但 面向过程 仍然有一些不符合人类惯有的思考方式,譬如说:我今天想去存钱,我不会说「请拿走我的银行卡和钱,然后在我卡上充值上相应的数目,最后把银行卡还给我谢谢」,而我只会说「存钱,谢谢」,因为人大部分时间都是基于 对象 (或者可以说角色) 来思考的。

对于 面向过程 最好的总结可能是:「程序 = 算法 + 数据结构」,而对于 面向对象 来说则可以更改为:「程序 = 对象 + 交互」

Why Python?

上面的 漫画 很好地说明了 Python 快速构建工具的能力,这也是 Why Python 的一大理由。下面根据惯例列举一些让我们足以选择 Python 的原因。

初学者友善 | 容易明白且功能强大

Python 的设计足够简单和易于使用,这样使得初学者能够从中不断得获取到乐趣以继续 Python 之旅。

另外作为一种非常高级的语言,Python 读起来像英语,这减轻了编码初学者的许多语法学习压力。Python 为您处理了很多复杂性,因此它非常适合初学者,因为它使初学者可以专注于学习编程概念,而不必担心过多的细节。

Python 还一度被爆纳入高考,收编到小学课本。

非常灵活

作为一种 动态类型 的语言,Python 确实非常灵活。这意味着没有关于如何构建特征的硬性规则,并且使用不同的方法来解决问题将具有更大的灵活性 (尽管 Python 哲学鼓励使用明显的方法来解决问题)。此外,Python 也更宽容错误,因此您仍然可以编译并运行程序,直到遇到问题为止。

越来越火爆

Python 在诞生之初,因为其功能不好,运转功率低,不支持多核,根本没有并发性可言,在计算功能不那么好的年代,一直没有火爆起来,甚至很多人根本不知道有这门语言。

随着时代的发展,物理硬件功能不断提高,而软件的复杂性也不断增大,开发效率越来越被企业重视。因此就有了不一样的声音,在软件开发的初始阶段,性能并没有开发效率重要,没必然为了节省不到 1ms 的时间却让开发量增加好几倍,这样划不过来。也就是开发效率比机器效率更为重要,那么 Python 就逐渐得到越来越多开发者的亲睐了。

12-14 年,云计算升温,大量创业公司和互联网巨头挤进云计算领域,而最著名的云核算开源渠道 OpenStack 就是基于 Python 开发的。

随后几年的备受关注的人工智能,机器学习首选开发语言也是 Python。

至此,Python 已经成为互联网开发的焦点。在 「Top 10 的编程语言走势图」 可以看到,Python 已经跃居第三位,而且在 2017 年还成为了最受欢迎的语言。

工作机会 | 薪资待遇高

在天使榜上,Python 是需求第二高的技能,也是提供最高平均薪水的技能。

随着大数据的兴起,Python 开发人员需要作为数据科学家,尤其是因为 Python 可以轻松集成到 Web 应用程序中以执行需要机器学习的任务。

快速体验 | No Hello World !

Hello World 似乎是学习编程绕不过去的东西,但使用 Python,我们来换点儿别的,Emmm… 比如,一个 查询天气 的小程序 (效果如下图)

源码 & 解释

http://wthrcdn.etouch.cn/weather_mini?city=xxx 这个网址可以返回任意城市昨日以及 5 天内的天气预报,包括气温、指数、空气质量、风力等,你可以用浏览器试着访问一下,你会得到一个 weather_mini 的文件,里面就包含了我们想要的一些数据。

不过这里由于我们发起了网络请求用到了第三方库 requests,所以在运行之前还需要使用 pip install requests 命令把该库下载到 Python 的安装目录下。

# -*- coding: utf-8 -*-
import requests

while True:
    city = input('请输入城市,回车退出:\n')
    if not city:
        break
    req = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=%s' % city)
    print(req.text)

运行你的代码

你可以在 当前文件夹 下执行命令: python hello_python.py,或是使用 python <源文件路径> 运行也行,例如,如果我是 Windows 用户并且将上述源文件保存在了 D 盘下面,那就可以执行 python D:\hello_python.py,然后你就可以看到上面的效果了。当然如果使用 IDE 将更加方便。

Python vs Java

引入一张比较著名的图吧,可以很明显地感受到 Python 在写法上要简洁一些吧:

二、Python 基本语法简介

Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。Python 最具特色的就是用 缩进 来写模块。

2.0 注释

# 第一个注释
# 第二个注释
 
'''
第三注释
第四注释
'''
 
"""
第五注释
第六注释
"""
print("Hello, Python!"
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值