Python 程序设计 第 1 章 · 第 1 节

Python 程序设计

为什么学习程序设计

从编程思维到 Python 入门,开启你的程序设计之旅

28 页幻灯片 键盘 ← → 翻页 F 全屏 T 切换主题
本节是 Python 程序设计课程的第一节课,主要介绍为什么要学习程序设计、Python 语言的优势、程序与算法的基本概念、安装配置方法以及学习建议。

Agenda

授课内容

1

程序设计语言

第一部分

为什么要学习编程?

这个国家每个人都应该学会计算机编程,因为它能教会你如何思考。
—— 史蒂夫·乔布斯

Reading

编程思维

吉姆·克里斯蒂安[英]著作的《写给所有人的编程思维》中有这样一段:

编程曾一度高深莫测,被认为是熟练程序员专属的领域,但如今其难度已经大大降低,人人都可以做到。编程的过程既有趣、能表达自我,还具有创造性,是锻炼大脑、培养创造性思维的好方法。

为什么要学习 Python 语言?

About Python

为什么要学习 Python 语言?

Python 是由荷兰人吉多·范罗苏姆(Guido von Rossum)发明的一种开源、免费的编程语言,是目前世界上最受欢迎和拥有最多用户的编程语言。

Python 强调代码的可读性和语法的简洁性,是一种面向对象解释型语言。相较于 C、C++、Java 这些同样影响深远的编程语言,Python 让使用者能够用更少的代码实现同样的功能。

Advantages

为什么要学习 Python 语言?

Python 的主要优势如下:

(1)学习入门容易

与 C、C++、Java 语言相比,Python 语言在编写代码时不需要建立 main 函数,无论是书写还是掌握计算机算法都比较简单。而且,Python 语言编写的程序代码量明显少于其他语言,对于初学者来说,在学习语法上会减少很多挫败感。

(2)功能强大

当使用 Python 语言编写程序的时候,我们不需要考虑如何管理程序使用的内存之类的细节。并且,Python 有很丰富的库,其中既有官方开发的,也有第三方开发的。

Advantages

为什么要学习 Python 语言?

Python 的主要优势如下:

(3)应用领域非常广泛

Python 语言可以应用到网站后端开发、网络爬虫、人工智能、自动化运维、数据分析、游戏开发等各个领域。

"Life is short, you need Python"
译:"人生苦短,我用 Python"
—— 吉多·范罗苏姆

Disadvantages

为什么要学习 Python 语言?

Python 语言的缺点:

相比编译型语言(如 C 语言),执行速度慢,作为解释型语言且有全局解释器锁,影响多核及 CPU 密集任务性能。

代码可读性与简洁性难平衡,动态类型和鸭子类型易致隐式错误。

内存占用高,对象管理与垃圾回收带来额外开销。

Definition

什么是程序?

程序:

是为实现特定目标或解决特定问题而用计算机语言编写的一系列语句或指令。

一组计算机能识别和执行的命令。

程序示意图

Language

计算机语言

不同语言都有相应语法结构与规范等。例如我们学习英语,需要识记单词,语法结构等。

不同编程语言也有相应格式与规范,本课需要学习 Python 语言格式与规范。

🌍
与外国人交流:可使用外语
如英语、法语、德语等
💻
与计算机交流:使用编程语言
Python、C语言、C++、Java 等

计算机语言

高级语言的发展

01
非结构化的语言
02
结构化语言
(C语言)
03
面向对象的语言
(Python,Java等)

控制结构

Algorithm

算法

尼古拉斯·沃斯(1984年图灵奖得主、Pascal之父)

算法:是解决问题的方法和步骤。

沃斯公式:程序 = 算法 + 数据结构

Metaphor

程序设计就像:

🎵 指挥官

给计算机当 "指挥官",告诉它 "先做什么,再做什么"

🛠️ 偷懒神器

给生活当 "偷懒神器",把重复的、复杂的任务交给计算机

🧠 逻辑训练师

给大脑当 "逻辑训练师",让你学会把想法变成清晰的步骤

Properties

算法特性

算法是解决特定问题的方法,是程序设计的基础和灵魂。作为一个算法,应具备5个特性,即有穷性、确定性、可行性、输入和输出。

计算机算法可分为两大类,即数值计算算法非数值计算算法

数值计算算法的目的是求解数值,例如求方程的根

非数值计算算法主要用于处理事务领域的问题,如排序、查找等

5 Properties

算法的特性

1
有穷性
一个算法应包含有限的操作步骤,而不能是无限的
2
确定性
算法中的每一个步骤都应当是确定的,而不应当是含糊的、模棱两可的
3
输入
有零个或多个输入,在执行算法时需要从外界取得必要的信息
4
输出
有一个或多个输出,算法的目的是为了求解,"解"就是输出
5
有效性
算法中的每一个步骤都应当能有效地执行,并得到确定的结果
2

程序的算法表示

第二部分

结构化程序设计方法

1
模块化设计
2
自顶向下
3
逐步细化
4
结构化编码

Brainstorm

算法题

【头脑风暴 1】
有 7 克、2 克的砝码各一个,天平一架,如何只用这些物品三次将 140 克盐分成 50 克、90 克两份?
第一次:7、2g 砝码称出 9g 盐,结果盐分成 9g 与 131g
第二次:将 9g 盐与 7g、2g 都作为砝码,结果将盐分为 18g 与 113g
注意:这时盐已经分为三份:9g、18g、113g
第三次:将 18g 盐与 7g 砝码放在左托盘,将 2g 砝码放在右托盘,然后在 113g 盐中取盐添置右托盘中,可获取 23g 盐。
这时盐分为 9g,18g,23g 与 90g。
即三次,可以得到 90g 与(9+18+23)50g。

Brainstorm

算法题

【头脑风暴 2】
你现在有 3 升的杯子和 5 升的杯子各一个,但你需要 4 升水,你如何只利用这两个杯子得到 4 升水?
五升的装满往三升的倒,倒满后五升的杯子剩两升,把这两升倒到三升的杯子里,三升的杯子现在有两升,还差一升就满了,再用装满水的五升杯子把三升的杯子装满,现在五升的杯子就剩下 4 升水了。
3

程序设计的任务

第三部分

Setup

安装 Python

目前,Python 有两个版本,一个是 2.x 版,一个是 3.x 版,这两个版本是不兼容的。由于 3.x 版越来越普及,我们的教程将以最新的 Python 3.x 版本为基础。

📥 下载安装包

打开 Python 官方下载页面:
https://www.python.org/downloads/

中文网:
https://python.p2hp.com/

Python下载页面

Configuration

配置 Python

安装成功后,打开命令行窗口(Windows 下打开 CMD),敲入 python 后,出现以下提示,为安装成功,否则,需要对 Python 进行配置。

退出 Python 交互式环境,需要在提示符 >>> 下输入 exit() 并回车。

Python命令行

Study Tips

Python 学习方法

(1)属于思维类课程

之前的课程基本都属于应用类。概念性的东西以理解为主,重点在于敲代码实现。

(2)如何去深入的理解知识

三步走:它是啥?它能帮我解决什么问题?它如何去使用?

(3)多写代码,最忌讳眼高手低

听懂不代表会写,会写不代表能灵活运用。

Study Tips

Python 学习方法

(4)多做题目

将脑子中的思维转换为编程语言。编程学习中第一大困难是:如何利用语法知识去解决实际问题。找数据,列步骤,一步步实现。

(5)遇到问题及时解决

编程学习中第二大困难是:报错太多,会打击自信。解决途经:问 AI(详细询问),问同学问老师,回归课本和书籍。