1.1 程序设计基本方法
一、计算机执行源程序的两种方式:编译和解释
-源代码:采用某种编程语言编写的计算机程序,人类可读
例如:result = 2 + 3
-目标代码:计算机可直接执行,人类不可读(专家除外)
例如:11010010 00111011
-编译:将源代码一次性转换成目标代码的过程(一次性翻译,之后不再需要源代码,类似英文翻译)
-解释:将源代码逐条转换成目标代码同时逐条运行的过程(每次程序运行时随翻译随执行,类似实时的同声传译)
二、静态语言和脚本语言(根据执行方式不同,编程语言分为两类)
-静态语言:使用编译执行的编程语言(C/C++语言、Java语言)
编译器一次性生成目标代码,优化更加充分,程序运行速度更快
-脚本语言:使用解释执行的编程语言(Python语言、JavaScript语言、PHP语言)
执行程序时需要源代码,维护更灵活,可跨多个操作系统平台
三、程序的基本编写方法(IPO)
-I:Input 输入,程序的输入,是一个程序的开始
-P:Process 处理,程序的主要逻辑,处理是程序对输入数据进行计算产生输出结果的过程
-O:Output 输出,程序的输出,输出是程序展示运算结果的方式
-求解计算问题的精简步骤:
(1)确定IPO:明确计算部分及功能边界
(2)编写程序:将计算求解的设计变成现实
(3)调试程序:确保程序按照正确逻辑能够正确运行
1.3 实例1:温度转换
“温度转换”问题分析:
-需求分析:两种温度体系的转换(摄氏度转换为华氏度;华氏度转化为摄氏度)
-问题分析(该问题中计算部分的理解和确定)
1. 分析问题:直接将温度值进行转换(温度数值需要标明温度体系,即摄氏度或华氏度;转换后 也需要给出温度体系)
2. 划分边界:-输入:带华氏或摄氏标志的温度值
-处理:根据温度标志选择适当的温度转换算法
-输出:带摄氏或华氏标志的温度值
3. 输入输出格式设计:标识放在温度最后,F表示华氏度,C表示摄氏度;82F表示华氏82度,28C表示摄氏28度
4. 设计算法:转换公式:
C = (F - 32)/ 1.8
F = C * 1.8 + 32
其中,C表示摄氏温度,F表示华氏温度
# 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.4 Python程序语法元素分析
1.4.1 程序的格式框架
-代码高亮:编程的色彩辅助体系,不是语法要求
-缩进:一行代码开始前的空白区域,表示程序的格式框架(单层缩进/多层缩进)
缩进是语法的一部分,缩进不正确程序运行错误
表达代码间包含和层次关系的唯一手段
程序内一致即可,一般用4个空格或1个TAB
-注释:用于提高代码可读性的辅助性文字,不被执行
单行注释:以 # 开头,其后内容为注释
# 这里是单行注释
多行注释:以 ''' 开头和结尾
''' 这是多行注释第一行
这是多行注释第二行 '''
1.4.2 命名与保留字
-变量:程序中用于保存和表示数据的占位符号
变量采用标识符(名字)来表示,关联标识符的过程叫命名【TempStr是变量名字】
可以使用等号(=)向变量赋值或修改值,=被称为赋值符号
【TempStr = "82F" # 向变量TempStr赋值"82F"】
-命名:关联标识符的过程
命名规则:大小写字母、数字、下划线和中文等字符及组合
如:TempStr , Python_Great , 这是门Python好课
注意事项:大小写敏感、首字符不能是数字、不与保留字相同
如:Python和python是不同变量,123Python是不合法的
-保留字:被编程语言内部定义并保留使用的标识符
Python语言有35个保留字(也叫关键字)
保留字是编程语言的基本单词,大小写敏感(if是保留字,If是变量)
and | elif | import | raise | global |
as | else | in | return | nonlocal |
assert | except | is | try | True |
break | finally | lambda | while | False |
class | for | not | with | None |
continue | from | or | yield | async |
def | if | pass | del | await |
1.4.3 数据类型(字符串、整数、浮点数、列表):供计算机程序理解的数据形式
-字符串:由0个或多个字符组成的有序字符序列
字符串由一对单引号或一对双引号表示("请输入带有符号的温度值:"或 'C')
字符串是字符的有序序列,可以对其中的字符进行索引或切片
("请"是"请输入带有符号的温度值:"的第0个字符)
-字符串的序号:正向递增序号和反向递减序号
-12 | -11 | -10 | -9 | -8 | -7 | -6 | -5 | -4 | -3 | -2 | -1 |
请 | 输 | 入 | 带 | 有 | 符 | 号 | 的 | 温 | 度 | 值 | : |
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
-字符串的使用(使用 [] 获取字符串中一个或多个字符)
索引:返回字符串中单个字符 <字符串>[M]
"请输入带有符号的温度值:"[0] 或者 TempStr[-1]
切片:返回字符串中一段字符 <字符串>[M:N]
"请输入带有符号的温度值:"[1:3] 或者 TempStr[0:-1]
[1:3]:第一个字符,第二个字符,但不到第三个字符
[0:-1]:从第0个字符开始,但不到最后一个字符
-数字类型:整数和浮点数
整数:数学中的整数(可以是正数也可以是负数)
浮点数:数学中的实数,带有小数部分(1.8 或者 -1.8 或者 -1.0)
-列表类型:由0个或多个数据组成的有序序列(同一类型)
列表使用 [] 表示,采用逗号(,)分隔各元素
['F', 'f']表示两个元素'F'和'f'
使用保留字 in 判断一个元素是否在列表中
TempStr[-1] in ['C', 'c'] # 判断前者是否与列表中某个元素相同
1.4.4 语句与函数
-赋值语句:由赋值符号构成的一行代码
赋值语句用来给变量赋予新的数据值
赋值语句右侧的数据类型同时作用于变量
C = (eval(TempStr[0:-1]) - 32)/1.8 # 右侧运算结果赋给变量C
TempStr = input("") # input()返回一个字符串,TempStr也是字符串
-分支语句:由判断条件决定程序运行方向的语句
使用保留字if elif else构成条件判断的分支结构
每个保留字所在行最后存在一个冒号(:),语法的一部分
冒号及后续缩进用来表示后续语句与条件的所属关系
if TempStr[-1] in ['F', 'f']: # 如果条件为True,则执行冒号后语句
-函数:根据输入参数产生不同输出的功能过程
类似数学中的函数,y = f(x)
函数采用<函数名>(<参数>)方式使用
print("输入格式错误") # 打印输出“输入格式错误”
eval(TempStr[0:-1]) # TempStr[0:-1]是参数
1.4.5 Python程序的输入输出
-input():从控制台获得用户输入的函数
使用格式:<变量> = input(<提示信息字符串>)
用户输入的信息以字符串类型保存在<变量>中
TempStr = input("请输入带有符号的温度值:") # TempStr保存用户输入的信息
-print():以字符形式向控制台输出结果的函数
使用格式:print(<拟输出字符串或字符串变量>)
字符串类型的一对引号仅在程序内部使用,输出无引号
print("输入格式错误") # 向控制台输出 输入格式错误
-print()函数的格式化:
print("转换后的温度是{:.2f}C".format(C))
# {}表示槽,后续变量填充到槽中
# {:.2f}表示将变量C填充到这个位置时取小数点后2位
# {:.3f}表示将变量C填充到这个位置时取小数点后3位
# 如果C的值是123.456789,则输出结果为:转换后的温度是123.45C
-eval():去掉参数最外侧引号并执行余下语句的函数(评估函数)
使用格式:eval(<字符串或字符串变量>)
>>>eval("1") 1
>>>eval("1+2") 3
>>>eval(' "1+2" ') '1+2'
>>>eval('print("Hello")') Hello
>>>eval(TempStr[0:-1]) 如果TempStr[0:-1]的值是"12.3",输出是:12.3