第一章:Python语言程序设计

关于课程:

  • 课程作者为北京理工大学教授嵩天
  • 课程视频连接地址为中国大学Mooc平台
  • 课程辅助平台为Python123
  • 学习账号是微信账号登陆:昵称为coke

1-1节:程序设计的基本方法

  • 计算机与程序设计
  • 编译和解释
  • 程序的基本编写方法
  • 计算机编程
  • 1-1单元小结

计算机与程序设计

计算机的概念:计算机是根据指令操作数据的设备,具有功能性和可编程性。功能性:是指对计算机的操作,表现为数据的计算,输入输出的处理和结果存储等。可编程性:根据一系列指令自动地、可预测性、准确的完成操作者的意图。
计算机的发展:参照摩尔定律发展,按照指数形式发展。计算机硬件所依赖的集成电路规模参照摩尔定律发展。计算机运行速度因此也接近几何级数快速增长。计算机所能高效支撑的各类运算功能不断丰富发展。由此可见计算机的功能和性能是交替和交织发展的。
摩尔定律:Moore's Law是计算机发展历史上最重要的预测法则,由Intel公司的创始人之一戈登摩尔1965年提出:单位面积集成电路上可容纳晶体管的数量约每两年翻一番。CPU/GPU、内存、硬盘、电子产品价格等都遵循摩尔定律。
程序设计:程序设计是计算机可编程的体现,亦成为编程,深度应用计算机的主要手段。程序设计已经成为当前社会需求量最大的职业技能之一。很多岗位即将被计算机程序接管,程序设计将是生存技能。
程序设计语言:是一种用于交互(交流)的人造语言,又称为编程语言,程序设计的具体实现方式,程序语言比自然语言更简单、严谨、精确。主要用于人类与计算机之间的交互。同样的代码计算机必须只有一种理解,这是程序设计语言必须要达到的效果。此外编程语言要告诉计算机其中数据的特性及特点,使得计算机的操作更加精确。

编译和解释

在了解编译和解释之前,我们需要率先查看程序是如何执行在计算机之上的。
编程语言的执行方式:
1、源代码,采用某编程语言编写,人类可读,如:result = 2 + 3,将运算结果赋值给变量result
2、目标代码,计算机可直接执行,人类不可读(专家除外),例如:11101010 01010010

下面这段执行的过程叫做编译,执行编译过程的程序称为编译器:编译可以理解为一次性翻译,之后不需要源代码(类似英文翻译)

第一章:Python语言程序设计_第1张图片
编译.JPG

下面这段执行的过程叫做解释,执行解释过程的程序称为解释器:解释可以理解为每次程序运行时随翻译随执行(类似实时的同声传译)
第一章:Python语言程序设计_第2张图片
解释.JPG

静态语言和脚本语言:静态语言是指使用编译执行的编程语言,C/C++语言、Java语言(一次性生成目标代码,优化更充分,程序运行速度更快)。脚本语言是指使用解释执行的编程语言,Python语言、PHP语言、JavaScript语言(执行程序时需要源代码,维护更加灵活,跨多个操作系统平台)。

程序的基本编写方法

IPO编程规范

I:input输入,程序的输入;P:press处理,程序的主要逻辑;O:output输出,程序的输出;
首先,需要理解IPO,输入是什么?输出是什么?如何从输入达到输出。
程序的输入:文件输入、网络输入、控制台输入、交互界面输入、内部参数输入等。输入是一个程序的开始
程序的输出:经过处理后,程序将结果通过控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等。输出是程序展示预算结果的方式
程序的处理:处理是程序对输入数据进行计算产生输出结果的过程;处理方法统称为算法,它是程序最重要的部分,算法是一个程序的灵魂。

编程问题的解决步骤(计算为主,IPO编写方法为辅):


第一章:Python语言程序设计_第3张图片
IPO与解决示例问题的关联.JPG

关于算法的需求分析(计算为主,IPO编写方法为辅):


第一章:Python语言程序设计_第4张图片
关于算法的需求分析.JPG

完成上述步骤之后,才真正的设计到编写程序:


第一章:Python语言程序设计_第5张图片
编写程序的后半部分步骤.JPG

最终呢,嵩天老师将编程的步骤凝练缩减为简单的三步骤:


第一章:Python语言程序设计_第6张图片
程序编写的3个精简步骤.JPG

计算机编程

编程能够训练思维,编程体现了一种抽象交互关系,自动化执行的思维模式,编程能够,编程不是单纯的求解问题,还要思考用户体验,执行效率,编程能够帮助程序员加深用户行为及社会和文化认识,编程能够,编程能够提供展示自身思想和能力的舞台,让世界增加新的颜色、让自己变得更酷、提升心里满足。在信息空间里思考创新、将创新变位现实。编程能够,能够更好的利用计算机解决问题,显著的提高工作、生活和学习效率,也是为理想的实现提供一种借助计算机的高效手段。编程带来程序员是信息时代最重要的岗位之一,国内外对程序员岗位的缺口在百万以上规模,计算机已经渗透于各个行业,就业前景非常广阔。

