目录

1. 编译和解释

1.1 编译

1.2 解释

2. 程序的基本编写方法IPO

2.1 含义

2.2 输入

2.3 输出

2.4 处理

3. 使用编程解决问题

3.1 问题的计算部分

3.2 编程解决问题的步骤

4. Python的编程方式

5. 程序格式框架

5.1 代码高亮

5.2 缩进

5.3 注释

6. 命名与保留字

6.1 命名

6.2 保留字

7. 数据类型

7.1 什么是数据类型

7.2 数据类型实例

7.2.1 字符串

7.2.2 数字类型

7.2.3 列表类型

8. 语句与函数

8.1 语句

8.1.1 赋值语句

8.1.2 分支语句

8.2 函数

9. Python程序的输入输出

9.1 输入函数input

9.2 输出函数print

9.3 eval函数


1. 编译和解释

1.1 编译

① 将源代码一次性转换成目标代码的过程

② 执行编译过程的程序叫做编译器

③ 编译是一次性翻译,之后不再需要源代码(类似于英文翻译)

1.2 解释

① 将源代码逐条转换成目标代码,同时逐条运行的过程

② 执行解释过程的程序叫做解释器

③ 每次程序运行时随翻译随执行(类似于同声传译)

说明1:编译与解释的关注点不同

编译过程只进行一次,所以编译过程的速度不是关键,目标代码的运行速度是关键。因此编译器一般都集成尽可能多的优化技术,使生成的目标代码具备更好的执行效率

相反,解释器不能集成太多优化技术,因为代码优化技术会消耗运行时间,使整个程序的执行速度受到影响

个人:由于解释器是逐条语句执行,其实也很难统揽全局进行深入优化

说明2:根据执行方式的不同,编程语言被分为2类,

① 静态语言:使用编译执行的编程语言

e.g. C/C++、Java

② 脚本语言:使用解释执行的编程语言

e.g. Python、JavaScript、PHP

由于执行方式不同,静态语言和脚本语言各有优势,

① 静态语言

编译器一次性生成目标代码,优化更充分,所以程序运行速度更快

② 脚本语言

执行程序时需要源代码,维护更灵活,可以跨多个操作系统平台,适合非性能关键的程序运行场景

补充:Python虽然采用解释方式执行,但是其解释器也保留了编译器的部分功能,随着程序运行,解释器也会生成一个完整的目标代码

这种将解释器和编译器结合的新解释器是现代脚本语言为提升计算性能的一种有益演进

2. 程序的基本编写方法IPO

2.1 含义

I:Input 输入,程序的输入

P:Process 处理,程序的主要逻辑

O:Output 输出,程序的输出

2.2 输入

① 程序的输入

文件输入、网络输入、控制台输入、交互界面输入、内部参数输入等

② 输入是一个程序的开始

2.3 输出

① 程序的输出

控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等

② 输出是程序展示运算结果的方式

2.4 处理

① 处理是程序对输入数据进行计算产生输出结果的过程

② 处理方法统称为算法,他是程序最重要的部分

③ 算法是一个程序的灵魂

3. 使用编程解决问题

3.1 问题的计算部分

① 计算机只能解决问题的计算部分

② 一个问题可以从多个角度理解,从而产生不同的计算部分

③ 问题的计算部分一般都有输入、处理和输出过程

3.2 编程解决问题的步骤

① 分析问题

分析问题的计算部分

② 划分边界

划分问题的功能边界,规划IPO

③ 设计算法

设计问题的求解算法,关注算法本身

④ 编写程序

编写问题的计算程序

⑤ 调试测试

调试程序使其正确运行

⑥ 升级维护

适应问题的升级维护

说明:求解计算问题的精简步骤

① 确定IPO:明确计算部分及功能边界

② 编写程序:将计算求解的设计变成现实

③ 调试程序:确保程序按照正确逻辑正确运行

4. Python的编程方式

① 交互式

对每个输入语句即时运行,适合语法练习

② 文件式

批量执行一组语句,是编程的主要方式

5. 程序格式框架

5.1 代码高亮

编程的色彩辅助体系,不是语法要求,一般由IDE提供

5.2 缩进

一行代码开始前的空白区域,表达程序的格式框架

① 严格明确:缩进是语法的一部分,缩进不正确程序运行错误

② 所属关系:表达代码间包含和层次关系的唯一手段

③ 长度一致:程序内一致即可,一般4个空格或1个TAB(但程序内不可混用)

5.3 注释

用于提高代码可读性的辅助性文字,不被执行,Python有2种注释形式,

① 单行注释:以#开头,其后内容为注释

# 这里是单行注释

