1.1 程序设计基本方法
1.1.1 计算机与程序设计
计算机的概念
-功能性
对数据的操作,表现为数据计算、输入输出处理和结果存储等。
-可编程性
根据一系列指令自动地、可预测地、准确地完成操作者的意图。
计算机的发展
计算机的发展参照摩尔定律,表现为指数方式。
-计算机硬件所依赖的集成电路规模参照摩尔定律发展;
-计算机运行速度因此也接近几何级数快速增长;
-计算机所能高效支撑的各类运算功能不断丰富发展。
-当今世界,唯一长达50年有效且按照指数发展的技术领域;
-计算机深刻改变人类社会,甚至可能改变人类本身;
-可预见的未来30年,摩尔定律还将持续有效。
摩尔定律Moore's Law
计算机发展历史上最重要的预测法则。
-Intel公司创始人之一 戈登·摩尔 在1965年提出;
-单位面积集成电路上可容纳晶体管的数量约每两年翻一番;
-CPU/GPU、内存、硬盘、电子产品价格等都遵循摩尔定律
程序设计
程序设计是计算机可编程性的体现。
-程序设计,亦称编程,深度应用计算机的主要手段;
-程序设计已经成为当今社会需求量最大的职业技能之一;
-很多岗位都将被计算机程序接管,程序设计将是生存技能。
程序设计语言
程序设计语言是一种用于交互(交流)的人造语言。
-程序设计语言,亦称编程语言,程序设计的具体实现方式;
-编程语言相比自然语言更简单、更严谨、更精确;
-编程语言主要用于人类和计算机之间的交互。
编程语言种类很多,但生命力强劲的却不多。
-编程语言有超过600种,绝大部分都不再被使用;
-C语言诞生于1972年,它是第一个被广泛使用的编程语言;
-Python语言诞生于1990年,它是最流行最好用的编程语言。
1.1.2 编译和解释
编程语言的执行方式
-源代码:采用某种编程语言编写的计算机程序,人类可读。
例如:result=2+3
-目标代码:计算机可直接执行,人类不可读(专家除外)。
例如:11010010 00111011
编译:一次性翻译,之后不再需要源代码(类似英文翻译)
将源代码一次性转换成目标代码的过程。
Compiler
源代码-->编译器-->目标代码
|
程序输入--> 程序执行-->结果输出
解释:每次程序运行时随翻译随执行(类似实时的同声传译)
将源代码逐条转换成目标代码同时逐条运行的过程。
源代码
\
\ interpreter
> 解释器-->结果输出 (执行解释过程的程序叫作解释器)
/
/
程序输入
静态语言和脚本语言
根据执行方式不同,编程语言分为两类
-静态语言:使用编译执行的编程语言
C/C++语言、Java语言
-脚本语言:使用解释执行的编程语言
Python语言、JavaScript语言、PHP语言
执行方式不同,优势各有不同。
-静态语言:编译器一次性生成目标代码,优化更充分、程序运行速度更快
-脚本语言:执行程序时需要源代码,维护更灵活,源代码在维护灵活、跨多个操作系统平台
1.1.3 程序的基本编写方法
IPO
程序的基本编写方法
-I: Input输入,程序的输入
-P: Process处理,程序的主要逻辑
-O: Output输出,程序的输出
理解IPO
输入
-程序的输入
文件输入、网络输入、控制台输入、交互界面输入、内部参数输入等。
-输入是一个程序的开始
输出
-程序的输出
控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等。
-输出是程序展示运算结果的方式
处理
-处理是程序对输入数据进行计算产生输出结果的过程
-处理方法统称为算法,它是程序最重要的部分
-算法是一个程序的灵魂
问题的计算部分
一个待解决问题中,可以用程序辅助完成的部分
-计算机只能解决计算问题,即问题的计算部分;
-一个问题可能有多种角度理解,产生不同的计算部分;
-问题的计算部分一般都有输入、处理和输出过程。
编程解决问题的步骤
6个步骤
-分析问题:分析问题的计算部分,想清楚;
-划分边界:划分问题的功能边界,规划IPO;
-设计算法:设计问题的求解算法,关注算法;
-编写程序:编写问题的计算程序,编程序;
-调试测试:调试程序使正确运行,运行调试;
-升级维护:适应问题的升级维护,更新完善。
求解计算问题的精简步骤
-确定IPO:明确计算部分及功能边界;
-编写程序:将计算求解的设计变成现实;
-调试程序:确保程序按照正确逻辑能够正确运行。
1.1.4 计算机编程
计算机编程
编程能够训练思维
-编程体现了一种抽象交互关系、自动化执行的思维模式;
-计算思维:区别逻辑思维和证实思维的第三种思维模式;
-能够促进人类思考,增进观察力和深化对交互关系的理解。
编程能够增进认识
-编程不单纯是求解计算问题;
-不仅要思考解决方法,还要思考用户体验,执行效率等;
-能够帮助程序员加深用户行为以及社会和文化认识。
编程能够带来乐趣
-编程能够提供展示自身思想和能力的舞台;
-让世界增加新的颜色、让自己变得更酷、提升心理满足;
-在信息空间里思考创新、将创新变为现实
编程能够提高效率
-能够更好地利用计算机解决问题;
-显著提高工作、生活和学习效率;
-为理想的实现提供一种借助计算机的高效手段
编程带来就业机会
-程序员是信息时代最重要的工作岗位之一;
-国内外对程序员岗位的缺口都在百万以上闺规模;
-计算机已经渗透于各个行业,就业前景非常广阔
单元小结
程序设计基本方法
计算机的功能性和可编程性;
编译和解释、静态语言和脚本语言;
IPO、理解问题的计算部分;
掌握计算机编程的价值
1.2 Python开发环境配置
1.2.1 Python语言概述
Python译为“蟒蛇”;
Python语言拥有者是Python Software Foundation(PSF);
PFS是非盈利组织,致力于保护Python语言开放、开源和发展
Guido 1989年度假打发时间编写了Python
Python3是主流
Python命名灵感来源于一个喜剧组合
-Python语言是一个由编程牛人领导设计并开发的编程语言;
-Python语言是一个有开放、开源精神的编程语言;
-Python语言应用于火星探测、搜索引擎、引力波分析等众多领域
1.2.2 Python语言Windows/Mac/Linux系统开发环境
1.2.3 Python语言Web系统开发环境
1.2.4 Python程序编写与运行
Python的两种编程方式
交互式和文件式
-交互式:对每个输入语句即时运行结果,适合语法练习
-文件式:批量执行一组语句并运行结果,编程的主要方式
实例1:圆面积的计算
根据半径r计算圆面积
交互式
>>>r=25
>>>area=3.1415*r*r
>>>print(area)
1963.4375000000002
>>>print("{:.2f}".format(area))
1963.44
文件式
r=25
area=3.1415*r*r
print(area)
print("{:.2f}".format(area))
输出结果如下:
1963.4375000000002
1963.44
实例2:同切圆绘制
绘制多个同切圆
交互式
>>>import turtle
>>>turtle.pensize(2)
>>>turtle.circle(10)
>>>turtle.circle(40)
>>>turtle.circle(80)
>>>turtle.circle(160)
文件式
import turtle
turtle.pensize(2)
turtle.circle(10)
turtle.circle(40)
turtle.circle(80)
turtle.circle(160)
实例3:五角星绘制
绘制一个五角星
交互式
>>>from turtleimport*
>>>color('red','red')
>>>begin_fill()
>>>for i in range(5):
fd(200)
rt(144)
>>>end_fill()
>>>
单元小结
程序设计基本方法
Python语言的发展历史
选取一种系统平台构建Python开发环境
尝试编写与运行3个Python小程序
1.3 实例1:温度转换
1.3.1“温度转换”问题分析
温度转换
温度刻画的两种不同体系
-摄氏度:中国等世界大多数国家使用
以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画
-华氏度:美国、英国等国家使用
以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画
需求分析
两种温度体系的转换
-摄氏度转换为华氏度
-华氏度转换为摄氏度
问题分析
该问题中计算部分的理解和确定
-理解1:直接将温度值进行转换
-理解2:将温度信息发布的声音或图像形式进行理解和转换
-理解3:监控温度信息发布渠道,实时获取并转换温度值
分析问题
-采用理解1:直接将温度值进行转换
温度数值需要表明温度体系,即摄氏度或华氏度
转换后也需要给出温度体系
划分边界
-输入:带华氏或摄氏标志的温度值
-处理:根据温度标志选择适当的温度转换算法
-输出:带摄氏或华氏标志的温度值
输入输出格式
标识放在温度最后,F表示华氏度,C表示摄氏度
82F表示华氏82度,28C表示摄氏28度
设计算法
根据华氏和摄氏温度定义,利用转换公式如下:
C=(F-32)/1.8
F=C*1.8+32
其中,C表示摄氏温度,F表示华氏温度
1.3.2“温度转换”实例编写
#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.3.3"温度转换"实例举一反三
举一反三
Python语法元素理解
-温度转换程序共10行代码,但包含很多语法元素
-清楚理解这10行代码能够快速入门Python语言
-参考框架结构、逐行分析、逐词理解
输入输出的改变
-温度数值与温度标识之间关系的设计可以改变
-标识改变放在温度数值之前:C82,F28
-标识字符改变为多个字符:82Ce、28F
计算问题的扩展
-温度转换问题是各类转换问题的代表性问题
-货币转换、长度转换、重量转换、面积转换
-问题不同,但程序代码相似
1.4 Python程序语法元素分析
单元开篇
Python程序语法元素分析
-程序的格式框架
-命名与保留字
-数据类型
-语句与函数
-Python程序的输入输出
-“温度转换”代码分析
1.4.1程序的格式框架
![](https://img-blog.csdnimg.cn/img_convert/d88ca8f4ae9ac0732322a498deafb642.jpeg)
-代码高亮:编程的色彩辅助体系,不是语法要求
![](https://img-blog.csdnimg.cn/img_convert/660d11a23cb390d9f3c5051ca9aefc32.jpeg)
-缩进:一行代码开始前的空白区域,表达程序的格式框架
![](https://img-blog.csdnimg.cn/img_convert/fce13d63e2613539d1f5b0081373e65b.jpeg)
缩进
缩进表达程序的格式框架
-严格明确:缩进是语法的一部分,缩进不正确程序运行错误
-所属关系:表达代码间包含和层次关系的唯一手段
-长度一致:程序内一致即可,一般用4个空格或1个TAB
注释
![](https://img-blog.csdnimg.cn/img_convert/0648f9244c3e71043490de84d90be5b9.jpeg)
-注释:用于提高代码可读性的辅助性文字,不被执行
不被程序执行的辅助性说明信息
-单行注释:以#开头,其后内容为注释
# 这里是单行注释
-多行注释:以'''开头和结尾
'''这是多行注释第一行
这是多行注释第二行'''
1.4.2命名与保留字
![](https://img-blog.csdnimg.cn/img_convert/49179c4f8e32996a7489f467620afc9a.jpeg)
-变量:程序中用于保存和表示数据的占位符号
变量
用来保存和表示数据的占位符号
-变量采用标识符(名字)来表示,关联标识符的过程叫命名
TempStr是变量名字
-可以使用等号(=)向变量赋值或修改值,=被称为赋值符号
TemStr="82F"#向变量TemStr赋值"82F"
关联标识符的过程
-命名规则:大小写、字母、下划线和汉字等字符及组合
如:TemStr,Python_Great,这是门Python好课
-注意事项:大小写敏感、首字符不能是数字、不与保留字相同
Python和python是不同变量,123Python是不合法的
保留字
被编程语言内部定义并保留使用的标识符
-Python语言有33个保留字(也叫关键字)
if,elif,else,in
-保留字是编程语言的基本单词,大小写敏感
if是保留字,If是变量
![](https://img-blog.csdnimg.cn/img_convert/5eb4dd4a6213eabdb1c3307931e360ef.jpeg)
1.4.3数据类型
数据类型
供计算机程序理解的数据形式
-程序设计语言不允许存在语法歧义,需要定义数据的形式
需要给10,011,101关联一种计算机可以理解的形式
-程序设计语言通过一定方式向计算机表达数据的形式
"123"表示文本字符串123,123则表示数字123
10,011,101
-整数类型:10011101
-字符串类型:“10,011,101”
-列表类型:[10,011,101]
-字符串:
*由0个或多个字符组成的有序字符序列
*字符串由一对单引号或一对双引号表示
*字符串是字符的有序序列,可以对其中的字符进行索引
字符串的序号
正向递增序号和反向递减序号
使用[]获取字符串中一个或多个字符
-索引:返回字符串中单个字符 <字符串>[M]
-切片:返回字符串中一段字符子串 <字符串>[M:N](不包括最后一个字符)
数字类型:整数和浮点数
-整数 数学中的整数
-浮点数 数学中的实数,带有小数的部分
列表类型:由0个或多个数据组成的有序序列
-列表使用[]表示,采用逗号(,)分隔各元素
-使用保留字in判断一个元素是否在列表中
1.4.4语句与函数
赋值语句
由赋值符号构成的一行代码
-赋值语句用来给变量赋予新的数据值
-赋值语句右侧的数据类型同时作用于变量
分支语句
由判断条件决定程序运行方向的语句
-使用保留字if elif else构成条件判断的分支结构
-每个保留字所在行最后存在一个冒号(:),语法的一部分
冒号及后续缩进用来表示后续语句与条件的所属关系
函数
根据输入参数产生不同输出的功能过程
-类似数学中的函数,y=f(x)
-函数采用<函数名>(<参数>)方式使用
1.4.5 Python程序的输入输出
输入函数input()
从控制台获得用户输入的函数
-input()函数的使用格式:
<变量>=input(<提示信息字符串>)
-用户输入的信息以字符串类型保存在<变量>中
输出函数print()
以字符形式向控制台输出结果的函数
-print()函数的基本使用格式:
print(<拟输出字符串或字符串变量>)
-字符串类型的一对引号仅在程序内部使用,输出无引号
-print()函数的格式化:
print("转换后的温度是{:.2f}C".format(C))
{}表示槽,后续变量填充到槽中
{:.2f}表示将变量C填充到这个位置时取小数点后2位
评估函数eval()
去掉参数最外侧引号并执行余下语句的函数
1.4.6"温度转换" 代码分析
#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("输入格式错误")
单元小结
Python程序语法元素分析
-缩进、注释、命名、变量、保留字
-数据类型、字符串类型、字符串、整数、浮点数、列表
-赋值语句、分支语句、函数
-input()、print()、eval()、print()格式化