面向文科生的Python编程基础

A Brief Introduction to Python

曹钢
赣南师范大学
2023-11-16
下载本课件PDF版
京ICP备19058803号-1

课程安排

时间有限,
知识很多,
提纲挈领,
贴合专业。

课时 内容

一、入门篇

何谓编程? 何谓Python编程?

二、操作控制篇

变量、函数、条件、循环

三、数据结构篇

列表、字典、元组、集合、类、字符串

四、重要主题篇

库和模块、文件读写

一、入门篇

何谓编程? 何谓Python编程?

为什么学?

⬇️
⬇️

怎么学?

为什么学?🤔

因为它能!

“除了生孩子,Python还有什么不会的?”

对自己有用是关键!

  • 多一门跟技术人员交流的语言。知道如何提合理的需求,从程序员的角度思考业务问题的解决办法。
  • 辅助教学与研究(自动、智能、计算/统计)。分析平均分、标准差、效度检验、画论文中的图表……
  • 自主设计APP/网站。随心所欲不逾矩。
  • 懂专业、懂编程复合发展,为专业的数字化转型贡献力量。

何谓编程?🤔

体验编程

编程 v. program:用计算机能懂的语言,跟计算机进行交流的过程。

代码 n. code:用计算机能懂的字符语言,写出来的与计算机交流的话。

何谓Python编程?🤔

Python:一种非常简洁的、应用广泛的、适合入门的代码编码语言。

学会Python语言,只相当于我们会了英语的基本语法,并不保证我们能成为一名作家。

怎么学?🤔

打好基础,熟悉必要的语法、函数。

以需求为导向,多读他人代码。不必记太多,连网随时可查。

加强专业化知识的学习。编程只相当于“识字”,如果没有某方面的专业知识,看代码也是看天书。比如要用Python做音频处理就要懂音频方面的知识,用Python做NLP也要懂NLP的知识。

二、操作控制篇

变量variable、函数function、条件conditional、循环loop

怎么开始Python编程?🤔

变量 variable

小小的花园里面挖呀挖呀挖
小小的种子开小小的花
大大的花园里面挖呀挖呀挖
大大的种子开大大的花
特别大的花园里面挖呀挖呀挖
特别大的种子开特别大的花

⬇️
……的花园里面挖呀挖呀挖
……的种子开……的花

变量 variable

  • 一种会变的量。
  • 一块内存区域里临时存储的可变的数据。
						
						
						
						

变量 variable

  • 在变量里,可以存数字和任意字符。
						
						
						
						

变量 variable

例:用变量存储“窗”的字形、声母、韵母、声调信息

						
						
						
						

练习

  • 下面代码运行后输出结果是什么?
						
						
						
						

变量 variable

名不正则言不顺:Python的变量名

  • 由英文字母、下划线_或数字组成,并且第一个字符必须是英文字母或下划线。
  • 不能是 Python 关键字(又称关键词)。
						
						
						
						

练习

  • 判断下列变量名是否符合规范。
						
						
						
						

函数 function

  • 实现一定功能的代码片段。
  • 有函数功能的制造者(负责定义函数)和使用者(使用函数)。

函数 function

  • 函数名:用于辨识函数的称呼,命名规则与变量大致相同。
  • 参数:函数发挥作用所需要的材料、信息。(非必须)
  • 返回值:函数发挥作用后输出得到的材料、信息。(非必须)

函数 function

如何定义(define)一个函数?

						
						
						
						

函数 function

如何调用(call)一个函数?

						
						
						
						

函数 function

一个参数的函数

						
						
						
						

函数 function

没有返回值的函数

						
						
						
						

函数 function

函数的优势/作用

  • 让重复多次的代码调用更加方便简洁
  • 让整体代码的结构更加清晰,让我们更加关注抽象的功能,而非具体的细节

函数 function

内置函数(built-in function):Python已经给我们定义好,可以直接用的函数

						
						
						
						

自动化 VS 智能化

自动化:连续、重复地执行相同或相近的任务

智能化:有条件地执行不同的任务

条件 conditional

不同情况下执行不同代码分支的程序机制。

						
						
						
						

条件 conditional

只有一个分支的条件语句

						
						
						
						

有多于两个分支的条件语句

						
						
						
						

条件 conditional

判断的条件怎么写?

						
						
						
						

条件 conditional

条件的组合

						
						
						
						

练习

判断一个四字词语是否是AABB式。

						
						
						
						

练习

关键:理清逻辑,确定分类标准容斥关系

请用条件语句实现剪刀石头布的游戏

						
						
						
						

练习

假设某品牌4S店的一款车,中档的起步价格为15万元,高档的起步价格为20万元,如果客户选黑色外观则不加价,如果选红色外观则加价1万元,选白色外观则加价2万元。请用条件语句计算客户不同需求组合的价格是多少?

						
						
						
						

练习

从A到B需要经过C。从A到C有两条路线a, b,花费分别是50元、75元;从C到B有三条路线c, d, e,花费分别是100元、120元、110元。请写一个带条件的函数,能输入路线输出相应的花费。

						
						
						
						
						

循环 loop

让计算机连续、重复执行相同或相近任务的程序机制。

						
						
						
						

循环 loop

相近任务:每次的任务稍有变化

						
						
						
						

循环 loop

结合函数

						
						
						
						

练习

设计一个鼓励学生的函数,得分在90-100(包括)时说“太棒了!”,在80-89时说“做得很好!”,在60-79时说“还不错哦!”,60以下时说“还需努力啊”,并分别用0-100之间的数字为参数,循环调用函数。

参考答案

						
						
						
						

另一种循环的写法:while

