[Python基础]D1 "Hello Python"

写在前面

平时的工作用R会用的多一点,据前辈介绍,R和Python相似性很高,既然Python容易上手,那我就把Python当作自己的第一门编程语言吧。PS:虽然本科的时候学校将VB作为一门编程语言传授于我们,但那完全是水的不能再水了,而且最近微软宣布停止更新VB(https://new.qq.com/rain/a/20200314A09SX300),不知道看到这条消息,本科学校的领导会作何感想。

认识 Python

人生苦短,我用 Python —— Life is short, you need Python

001_人生苦短我用python.jpg

目标

  • Python 的起源

  • 为什么要用 Python?

  • Python 的特点

  • Python 的优缺点

01. Python 的起源

Python 的创始人为吉多·范罗苏姆(Guido van Rossum)

002_吉多.jpg
  1. 1989 年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的解释程序,作为 ABC 语言的一种继承(感觉下什么叫牛人

  2. ABC 是由吉多参加设计的一种教学语言,就吉多本人看来,ABC 这种语言非常优美和强大,是专门为非专业程序员设计的。但是 ABC 语言并没有成功,究其原因,吉多认为是非开放造成的。吉多决心在 Python 中避免这一错误,并获取了非常好的效果

  3. 之所以选中 Python(蟒蛇) 作为程序的名字,是因为他是 BBC 电视剧——蒙提·派森的飞行马戏团(Monty Python's Flying Circus)的爱好者

  4. 1991 年,第一个 Python 解释器 诞生,它是用 C 语言实现的,并能够调用 C 语言的库文件

1.1 解释器(科普)

计算机不能直接理解任何除机器语言以外的语言,所以必须要把程序员所写的程序语言翻译成机器语言,计算机才能执行程序。将其他语言翻译成机器语言的工具,被称为编译器

编译器翻译的方式有两种:一个是编译,另外一个是解释。两种方式之间的区别在于翻译时间点的不同。当编译器以解释方式运行的时候,也称之为解释器

001_编译型和解释型语言工作对比.png
  • 编译型语言:程序在执行之前需要一个专门的编译过程,把程序编译成为机器语言的文件,运行时不需要重新翻译,直接使用编译的结果就行了。程序执行效率高,依赖编译器,跨平台性差些。如 C、C++

  • 解释型语言:解释型语言编写的程序不进行预先编译,以文本方式存储程序代码,会将代码一句一句直接运行。在发布程序时,看起来省了道编译工序,但是在运行程序的时候,必须先解释再运行

编译型语言和解释型语言对比

  • 速度 —— 编译型语言比解释型语言执行速度快

  • 跨平台性 —— 解释型语言比编译型语言跨平台性好

1.2 Python 的设计目标

1999 年,吉多·范罗苏姆向 DARPA 提交了一条名为 “Computer Programming for Everybody” 的资金申请,并在后来说明了他对 Python 的目标:

  • 一门简单直观的语言并与主要竞争者一样强大

  • 开源,以便任何人都可以为它做贡献

  • 代码像纯英语那样容易理解,也就是阅读起来简单。

  • 适用于短期开发的日常任务

这些想法中的基本都已经成为现实,Python 已经成为一门流行的编程语言

1.3 Python 的设计哲学

  1. 优雅

  2. 明确

  3. 简单

  • Python 开发者的哲学是:用一种方法,最好是只有一种方法来做一件事

  • 如果面临多种选择,Python 开发者一般会拒绝花俏的语法,而选择明确没有或者很少有歧义的语法

在 Python 社区,吉多被称为“仁慈的独裁者”

02. 为什么选择 Python?

  • 代码量少

  • ……

同一样问题,用不同的语言解决,代码量差距还是很多的,一般情况下 PythonJava1/5,所以说 人生苦短,我用 Python

03. Python 特点

  • Python 是完全面向对象的语言

    • 函数模块数字字符串都是对象,在 Python 中一切皆对象

    • 完全支持继承、重载、多重继承

    • 支持重载运算符,也支持泛型设计

  • Python 拥有一个强大的标准库,Python 语言的核心只包含 数字字符串列表字典文件 等常见类型和函数,而由 Python 标准库提供了 系统管理网络通信文本处理数据库接口图形系统XML 处理 等额外的功能

  • Python 社区提供了大量的第三方模块,使用方式与标准库类似。它们的功能覆盖 科学计算人工智能机器学习Web 开发数据库接口图形系统 多个领域

面向对象的思维方式

  • 面向对象 是一种 思维方式,也是一门 程序设计技术

  • 要解决一个问题前,首先考虑 由谁 来做,怎么做事情是 的职责,最后把事情做好就行!

    • 对象 就是
  • 要解决复杂的问题,就可以找多个不同的对象各司其职,共同实现,最终完成需求

04. Python 的优缺点

4.1 优点

  • 简单、易学

  • 免费、开源

  • 面向对象

  • 丰富的库

  • 可扩展性

    • 如果需要一段关键代码运行得更快或者希望某些算法不公开,可以把这部分程序用 CC++ 编写,然后在 Python 程序中使用它们
  • ……

4.2 缺点

  • 运行速度

  • 国内市场较小

  • 中文资料匮乏

第一个 Python 程序

目标

  • 第一个 HelloPython 程序

  • Python 2.x3​​.x 版本简介

  • 执行 Python 程序的三种方式

    • 解释器 —— python / python3

    • 交互式 —— ipython

    • 集成开发环境 —— PyCharm

01. 第一个 HelloPython 程序

1.1 Python 源程序的基本概念

  1. Python 源程序就是一个特殊格式的文本文件,可以使用任意文本编辑软件Python 的开发

  2. Python 程序的 文件扩展名 通常都是 .py

1.2 演练步骤

  • 在桌面下,新建 认识Python 目录。【按shift可输入中文】

  • 认识Python 目录下新建 01-HelloPython.py 文件

  • 使用 gedit 编辑 01-HelloPython.py 并且输入以下内容:

print("hello python")
print("hello world")
  • 在终端中输入以下命令执行 01-HelloPython.py
# python是解释器
$ python 01-HelloPython.py

printpython 中我们学习的第一个 函数

print 函数的作用,可以把 "" 内部的内容,输出到屏幕上

1.3 演练扩展 —— 认识错误(BUG)

关于错误

  • 编写的程序不能正常执行,或者执行的结果不是我们期望的

  • 俗称 BUG,是程序员在开发时非常常见的,初学者常见错误的原因包括:

    1. 手误

    2. 对已经学习过的知识理解还存在不足

    3. 对语言还有需要学习和提升的内容

  • 在学习语言时,不仅要学会语言的语法,而且还要学会如何认识错误和解决错误的方法

每一个程序员都是在不断地修改错误中成长的

第一个演练中的常见错误

  • 1> 手误,例如使用 pirnt("Hello world")
NameError: name 'pirnt' is not defined
​
名称错误:'pirnt' 名字没有定义
  • 2> 将多条 print 写在一行
SyntaxError: invalid syntax
​
语法错误:语法无效

每行代码负责完成一个动作!!!

  • 3> 缩进错误:多了或少了空格
IndentationError: unexpected indent
​
缩进错误:不期望出现的缩进</pre>
  • Python 是一个格式非常严格的程序设计语言
  • 目前而言,大家记住每行代码前面都不要增加空格!!
  • 4> python 2.x 默认不支持中文

目前市场上有两个 Python 的版本并存着,分别是 Python 2.xPython 3.x

  • Python 2.x 默认不支持中文,具体原因,等到介绍 字符编码 时给大家讲解

  • Python 2.x 的解释器名称是 python

  • Python 3.x 的解释器名称是 python3

SyntaxError: Non-ASCII character '\xe4' in file 01-HelloPython.py on line 3, 
but no encoding declared; 
see http://python.org/dev/peps/pep-0263/ for details
​
语法错误: 在 01-HelloPython.py 中第 3 行出现了非 ASCII 字符 '\xe4',但是没有声明文件编码
请访问 http://python.org/dev/peps/pep-0263/ 了解详细信息</pre>
  • ASCII 字符只包含 256 个字符,不支持中文
  • 有关字符编码的问题,后续会讲

单词列表

* error 错误
* name 名字
* defined 已经定义
* syntax 语法
* invalid 无效
* Indentation 索引
* unexpected 意外的,不期望的
* character 字符
* line 行
* encoding 编码
* declared 声明
* details 细节,详细信息
* ASCII 一种字符编码

02. Python 2.x3​​.x 版本简介

目前市场上有两个 Python 的版本并存着,分别是 Python 2.xPython 3.x

新的 Python 程序建议使用 Python 3.0 版本的语法

  • Python 2.x 是 过去的版本

    • 解释器名称是 python
  • Python 3.x 是 现在和未来 主流的版本

    • 解释器名称是 python3

    • 相对于 Python 的早期版本,这是一个 较大的升级

    • 为了不带入过多的累赘,Python 3.0 在设计的时候 没有考虑向下兼容

      • 许多早期 Python 版本设计的程序都无法在 Python 3.0 上正常执行
    • Python 3.0 发布于 2008 年

    • 到目前为止,Python 3.0 的稳定版本已经有很多年了

      • Python 3.3 发布于 2012

      • Python 3.4 发布于 2014

      • Python 3.5 发布于 2015

      • Python 3.6 发布于 2016

  • 为了照顾现有的程序,官方提供了一个过渡版本 —— Python 2.6

    • 基本使用了 Python 2.x 的语法和库

    • 同时考虑了向 Python 3.0 的迁移,允许使用部分 Python 3.0 的语法与函数

    • 2010 年中推出的 Python 2.7 被确定为 最后一个Python 2.x 版本

提示:如果开发时,无法立即使用 Python 3.0(还有极少的第三方库不支持 3.0 的语法),建议

  • 先使用 Python 3.0 版本进行开发
  • 然后使用 Python 2.6Python 2.7 来执行,并且做一些兼容性的处理

03. 执行 Python 程序的三种方式

3.1. 解释器 python / python3

Python 的解释器

# 使用 python 2.x 解释器
$ python xxx.py
​
# 使用 python 3.x 解释器
$ python3 xxx.py
其他解释器(知道)

Python 的解释器 如今有多个语言的实现,包括:

  • CPython —— 官方版本的 C 语言实现

  • Jython —— 可以运行在 Java 平台

  • IronPython —— 可以运行在 .NET 和 Mono 平台

  • PyPy —— Python 实现的,支持 JIT 即时编译

3.2. 交互式运行 Python 程序

  • 直接在终端中运行解释器,而不输入要执行的文件名

  • 在 Python 的 Shell 中直接输入 Python 的代码,会立即看到程序执行结果

1) 交互式运行 Python 的优缺点

优点
  • 适合于学习/验证 Python 语法或者局部代码,小部分的语法和代码
缺点
  • 代码不能保存

  • 不适合运行太大的程序

2) 退出 官方的解释器

1> 直接输入 exit()
>>>> exit()
2> 使用热键退出

在 python 解释器中,按热键 ctrl + d 可以退出解释器

001_积跬步以至千里.jpg
1.01**365
0.99**365

3) IPython

  • IPython 中 的 “I” 代表 交互 interactive