计算机思维:区别逻辑思维(数学为代表)和实证思维(物理为代表)之外的第三种思维模式。

学习计算机编程的误区:


第一章:Python语言程序设计_第7张图片
编程的误区.JPG

1-1单元小结

单元小结,通过这部分内容让大家建立计算机、程序设计以及程序设计价值这样一些基础的认识,为我们进一步学习做好铺垫:


第一章:Python语言程序设计_第8张图片
总结.JPG

1-2节:Python开发环境配置(略)

1-3节:示例1:温度转换

  • 温度的两种体系
  • 温度转换的需求分析
  • 问题分析
  • 设计算法
  • 输入输出
  • 举一反三

温度的两种体系

1、摄氏度,中国等大多数国家使用,以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画。
2、华氏度,美、英国等国家使用,以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画。

温度转换的需求分析

1、将摄氏度转换为华氏度
2、将华氏度转换为摄氏度

问题分析

针对问题的计算部分进行分析并理解,最终确定:
1、理解一:直接将温度进行转换
2、理解二:将温度信息发布的声音或图像形式进行理解和转换(例如将电视或者其他音频媒介获取到温度的值,利用程序处理该场景的温度转换)
3、理解三:监控温度信息发布渠道,实时获取并转换温度值(该理解需要与网络的通信、爬虫及很多的信息处理相结合)
这里我们采用理解1:直接将温度值进行转换;

  • 温度数值需要标明温度体系,及摄氏度或华氏度
  • 转换后也需要给出另外的温度体系标明

在分析问题的基础上,这里我们进行IPO的,按照编程规范重构该问题。

  • 输入:携带摄氏或华氏的温度值
  • 处理:根据温度标志选择适当的温度转换算法
  • 输出:携带摄氏或华氏的温度值
    这样我们就完成了IPO的边界划分,针对输入输出的格式这里需要设计并声明一下,标示放在温度最后,F标示华氏度,C标示摄氏度,例如:82F表示华氏82度,28C表示摄氏28度

设计算法

根据华氏和摄氏的定义,利用转换公式如下:

C=(F-32)/1.8
F=C*1.8+32+32

\color{red}{ 从问题的输入输出——到中间的处理过程,我们已经分析清楚了,下面让我们开始编程吧!}

#TempConvert.py
TempStr = input("请输入带有符号的温度值")
if TempStr[-1] in ['f','F']:
    C = (eval(TempStr[0:-1]) - 32)/1.8
    print("转换后的温度是{:.2f}C".format(C))
elif TempStr[-1] in ['c','C']:  
    F = 1.8*eval(TempStr[0:-1]) + 32
    print("转换后的温度是{:.2f}F".format(F))
else:
    print("输入格式错误")

举一反三:

  • 输入输出的改变
    温度数值与温度标示之间的关系设计可以改变:
    1、标示改变放在数值之前:C82,F28
    2、标示字符改变为多个字符:82Ce、28F
  • 计算问题的扩展
    温度转换问题是各类转换问题的代表性问题:
    1、货币转换、长度转换、重量转换、面积转换...
    2、问题不同,但是程序代码是相似的

1-4Python元素语法分析

  • 输入输出
  • 数据类型
  • 语句与函数
  • 代码分析
  • 1-4单元小结

输入输出

  • input()从控制台获得用户的输入
    1、input()函数的基本使用格式
    <变量> = input(<提示信息字符串>)
    2、输入信息的格式
    用户输入的信息以字符串类型保存在<变量>中,如:TempStr = input("请输入")#TempStr保存用户输入的信息

  • print()以字符形式向控制台输出结果的函数
    1、print()函数的基本使用格式
    print(<拟输出字符串或字符串变量>)
    2、字符串类型的一对引号仅在程序内部使用,输出无引号
    如:print("输入格式错误")#向控制台输出 输入格式错误
    3、print()格式化的操作方法
    如:print("转换后的温度是{:.2f}C".format(C))#{:.2f}大括号标示槽,后续变量填充到槽中


    第一章:Python语言程序设计_第9张图片
    输出函数格式化.JPG
  • 除输入输出函数外,这里还有一个eval()评估函数

1、这个函数很有趣,功能为:去掉函数最外侧引号并执行余下语句的函数
2、


第一章:Python语言程序设计_第10张图片
评估函数.JPG

根据该10行代码对Python语法元素进行理解,清楚理解这10行代码将能够快速入门Python语言,接下来让我们参考框架、逐行分析、逐词理解:

1、下列代码中的颜色,是编程的色彩辅助体系,不是语法要求;
2、缩进是一行代码开始前的空白区域,表达程序的格式框架;
3、 “#注释”用于提高代码可读性的辅助文字,不被执行;
4、命名与保留字,TempStr、C、F,这些字符成为变量,程序中用于保存和表示数据的占位符号,可以使用等号(=)向变量赋值或修改值,=被成为赋值符号 。比如TempStr=“82F”#向变量TempStr赋值“82F”。

