开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第30天,点击查看活动详情
第一周课程导学
前课复习
本周概要
方法论
程序的基本编写方法:IPO
看懂10行左右简单的Python代码
1.1程序设计基本方法
单元开篇
程序设计基本方法
- 计算机与程序设计
- 编译和解释
- 程序的基本编写方法
- 计算机编程
计算机与程序设计
概念:计算机是根据指令操作数据的设备
功能性:对数据的操作,表现为数据计算,输入输出处理和结果存储等
可编程性:根据一系列指令自动地,可预测地,准确地完成操作者的意图
计算机的发展:
- 计算机的发展参照摩尔定理,表现为指数方式
- 计算机硬件所依赖的集成电路规模参照摩尔定律发展
- 计算机运行速度因此接近几何级数快速增长
- 计算机所能高效支撑的各类运算功能不断丰富发展
摩尔定律
- 是计算机发展历史上最重要的预测法则
- 单位面积集成电路上可容纳晶体管的数量约每两年翻一番
- CPU/GPU、内存、硬盘、电子产品价格等都遵循摩尔定律
程序设计语言
- 是一种用于交互(交流)的人造语言
- 也叫做编程语言,是程序设计的具体实现方式
- 与自然语言相比,更简单,更严谨,更精确
- 编程语言是用于人类与计算机之间的交互
编译与解释
源代码:采用某种编程语言编写的计算机程序,人类可读
目标代码:计算机可以直接执行,人类不可读(专家除外)11010010 0111010之类的
编译:将源代码一次性转换成目标代码的过程
解释:将源代码逐条转换成目标代码同时逐条运行的过程。
执行解释过程的程序叫做解释器
编译相当于一次性翻译。解释相当好与每次程序运行时随翻译随执行(类似实时的同声传译)
静态语言和脚本语言
静态语言
- 使用编译执行的编程语言。例如:C语言、C++、java语言
脚本语言
- 使用解释执行的编程语言。比如Python语言、JavaScript语言、PHP语言
两者之间的区别除了执行方式不同之外其他差不多
执行方式不同,优势各有不同
静态语言 编译器一次性生成目标代码,优化更充分(程序运行速度更快)
脚本语言 执行程序时需要源代码,维护更灵活(源代码在维护灵活、跨越多个操作系统平台运行)
程序的基本编写方法
IPO:程序的基本编写方法
I:Input输入,程序的输入
P:Process处理,程序的主要逻辑
O:Output输出,程序的输出
输入:程序的输入
- 文件输入、网络输入、控制台输入、交互页面输入、内部参数输入等等
- 输入是程序的开始
输出:程序的输出
- 控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等等
- 输出是程序展示运算结果的方式
处理
- 处理是程序对输入数据进行计算产生输出结果的过程
- 处理方法统称算法,它是程序最重要的部分
- 算法是一个程序的灵魂
问题的计算部分
- 一个待解决问题中,可以用程序辅助完成的部分
- 计算机只能解决计算问题,即问题的计算部分被
- 一个问题可能有多咋角度理解,产生不同的计算部分
- 问题的计算部分都有输入、处理和输出过程
计算机编程
单元小结
1.2Python开发环境配置
单元开篇
Windows系统开发环境
Python语言概述
- Python语言是一个由编程牛人领导设计并开发的编程语言
- Python语言是一个有开放、开源精神的编程语言
- Python语言应用于火星探测、搜索引擎、引力波分析等众多领域
Python语言Windows系统开发环境
Python程序编写与运行
交互式和文件式
- 交互式:对每个输入语句即时运行结果,适合语法练习
- 文件式:批量执行一组语句并运行结果,编程的主要方式
计算圆的面积(文件式)
r = 25
area = 3.1415* r * r
print(area) "输出1963.4375000000002"
print("{:.2f}".format(area)) "输出1963.44"
保存为CalCircle.py文件并运行
同切圆绘制
绘制多个同切圆(交互式)
import turtle
turtle.pensize(2)
turtle.circle(10)
turtle.circle(40)
turtle.circle(80)
turtle.circle(160)
保存为TangentCirclesDraw.py文件并运行
五角星的绘制
交互式:
from turtle import *
color('red','red')
begin_fill()
for i in range(5):
fd(200)
rt(144)
end_fill()
保存为StarDraw.py文件并运行
单元小结
1.3实例:温度转换
"温度转换"问题分析
-
摄氏度:中国等世界大多数国家使用
- 以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画
-
华氏度:美国英国等国家使用
- 以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画
需求:两种温度体系的转换
- 理解1:直接将温度值进行转换
- 理解2:将温度信息发布的声音或图像形式进行理解和转换
- 理解3:监控温度信息发布渠道,实时获取并转换温度值
这里采用理解1
F表示华氏度,C表示摄氏度
转换公式如下
C = (F - 32 ) / 1.8
F = C * 1.8 + 32
代码编写
#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("输入格式错误")
并将其保存为TempConvert.py文件
"温度转换"实例编写
在上面
"温度转换"举一反三
1.4Python程序语法元素分析
单元开篇
程序的格式框架
代码高亮:。。。。省略
缩进:表达程序的格式框架
- 严格明确:缩进是语法的一部分,缩进不正确,程序运行错误
- 所属关系:表达代码间包含和层次关系的唯一手段
- 长度一致:程序内一致即可,一般用4个空格或一个TAB
注释:
- 单行注释:以#开头,其后的内容为注释
- 多行注释:以" "开头和结尾的
命名与保留字
变量:采用标识符(名字)来表示,关联标识符的过程叫做命名
关联标识符
- 命名规则:大小写字母、数字、下划线和汉字等字符及组合
- 注意事项:大小写敏感、首字母不能是数字、不与保留字相同
- 保留字:Python的保留字有if,elif,else,in等等。是Python的基本单词
- 红色的单词是这门课不会涉及到的部分
数据类型
- 温度转换代码中包括了:字符串、整数、浮点数、列表
供计算机程序理解的数据形式
-
程序设计语言不允许存在语法歧义,需要定义数据的形式
- 需要给....关联一种计算机可以理解的形式
-
程序设计语言通过一定方式向计算机表达数据的形式
-
字符串:由0或者多个字符组成的有序字符序列
-
字符串的序号:
- 正向递增序号(从0开始)
- 反向递减序号(就是反着看,从-1往后)
-
使用[]获取字符串中的一个或多个字符
-
索引:返回字符串中单个字符 <字符串>[M]
- 例如:"请输入带有符号的温度值:"[0] 得到"请"字或者TempStr[-1]——表示获取TempStr的倒数第一个字符
-
切片:返回字符串中一段字符子串 <字符串>[M:N]
- 例如:"请输入带有符号的温度值:"[1:3]——意思是取出其中的第一个字符,第二个字符,但不到第三个字符
- TempStr[0:-1]——表示从0开始但不到字符串的最后一个字符的字符字串。相当于一整句中把最后一个字去掉
-
列表类型
-
由0个或者多个数据组成的有序序列
- 列表使用[]表示,采用逗号(,)分隔各元素
- ['F','f']表示两个元素'F'和'f'
-
使用保留字in判断一个元素是否在列表中
- 例如:TempStr[-1] in ['C','c]判断前者是否与列表中某个元素相同——就是说TempStr的最后一个字符是不是大写或小写的c。结果返回布尔值
语句与函数
C = (eval(TempStr[0:-1]) - 32 )/1.8"右侧运算结果赋给变量C"
在python中使用保留字 if elif else构成条件判断的分支结构
函数
-
根据输入参数产生不同输出的功能过程
-
类似数学中的函数,y = f(x)
-
函数采用<函数名>(<参数>)方式使用
- eval(TempStr[0:-1]) #TempStr[0:-1]是参数
-
输入函数input()
- 从控制台获得用户输入的函数
- input()函数的使用格式:<变量> = input(<提示信息字符串>)
- 用户输入的信息以字符串类型保存在<变量>中
- TempStr = input("请输入") TempStr保存用户输入的信息,这个文字只是提示作用
-
print()是以字符形式向控制台输出结果的函数
- 使用方法:print(<拟输出字符串或字符串变量>)
- 字符串类似的一对引号仅在程序内部使用,输出无引号
- print("输入格式错误") #向控制台输出 输入格式错误
-
print()函数的格式化:
- print("转换后的温度是{:.2f}C".format(C))
- 在上面中{}表示槽,后续变量填充到槽中
- {:.2f}表示将变量C填充到这个位置时取小数点后2位
-
eval():去掉参数最外侧引号并执行余下语句的函数
- 基本使用格式:eval(<字符串或字符串变量>)