目录
2、计算机的发展——当今世界,唯一长达50年有效且按照指数发展的技术领域
3、摩尔定律Moore’s Law——可预见的未来30年,摩尔定律还将持续有效
(三)两类编程语言——静态语言和脚本语言(根据执行方式不同)
(二)问题的计算部分——一个待解决问题中,可以用程序辅助完成的部分
(一)Python语言概述(Guido van Rossum)
一、计算机与程序设计
(一)计算机
1、计算机的概念
计算机是根据指令操作数据的设备,具有功能性和可编程性两特性
功能性:对数据的操作,表现为数据计算、输入输出处理、结果存储
可编程性:根据一系列指令自动地、可预测地、准确地完成操作者的意图(体现:编程)
2、计算机的发展——当今世界,唯一长达50年有效且按照指数发展的技术领域
计算机的发展按照摩尔定律(Moore’s Law),表现为指数;计算机的功能和性能是交替交织发展的
计算机硬件所依赖的集成电路规模参照摩尔定律发展
计算机运行速度接近几何级数快速增长
计算机所能高效支撑的各类运算功能不断丰富发展
3、摩尔定律Moore’s Law——可预见的未来30年,摩尔定律还将持续有效
Inter公司创始人之一戈登·摩尔在1965年提出;
单位面积集成电路上可容纳晶体管的数量约每两年翻一番;
CPU/GPU、内存、硬盘、电子产品价格等都遵循摩尔定律。
(二)程序设计(编程)
深度应用计算机的主要手段
1、程序设计语言(编程语言)
用于交互的人造语言,是程序设计的具体实现方式,与自然语言相比,更简单、更严谨、更精确,主要用于人类与计算机的交互
编程语言有超过600种,绝大部分都不再被使用;
C语言诞生于1972年,是第一个被广泛使用的编程语言
Python语言诞生于1990年,是最流行最好用的编程语言
二、编译和解释(按照执行方式划分)
(一)源代码与目标代码
源代码:采用某种编程语言编写的计算机程序,人类可读(result=2+3)
目标代码:计算机可直接执行,人类不可读(设计CPU、计算机专家除外)(机器代码1101001000111011)
(二)编译与解释
编译——将源代码一次性转换成目标代码的过程(执行编译过程的程序叫作编译器compiler )è一次性翻译,之后不再需要源代码(类似英语翻译)
解释——将源代码根据代码的行数和执行方式逐条转换成目标代码同时逐条运行的过程(执行解释过程的程序叫作解释器interpreter)è每次程序运行时随翻译随执行(类似同声传译)
(三)两类编程语言——静态语言和脚本语言(根据执行方式不同)
静态语言:使用编译执行的程序语言(C/C++语言、Java语言等)编译器一次性生成目标代码,优化更充分,程序执行速度更快
脚本语言:使用解释执行的编程语言(Python语言、JavaScript语言、PHP语言)执行程序时需要源代码,维护更灵活,源代码在维护灵活、跨多个操作系统平台
三、程序的基本编写方法——IPO
(一)IPO
I Input输入,程序的输入(文件、网络、控制台、交互界面、内部参数的输入等)
P Process处理,程序的主要逻辑(是程序对输入数据进行计算产生输出结果的过程)
O Output输出,程序的输出(控制台、图形、文件、网络、操作系统内部变量的输出等)
输入是程序的开始,输出是程序展示运算结果的方式
处理方法统称为算法,它是程序最重要的部分,算法是一个程序的灵魂
(二)问题的计算部分——一个待解决问题中,可以用程序辅助完成的部分
计算机只能解决计算问题,即问题的计算部分
一个问题可能有多种角度理解,产生不同的计算部分
问题的计算部分一般都有输入、处理和输出过程
(三)编程解决问题的步骤
分析问题:分析问题的计算部分,想清楚
划分边界:划分问题的功能边界,规划IPO
设计算法:设计问题的求解算法,关注算法
编写程序:编写问题的计算程序,编程序
调试测试:调试程序使正确运行,运行调试
升级维护:适应问题的升级维护,更新完善
求解计算问题的精简步骤:
确定IPO:明确计算部分及功能边界
编写程序:将计算求解的设计变成现实
调试程序:确保程序按照正常逻辑能够正确运行
四、计算机编程
(一)为什么要学习编程
1、编程能够训练思维:编程体现了一种抽象交互关系、自动化执行的思维模式——计算思维:是区别与以数学为代表的逻辑思维和以物理为代表的实证思维的第三种思维模式,能够促进人类思考,增进观察力和深化对交互关系的理解。
2、编程能够增进认识:编程不单纯是求解计算问题,不仅要思考解决问题,还要思考用户体验、执行效率以及这个程序是否符合当下社会的需求等,能够帮助程序员加深用户行为以及社会和文化认识。
3、编程能够带来乐趣
编程能够提供展示自身思想和能力的舞台,让世界增加新的颜色、让自己变得更酷、提升心理满足,在信息空间里思考创新、让创新变为现实。
4、编程能够提高效率
能够更好利用计算机解决问题,显著提高工作、生活和学习效率,为理想的实现提供一种借助计算机的高效手段。
5、编程带来工作机会
计算机就业的标志性工具:编程能力
(二)学习编程的误区——难学
掌握方法就很容易!
首先,掌握编程语言的语法,熟悉基本概念和逻辑;
其次,结合计算问题思考程序结构,会使用编程套路;
最后,参照案例多练习多时间,学会举一反三。
五、Python开发环境配置
(一)Python语言概述(Guido van Rossum)
Python“蟒蛇”语言拥有者是Python Software Foundation(PSF),PSF是非盈利组织,致力于保护Python语言开放、开源和发展。
Python语言是一个由编程牛人领导设计并开发的编程语言,是一个有开放、开源精神的编程语言。应用于火星探测、搜索引擎、引力波分析等众多科学技术和与生活相关的开发领域。
(二)Python语言Windows系统开发环境
Python.org
(三)Python程序编写与运行
1、Python的两种编程方式——交互式、文件式
交互式:对每个输入语句即时运行结果,适合语法练习
文件式:批量执行一组语句并运行结果,编程的主要方式
实例1圆的面积(calcircle.py)
r=25
area=3.1415*r*r
print(area)
print("{:.2f}".format(area))
实例2绘制同切圆(tangentcircledraw.py)
import turtle
turtle.pensize(2)
turtle.circle(10)
turtle.circle(20)
turtle.circle(40)
turtle.circle(80)
turtle.circle(160)
实例3绘制一个五角星(stardraw.py)
from turtle import*
color("red","red")
begin_fill()
for i in range(5):
fd(200)
rt(144)
end_fill()
六、关于温度转换实例的分析
理解1 直接将温度值进行转换(计算部分)
理解2 将温度信息发布的声音或图像形式进行理解和转换(利用程序处理声音或图像等不同的输入格式)
理解3 利用程序自动监控或扒取温度信息发布渠道,实时获取并转换温度值(与网络通信与爬虫 与很多的信息处理相关系)
#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("输入格式错误")
上述温度转换一共10行代码,包含很多语法元素
清楚理解这10行代码能够快速入门Python语言
参考框架结构、逐行分析、逐词理解
七、Python程序语法元素分析
(一)程序的格式框架
代码高亮:编程的色彩辅助体系,不是语法要求
缩进:一行代码开始前的空白区域,表达程序的格式框架(上述一层缩进,还会有多层缩进)。严格明确:缩进是语法的一部分,缩进不正确程序运行错误;所属关系:表达代码间包含和层次关系的唯一手段;长度一致:程序内一致即可,一般用4个空格或1个TAB键或者其他数量
第一行#是注释,不被程序执行的辅助性说明信息,用来标记程序功能以及提高程序可读性的一种方式。单行注释 以#开头,其后内容为注释;多行注释 以’’’开头和结尾
(二)命名与保留字
TempStr、C、F是变量,用来保存和表示数据的占位符号,采用标识符来(名字)表示,关联标识符的过程叫命名。可以使用等号(=)向变量赋值或修改值,=被称为赋值符号。
命名规则:大小写字母、数字、下划线和汉字字符及组合(注意:大小写敏感、首字符不能是数字、不与保留字相同)
保留字(关键字):是被编程语言内部定义并保留使用的标识符,Python语言有33个保留字,eg.if elif else in ;保留字是编程语言的基本单词,大小写敏感,if是保留字,If是变量
(三)数据类型
供计算机程序理解的数据形式。
程序设计语言不允许存在歧义,需要定义数据的形式;通过一定方式向计算机表达数据的形式(“123”表示文本字符串123,123表示数字123)
1、数字类型:整数类型10011101 浮点数类型 1.8(-1.8)
2、字符串类型 “10,011,101”由0个或多个字符组成的有序字符序列,单双引号含义同,字符串是字符的有序序列,可以对其中的字符进行索引。“请”是“请输入带有符号的温度值:”的第0个字符=》字符串的序号:正向递增序号 与 反向递减序号
字符串的使用:使用[]获取字符串的一个或多个字符
索引:返回字符串中单个字符 <字符串>[M]
“请输入带有符号的温度值:”[0]获得第0个字符
TempStr [-1]表示获取TempStr变量字符串的倒数第一个字符
切片:返回字符串中一段字符子串<字符串>[M:N]
“请输入带有符号的温度值:”[1:3]表示取出其中的第1个、第2个字符但不到第3个字符 TempStr[0:-1]从0开始但不到最后一个字符串的字符字串,相当于去掉“:”1
3、列表类型 [10,011,101] [“C”,“F”],中间元素用(,)分离
使用保留字in判断一个元素是否在列表中
TempStr[-1] in [“C”,“c”]判断前者(字符串的最后一个字符)是否与列表中的某个元素相同(是不是C或c)
有的数据类型:字符串、整数、浮点数、列表
(四)语句与函数
1、赋值语句:由赋值符号构成的一行代码(=)
2、分支语句:由判断条件决定程序运行方向的语句,使用保留字if、elif、else构成条件判断的分支结构,每个保留字所在行最后存在一个冒号(:),是语法的一部分,表示如果条件为True则执行冒号后的语句,如果不成立则冒号及冒号后的缩进语句将会被跳过(冒号与及后续的缩进语句用来表示后续语句与条件的所属关系)
3、函数:根据输入参数产生不同输出的功能过程(input eval print)
(五)Python程序的输入与输出
1、输入:是程序获得外部信息的一个过程
输入函数input()(从控制台获得用户输入的函数)
使用格式:<变量>=input(<提示信息字符串>)
用户输入的信息以字符串类型保存在<变量>中
TempStr=input(“请输入”) TempStr保存用户输入的信息
2、输出:
输出函数print()(以字符形式向控制台输出结果的函数)
使用格式:print(<拟输出字符串或字符串变量>)
字符串类型的一对引号仅在程序内部使用,输出无引号
Print(“输入格式错误”)向控制台输出 输入格式错误”
Print函数的格式化:
Print(“转换后的温度是{:.2f}C”.format(C))
{}表示槽,后续变量填充到槽中
{:.2f}表示将变量C填充到这个位置时取小数点后2位
评估函数eval()去掉参数最外侧引号并执行余下语句的函数
#eval(““1+2””)“1+2”