② 多行注释:以'''(三个单引号)开头和结尾

'''这是多行注释第一行这是多行注释第二行'''

tips:多行注释本质上是多行字符串

6. 命名与保留字

6.1 命名

含义:关联标识符的过程

命名规则:大小写字母、数字、下划线和汉字等字符及组合

注意事项:大小写敏感、首字符不能是数字、不与保留字相同

说明:部分以下划线或双下划线开头的名字被留作系统功能使用,建议命名时不使用

6.2 保留字

含义:被编程语言内部定义并保留使用的标识符,Python共有33个保留字;保留字一般用来构成程序整体框架、表达关键值和具有结构性的复杂语义等

注1:红色的保留字本门基础课程不会涉及

注2:保留字的最后3个True / False / None首字母大写

说明:保留字是编程语言的基本单词,大小写敏感

7. 数据类型

7.1 什么是数据类型

10,011,101该如何解释 ?

程序设计语言不允许存在语法歧义,需要定义数据的形式,因此需要给10,011,101关联一种计算机可以理解的形式

在向计算机提供数据的同时需要告诉计算机应该如何解释理解数据,因此,数据类型就是程序设计语言通过一定方式向计算机表达数据的形式

e.g. 对10,011,101的解释

整数类型:10011101

字符串类型:"10,011,101"

列表类型:[10, 011, 101]

7.2 数据类型实例

7.2.1 字符串

字符串:由0个或多个字符组成的有序字符序列

① 字符串由一对单引号或一对双引号表示(使用单 / 双引号效果相同)

② 字符串是字符的有序序列,可以对其中的字符进行索引(字符编号从0开始)

③ Python字符串索引有2种体系:正向递增序号和反向递减序号

② 这2种体系可以混用

个人:从字符串序列看,2种序号都是递增的

④ 正是由于字符串的索引体系,可以使用方括号获得字符串中的一个或多个字符,即字符串的索引和切片操作

索引:返回字符串中的单个字符

<字符串>[M]

e.g.  TempStr[-1]

切片:返回字符串中一段字符子串

<字符串>[M : N]  # 不包括下标为N的字符(即从M到N - 1)

e.g. TempStr[0 : -1]

个人:索引或切片出的还是字符串类型(即都是子串),即使只是获得一个字符

由此可见,Python中并没有字符类型,只有字符串类型

7.2.2 数字类型

数字类型:整数和浮点数都是数字类型

① 整数:数学中的整数

② 浮点数:数学中的实数,带有小数部分

7.2.3 列表类型

列表类型:由0个或多个数据组成的有序序列

① 列表使用中括号表示,采用逗号分隔各个元素

e.g. ['F', 'f']表示列表中有2个字符串元素'F'和'f'

② 可以使用保留字in判断一个元素是否在列表中

8. 语句与函数

8.1 语句

8.1.1 赋值语句

赋值语句:由赋值符号构成的一行代码

① 赋值语句用来给变量赋予新的数据值

# 右侧运算结果赋给变量C
C = (eval(TempStr[0 : -1]) - 32) / 1.8

② 赋值语句右侧的数据类型同时作用于变量

# input函数返回一个字符串,所以TempStr也是字符串类型
TempStr = input("")

个人:Python中没有声明变量类型的操作,所以变量的类型完全取决于给其赋值的类型

③ Python支持同步赋值语句,即可以同时给多个变量赋值,语法格式如下,

<变量 1>, ..., <变量N> = <表达式 1>, ..., <表达式N>

Python在处理同步赋值时首先计算右侧的N个表达式,同时将表达式的结果赋值给左侧的N个变量,因此可以用同步赋值语句实现变量值交换

x, y = y, x

说明:虽然同步赋值语句可以使赋值过程更简洁,但是应当尽量避免将多个无关的单一赋值语句组合成同步赋值语句,否则会降低程序的可读性

8.1.2 分支语句

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

① 使用保留字if / elif / else构成条件判断的分支结构

# 首先注意分支语句之后有冒号
# 如果条件为True则执行冒号之后带缩进的语句,否则跳过
if TempStr[-1] in ['F', 'f']:

② 每个保留字所在行最后存在一个冒号,是语法的一部分

③ 冒号及后续缩进用来表示后续语句与条件的所属关系

8.2 函数

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

① 函数采用<函数名>(<参数>)的方式调用

# TempStr[0 : -1]是参数
eval(TempStr[0 : -1])

9. Python程序的输入输出

注意:下面介绍的input / print / eval函数均为Python解释器的内置函数

9.1 输入函数input

input():从控制台获得用户输入的函数

① input函数使用格式

<变量> = input(<提示信息字符串>)

② 用户输入的信息以字符串类型保存在<变量>中

9.2 输出函数print

print():以字符形式向控制台输出结果的函数

① print函数基本使用格式

print(<拟输出字符串或字符串变量>)

注意:输出无引号

② print函数的格式化

类似C语言中的格式化输出

print("转换后的温度是{:.2f}C".format(C))

9.3 eval函数

eval:去掉参数最外侧引号(无论是单双引号)并执行余下语句的函数

① eval函数的基本使用格式

eval(<字符串或字符串变量>)

② 使用实例

eval("1")
# 得到数字1eval("1 + 2")
# 去掉外侧引号后,得到Python可理解的语句 1 + 2,最终结果为3eval('"1 + 2"')
# 去掉外侧单引号,剩下"1 + 2"仍为字符串,输出'1 + 2'eval('print("Hello")')
# 去掉外侧单引号,剩下print函数语句,加以执行eval(input("请输入要计算的数值:"))
# 希望用户输入一个数字,并用程序对这个数字进行计算
# 可以采用eval函数进行转换

说明:eval函数一般用于将数字的字符串类型转换为数字类型(e.g. 温度转换代码),但是从广义上讲eval函数是将任何字符串信息转换为Python语句执行

Python程序设计语言基础01:Python基本语法元素相关推荐

  1. Java程序设计语言基础01:绪论

    目录 1. 初探HelloWorld程序 1.1 类(Class)语法元素 1.2 main方法(main method)语法元素 1.3 System.out.println 1.4 字符串 2. ...

  2. Python程序设计语言基础06(完):组合数据类型

    目录 1. 组合数据类型概述 2. 集合类型及操作 2.1 集合类型定义 2.1.1 集合类型概念 2.1.2 集合类型定义 2.2 集合操作符 2.3 集合处理方法 2.4 集合类型应用场景 2. ...

  3. Python程序设计语言基础05:函数和代码复用

    目录 1. 函数的定义与使用 1.1 函数的理解和定义 1.1.1 函数的理解 1.1.2 函数的定义 1.2 函数的使用及调用过程 1.3 函数的参数传递 1.3.1 无参数传递 1.3.2 可选参 ...

  4. Python程序设计语言基础03:基本数据类型

    目录 1. 数字类型 1.1 整数类型 1.1.1 概述 1.1.2 四种进制 1.2 浮点数类型 1.2.1 概述 1.2.2 浮点数表示法 1.2.3 浮点数精度 1.3 复数类型 2. 数字类型 ...

  5. Python程序设计语言基础04:程序的控制结构

    目录 1. 程序的分支结构 1.1 单分支结构 1.2 二分支结构 1.3 多分支结构 1.4 条件判断及组合 1.4.1 条件判断 1.4.2 条件组合 2. BMI计算实例 3. 程序的循环结构 ...

  6. Python程序设计语言基础02:Python基本图形绘制

    目录 1. 不同编程语言的适用对象 2. 蟒蛇绘制实例 3. 库或类的引用 3.1 Python计算生态 3.2 库引入与import语法 3.2.1 引入库整体 3.2.2 引入库函数 4. tur ...

  7. Python程序设计快速入门01

    Python程序设计入门到考试(Day01) 全系列共计6天,十二章.仅作基础入门到期末考试-- 第1章 Python语言概述 1.python的起源 Python由荷兰数学和计算机科学研究学会的[G ...

  8. D05——C语言基础学PYTHON

    C语言基础学习PYTHON--基础学习D05 20180815内容纲要: 1 模块 2 包 3 import的本质 4 内置模块详解 (1)time&datetime (2)datetime ...

  9. D04——C语言基础学PYTHON

    C语言基础学习PYTHON--基础学习D04         20180810内容纲要: 1 内置函数 2 装饰器 3 生成器 4 迭代器 5 软件目录结构规范 6 小结 1 内置函数 内置函数方法详 ...

最新文章

  1. python程序设计祁瑞华答案_【单选题】有六个元素 6 , 5 , 4 , 3 , 2 , 1 的顺序进栈,问下列哪一个不是合法的出栈序列? (2.0分)...
  2. SAP实施商看SAP在我国的发展
  3. 尼日利亚学生开发者,用阿里云PAI打造了卡通头像神器
  4. Codeforces 724 C. Ray Tracing
  5. 集成测试还原数据库_项目学生:分片集成测试数据
  6. 浮点数计算机的表示案例,计算机中的数据及其应用案例.docx
  7. 8口PoE网口供电交换机适用环境介绍
  8. matlab min函数_数学建模与MATLAB非线性规划
  9. k8s Service
  10. ECS 还是轻量应用服务器,看完评测你就知道了?
  11. html 设置origin,background-origin属性怎么用
  12. struct构造函数 c++
  13. 云笔记横向评测:印象笔记、有道云笔记、为知笔记、OneNote、Notion
  14. 小程序 腾讯兔小巢 对接
  15. LCOI出题组加团规则
  16. html中鼠标点击图片变动,JS实现页面鼠标点击出现图片特效
  17. Vue.js---关闭语法检查
  18. 计算机硬盘配置参数错误怎么办,电脑提示移动硬盘参数错误的解决方法
  19. android平板屏幕碎了触摸失灵,小白瞎折腾:从此手机与平板自己维修,拒绝被忽悠!...
  20. java面试题(记录与分享)二

热门文章

  1. 山西评计算机高级职称,山西专业技术职称评审不再统一组织外语和计算机能力考试...
  2. 游戏盒子源码_如何用8K电视盒子组建“家庭影院”(设备入门篇)
  3. html目录清华,清华大学HTML、《网页设计与制作》讲义.ppt
  4. linux挂载CentOS yum,centos7本地挂载yum仓库
  5. MATLAB信号处理之信号的采样
  6. 九阴真经 服务器列表文件,《九阴真经》部分服务器互通升级公告
  7. Python中使用xpath结合contains
  8. 非经营性网站备案流程
  9. 计算机存储单位字的英语,计算机存储基本单位,位、字节、字以及KB、MB和GB怎么换算?...
  10. java response文件流下载,后缀名称设置