特点
  • IPython 是一个 python 的 交互式 shell,比默认的 python shell 好用得多

    • 支持自动补全

    • 自动缩进

    • 支持 bash shell 命令

    • 内置了许多很有用的功能和函数

  • IPython 是基于 BSD 开源的

版本
  • Python 2.x 使用的解释器是 ipython

  • Python 3.x 使用的解释器是 ipython3

  • 要退出解释器可以有以下两种方式:

1> 直接输入 exit,无需使用()。
In [1]: exit</pre>
2> 使用热键退出

在 IPython 解释器中,按热键 ctrl + dIPython 会询问是否退出解释器

IPython 的安装

$ sudo apt install ipython</pre>

3.3. Python 的 IDE —— PyCharm

1) 集成开发环境(IDE)

集成开发环境(IDE,Integrated Development Environment)—— 集成了开发软件需要的所有工具,一般包括以下工具:

  • 图形用户界面

  • 代码编辑器(支持 代码补全自动缩进

  • 编译器/解释器

  • 调试器(断点单步执行

  • ……

2)PyCharm 介绍

  • PyCharm 是 Python 的一款非常优秀的集成开发环境

  • PyCharm 除了具有一般 IDE 所必备功能外,还可以在 WindowsLinuxmacOS 下使用

  • PyCharm 适合开发大型项目

    • 一个项目通常会包含 很多源文件

    • 每个 源文件 的代码行数是有限的,通常在几百行之内

    • 每个 源文件 各司其职,共同完成复杂的业务功能

3)PyCharm 快速体验

001_PyCharm的界面结构.png
  • 文件导航区域 能够 浏览定位打开 项目文件

  • 文件编辑区域 能够 编辑 当前打开的文件

  • 控制台区域 能够:

    • 输出程序执行内容

    • 跟踪调试代码的执行

  • 右上角的 工具栏 能够 执行(SHIFT + F10) / 调试(SHIFT + F9) 代码

    002_PyCharm运行工具栏.png

  • 通过控制台上方的单步执行按钮(F8),可以单步执行代码
    003_PyCharm调试器.png

以上资源均来自于黑马程序员。

觉得不错,不妨点个赞

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容