高级语言程序设计-Python(2023秋)

沈阳师范大学 刘立群 刘冰 杨亮 丁茜

目录

  • 1 程序与算法
    • 1.1 程序
    • 1.2 算法
      • 1.2.1 什么是算法
      • 1.2.2 算法的要素与表示
      • 1.2.3 常用的算法策略
  • 2 Python 语言概述
    • 2.1 Python的产生与特性
    • 2.2 Python的安装与运行
      • 2.2.1 实验1 环境安装与运行
    • 2.3 Python的基本语法
      • 2.3.1 实验2 基本语法
    • 2.4 程序设计基础
      • 2.4.1 实验4 程序设计IPO
    • 2.5 turtle绘图
      • 2.5.1 实验3-1 绘制基本图形
      • 2.5.2 实验3-2 绘制不连续图形
      • 2.5.3 实验3-3 绘制彩色同心圆
      • 2.5.4 实验3-4 绘制填充效果的同心圆
      • 2.5.5 实验3-5 绘制彩色图案
  • 3 基本数据类型与函数
    • 3.1 基本数据类型
    • 3.2 运算符与表达式
    • 3.3 常用系统内置函数
      • 3.3.1 实验5  表达式与内置函数
    • 3.4 常用标准库函数
      • 3.4.1 实验6 标准库函数 random
      • 3.4.2 实验6 标准库函数 time
      • 3.4.3 实验6 标准库函数 math
  • 4 程序控制语句
    • 4.1 结构化程序设计的基本结构
    • 4.2 分支结构
      • 4.2.1 实验7  程序的分支与选择
    • 4.3 循环结构
      • 4.3.1 实验8 简单循环结构
      • 4.3.2 实验9 循环的嵌套
    • 4.4 break和continue语句
  • 5 组合数据类型
    • 5.1 组合数据类型简介
    • 5.2 列表
      • 5.2.1 实验10 组合数据之列表和元组
    • 5.3 元组
      • 5.3.1 实验10 组合数据之列表和元组
    • 5.4 字典
      • 5.4.1 实验11 组合数据之字典和集合
    • 5.5 集合
      • 5.5.1 实验11 组合数据之字典和集合
  • 6 字符串与正则表达式
    • 6.1 字符串格式化
      • 6.1.1 实验12 字符串的格式化
    • 6.2 字符串的基本操作
      • 6.2.1 实验13 字符串的基本操作
    • 6.3 字符串的函数与方法
    • 6.4 中文分词模块jieba
      • 6.4.1 实验14 中英文词频统计
    • 6.5 正则表达式
  • 7 自定义函数和模块
    • 7.1 函数的定义
    • 7.2 函数的调用
      • 7.2.1 实验15 函数的定义和调用
    • 7.3 函数的参数传递
      • 7.3.1 实验16  函数的参数传递
    • 7.4 变量作用域
      • 7.4.1 实验17    变量的作用域
    • 7.5 函数的嵌套与递归
      • 7.5.1 实验18    函数的嵌套与递归
    • 7.6 lambda函数
      • 7.6.1 实验19 lambda函数
    • 7.7 模块
  • 8 文件与异常处理
    • 8.1 文件的概念和基本操作
      • 8.1.1 实验20 文本文件的操作
      • 8.1.2 实验21 二维数据CSV文件读写
    • 8.2 文本文件的操作
    • 8.3 csv文件的处理
    • 8.4 OS模块和文件夹
      • 8.4.1 实验22 OS模块和文件夹
    • 8.5 Python异常处理
      • 8.5.1 实验23 常见异常及异常处理
  • 9 Python类和对象
    • 9.1 类的定义
    • 9.2 对象的创建
    • 9.3 属性和方法
    • 9.4 继承
    • 9.5 重载
  • 10 Python高级应用
    • 10.1 图形用户界面编程
    • 10.2 网络编程基础
    • 10.3 数据库编程
    • 10.4 数据分析与可视化
    • 10.5 本章实验
      • 10.5.1 实验24  GUI和pyinstaller库
      • 10.5.2 实验25 数据分析
      • 10.5.3 实验26 网络爬虫
      • 10.5.4 实验27 PDF文件转文本文件
程序

1.1 程序

1.1.1语言的演变

在“互联网+时代,人类简单重复性的劳动或思考活动正在逐步被计算机取代,计算机正在持续改变着我们的工作方式和学习方式,进而影响着我们的思维。提起“计算机”就自然会联想到“程序”,程序似乎成了计算机的代名词。在经历了七十余年的飞速发展后,计算机已远远不是它最初的样子,编程也已不再仅仅是程序员和工程师的专属了。如何在“互联网+”时代提高自身竞争力?学习编程是一个有效的方法,也是一个新的机遇。

编程其实就是用计算机语言把人类的需求表达出来。计算机语言(ComputerLanguage)是人与计算机之间交流的媒介。计算机语言经历了从机器语言、汇编语言,再到高级语言的演变过程。