while循环多于用循环次数事先不确定,当满足一定条件循环,不满足时终止的情况。

						
						
						
						

练习

笼子里有若干只鸡和若干只兔子。鸡和兔子的头共60个,脚共220只。问鸡和兔子共多少只?

						
						
						
						
						

嵌套的循环

循环里面还有循环,层层嵌套。

						
						
						
						
						

思考:这些情形如何转化为代码?

除了……都……:家里所有地方,除了我卧室的窗台旁,都要打扫。

重复做……直到……才……:重复播放我最喜欢的歌,直到我睡着。

请把既在《等级标准》出现,又在《新HSK考试大纲》中出现的词语挑出来。

三、数据结构篇

列表list、字典dict、元组tuple、集合set、类class、字符串string

列表 list

一个编了号的,可以存储多个事物的清单

						
						
						
						

操作列表——增append

直接在列表末尾增加。

						
						
						
						

操作列表——增insert

在指定的索引位置增加。

						
						
						
						

操作列表——删remove

移除列表中某个值的第一个匹配项

						
						
						
						

操作列表——删del

移除列表中某个位置的值

						
						
						
						

操作列表——改

						
						
						
						

操作列表——查

						
						
						
						

操作列表——查(用循环)

						
						
						
						

练习

请输出“天若有情天亦老”这句诗,第一行以“天”开头,第二行以“若”开头“天”挪到末尾,第三行以“有”开头“若”移到末尾,以此类推。

						
						
						
						

判断元素是否在列表中

						
						
						
						

练习

请完成一个模拟的系统登录流程。当用户输入正确的用户名和密码后,显示“Welcome”;当用户名正确而密码错误时,提示“重新输入”;当用户名输错时,提示“未注册”。

						
						
						
						

练习

凯撒密码是一种古老的密码,它的加密方式是将待加密的话中每一字母都按字母表的顺序向后移动若干位。如ENEMY IS COMING右移两位的加密信息是CLCKW GQ AMKGLE。请用函数完成这一加密过程。

						
						
						
						

操作列表——合并两个列表

						
						
						
						

字典 dict

一种可以存储多个与对应值(实)的数据合集

						
						
						
						

操作字典——增

						
						
						
						

操作字典——删

						
						
						
						

操作字典——改

						
						
						
						

操作字典——查

						
						
						
						

练习

用字典来存储一个汉字的字形、字音、字义信息

						
						
						
						

参考答案

						
						
						
						

练习

统计一段话中每一个字出现的次数。

						
						
						
						

元组 tuple(了解)

元素固定不变的列表

						
						
						
						

集合 set(了解)

元素不重复,不区别顺序的列表

						
						
						
						

类 class(了解)

万物皆类。是表示同一概念外延的程序模板。

						
						
						
						

字符串 string

一个个字符组成的列表。

						
						
						
						

练习

判断一句话是否是“是……的”句

						
						
						
						

下面的代码有什么问题?

						
						
						
						

应该限制一下:“是”必须在“的”前面

参考答案

						
						
						
						

课后作业

统计这句话中“行”出现了多少次。

						
						
						
						

挑战一下

统计这句话中每个字符分别出现了多少次。

						
						
						
						

四、重要主题篇

模块和库 modules and libraries、文件读写 file IO

模块和库 modules and libraries(了解)

模块是指将变量、函数、类等定义在一个Python代码文件中进行统一封装。其他代码可以通过import的方式引用该代码。

是一组功能相关的模块组成的集合,整体提供特定的一套功能。

开源、复用的社区精神

模块和库 modules and libraries(了解)

导入模块和库的方式

第一步,先将共享代码保存为dog.py,成为dog模块

						
						
						
						

模块和库 modules and libraries(了解)

导入模块和库的方式

第二步,在另一代码文件中,import该dog模块中的变量、函数或类

						
						
						
						

Python的可用功能

常见标准库

标准库:不需要安装,但需要手动导入。

  • random:与随机相关功能的库
  • os:与操作系统相关功能的库
  • time:与时间相关功能的库
  • re:与字符串搜索、替换相关功能的库

安装第三方库

第三方库:先安装,再手动导入。

打开Terminal/CMD/PowerShell输入命令:
pip install name_of_the_library

pip install numpy

pip install selenium

pip install networks

pip install python-docx

pip install pyautogui

Python软件包仓库

https://pypi.org/

文件读写 file IO

变量中的数据仅存储于计算机临时的内存中,如果想让数据永久存储,断电关机不丢失,应当将数据存到硬盘上。

						
						
						
						

练习

1. 安装pypinyin: pip install pypinyin。

2. 从网络上任找一篇文章,保存为txt格式。

3. 编写代码,读取保存的文章,并使用pypinyin将其转化为拼音后保存到另一个txt文件中。

						
						
						
						

练习

1. 安装LTP: pip install ltp。

2. 从网络上任找一篇文章,保存为txt格式。

3. 编写代码,读取保存的文章,并使用LTP工具对其进行分词、词性标注、语义角色分析等。

						
						
						
						

后续努力方向

  • 深入理解国际中文教育等专业领域需求,熟悉系统架构,加强将业务需求转化为符合程序逻辑、语法的代码的训练。计算思维(Computational Thinking):分解(decomposition)、模式识别(pattern recognition)、抽象(abstraction)、算法(algorithms)
  • 专精某一业务领域相关的Python库。如深度学习PyTorch,数值处理、科学计算SciPy, sklearn, NumPy,pandas,图像处理Pillow,图表绘制matplotlib,音频处理librosa,网站开发Django, Flask。

海阔凭鱼跃

天高任鸟飞

——谢谢大家——