关于命名需要注意以下问题:

  • 为变量关联标识符的过程叫做命名,命名规则:大小写字母、数字、下划线和汉字等字符及组合,如:TempStr,Python_Great,这是门Python好课
  • 注意事项:大小写敏感、首字符不能是数字、不与保留字相同,Python与python是不同变量,123python是不合法的变量命名。
  • 保留字,被编程语言内部定义并保留使用的标识符,Python一共33个保留字,比如:if,else,elif,in如果是大写的IF可以作为变量使用,但是if不可以当做变量使用,我们学习一门语言,至少需要了解涉及哪些单词,下列的保留字就是python语言中的33个单词:


    第一章:Python语言程序设计_第11张图片
    Python的33个保留字.JPG

数据类型

关于数据类型,比如10,111,101:

  • 首先如果不去定义该数字,可以标示为二进制也可以表示为十进制,甚至是一段字符,计算机语言是一门精确的表达语言,因此我们需要用不同的方式指定想要表达的数据类型
  • 如果想要表达为字符串类型:“10111101”或者‘10111101’
  • 如果想要表达为整数类型:10111101
  • 如果想要表达为列表类型:[10,111,101]


字符串的序号有两种表示方式,正向递增序号和反向递减序号(用于字符串的索引和切片操作)

  • 索引:返回字符串中单个字符 <字符串或者字符串变量的后面>[M],其中M书写为数值,不同数值代表不同含义
    例如:或者 TempStr[-1],其中[0]代表获取数值,[-1]代表获取温度的标示符号
  • 切片:返回字符串中一段字符子串 <字符串或者字符串变量的后面>[M:N]
    例如:或者TempStr[0:-1],[1:3]表示取出字符串中的第1、2个字符,但是不到第3个字符。[0:-1]表示从0开始但是不到字符串的最后一位,也就是剔除了字符串的最后一位,代码中利用TempStr[0:-1]来截取用户输入的82F中的数值:82

第一章:Python语言程序设计_第12张图片
字符串的表示方法.JPG

代码中的数字例如32、1.8,32为整数类型(整数包含正整数和负整数,如32、-32),1.8则是浮点数类型(浮点数是数学中的实数,带有小数部分,如1.8、-1.8、 -1.0):


第一章:Python语言程序设计_第13张图片
Python的数据类型.JPG

第一章:Python语言程序设计_第14张图片
列表类型.JPG

语句与函数

  • 赋值语句
  • 分支语句
  • 函数

赋值语句

首先我们先观察这段代码,其中有三行代码都有赋值符号的产生,由赋值符号构成的代码,我们称为赋值语句,用来给变量赋予新的数据值:
比如这行代码:C = (eval(TempStr[0:-1]) - 32)/1.8#将右侧的运算结果赋值给变量C

第一章:Python语言程序设计_第15张图片
语句与函数

分支语句

由判断条件决定程序运行方向的语句称之为分支语句


第一章:Python语言程序设计_第16张图片
分支语句.JPG
  • 代码中if TempStr[-1] in ['f','F']:#这行代码结尾处以冒号结尾,代表如果条件判断为True则执行冒号后的语句
  • 每个保留字所在行最后存在一个冒号(:),冒号属于语法的一部分,不能省略
  • 冒号及后续缩进用来表示后续语句与条件的所属关系

何为函数

根据输入参数产生不同输出的功能过程

  • Python使用的函数类似数学的函数,y=f(x)
    print("输入格式错误")#打印函数输出”输入格式错误“
  • Python函数采用<函数名>(<参数>)方式使用
    (eval(TempStr[0:-1])#这里TempStr[0:-1]是函数的参数

代码分析

#这是单行注释
···
这是多行注释
这是多行注释
···
#TempConvert.py,这是一行注释
#使用input函数从控制台获取一个信息,以字符串形式赋值给变量TempStr
TempStr = input("请输入带有符号的温度值")
#保留字表达分支语句,用保留字in判断最后一个字符是否在列表中
if TempStr[-1] in ['f','F']:
#将TempStr字符串去除最后一位符号并使用eval评估运算后转换为数字类型,从而参与公式运算并将结果赋值给变量C
    C = (eval(TempStr[0:-1]) - 32)/1.8
#将变量C的结果格式化为保留小数点后两位后输出
    print("转换后的温度是{:.2f}C".format(C))
#关键字elif是分支语句,用保留字in判断用户输入的信息是否在列表内
elif TempStr[-1] in ['c','C']:  
#将TempStr字符串去除最后一位符号并使用eval评估运算后转换为数字类型,从而参与公式运算并将结果赋值给变量F
    F = 1.8*eval(TempStr[0:-1]) + 32
    print("转换后的温度是{:.2f}F".format(F))
#根据以上两个分支语句判断,如不符合以上分支的初始华条件,说明无法正常获取温度范围,则给予错误提示
else:
    print("输入格式错误")

1-4单元小结

第一章:Python语言程序设计_第17张图片
1-4单元小结.JPG

你可能感兴趣的:(第一章:Python语言程序设计)