机器语言是一种指令集的体系,它是用二进制代码01构成的指令集合,是计算机唯一可以直接识别和执行的语言。机器语言具有计算机可以直接执行、简洁、运算速度快等优点,但是它难于辨别和记忆,不易阅读和修改,非常容易出错。程序的测试和调试都比较困难,此外对机器的依赖性也很强,于是汇编语言就产生了。

汇编语言为了解决机器语言难以理解和记忆的缺点,用易于理解和记忆的名称和符号表示机器指令中的操作码,这样符号代替了二进制码,机器语言就变成了汇编语言。汇编语言也称为符号语言。使用汇编语言编写的程序,机器不能直接识别,要由程序翻译成机器语言,这种起到翻译作用的程序叫做汇编程序,这种翻译的过程称为汇编。汇编语言与处理器关系密切,因此它的通用性和可移植性较差。但这并不意味着汇编已无用武之地。由于汇编更接近机器语言,生成的程序与其他的语言相比具有更高的运行速度,占用更小的内存,因此在一些对于时效性要求很高的程序、许多大型程序的核心模块以及工业控制方面大量应用。          

       

操作:寄存器BX的内容送到AX中

   

1          1000100111011000     机器指令

   

2          MOV  AX, BX          汇编指令

   

3          AX = BX                       高级语言

       

1.1 机器指令到高级语言

 高级语言主要是相对于汇编语言而言的。它是一种既接近于自然语言,又可以使用数学表达式的编程语言。高级语言用人们更易理解的方式编写程序,基本脱离了计算机的硬件系统,可方便地表示数据的运算和程序的控制结构,能更好地描述各种算法,而且容易学习和掌握。例如:在高级语言中表示“将BX的内容送到AX”,使用的代码为:AX=BX

高级语言编写的程序称为高级语言源程序,但是高级语言并不是特指某一种具体的语言,而是包括很多种编程语言,如流行的JavaCC++C#PascalPython语言等等,这些语言的语法以及命令格式都不尽相同。                    

1.1.2 高级语言的运行机制

计处机不能直接识别除机器语言以外的其它语言,因此高级语言编写的程序需要先“翻译”为机器语言,然后再交给计算机去执行。

比如,我们向计算机发出一条打印命令“print(520)”,由于计算机只能识别01指令,所以该命令并不能直接被执行,需要先经过“翻译”后才能被执行。这里能把高级语言的命令翻译为机器语言的程序就称为“编译器”。编译器翻译的方式有两种:编译和解释,二者区别在于翻译时间点不同。

1.2 高级语言编译为机器语言

那么,到底什么是编译型语言和解释型语言呢?

1. 编译型语言

编译型高级语言是通过专门的编译器,将高级语言代码(源代码)一次性地翻译成可执行的机器码(目标代码)的编程语言,这个翻译过程就叫做编译(Compile)。编译生成的目标代码可以在特定的平台上独立运行。常用的编译型语言有CC++FORTRAN等。

编译程序对源程序进行解释的方法相当于日常生活中的“整文翻译”。在编译程序的执行过程中,要对源程序扫描一遍或几遍,最终形成一个可在具体计算机上执行的目标程序。编译后生成的目标程序是计算机可以直接运行的二进制文件。这样每次运行程序时,都可以直接运行该二进制文件,而不需要再次重新编译了。

举例:比如C语言程序的执行过程,要先将后缀为.c的源文件通过编译链接为后缀为.exe的可执行文件才能运行。

编译型语言具有如下特点:

1)可独立运行,源代码经过编译形成的目标程序可脱离开发环境独立运行;

2)运行效率高,编译过程包含程序的优化过程,编译的机器码运行效率较高;

3)可移植性较差,编译型语言依赖编译器,与特定平台相关。

1.3 编译型语言的执行方式

2. 解释型语言

解释型语言是通过解释器对高级语言代码(源程序)逐行翻译成机器码并执行的语言。每次执行程序都要进行一次翻译,因此解释型语言的程序运行效率较低,不能脱离解释器独立运行。常用的解释型语言有BasicPython等。

解释程序对源程序进行翻译的方法相当于日常生活中的“同声传译”。解释程序对源程序的语句从头到尾逐句扫描、逐句翻译、并且翻译一句执行一句,因而这种翻译方式并不形成机器语言形式的目标程序。 每次执行程序都需要重新进行解释。

举例:比如Python程序执行过程,我们写好代码直接运行即可(运行前有解释的过程)。

解释型语言具有如下特点:

1)易于修改和测试,逐句解释过程中便于对代码的修改和测试;

2)可移植性较好,只要有解释环境,可在不同的操作系统上运行;

3)在运行时要先进行解释,语言执行效率较低。

1.4 解释型语言的执行方式