Python语言程序设计(嵩天)-第1周-Python基本语法元素

第1章 Python基本语法元素

实例:温度转换

  • 缩进、注释、命名、变量、保留字
  • 数据类型、字符串、整数、浮点数、列表
  • 赋值语句、分支语句、函数
  • input()、print()、eval()、print()格式化

小例:计算圆面积、绘制同切圆、绘制五角星

文章首部添加 @TOC
(注:编辑器会根据文章标题自动生成目录)

-1.1 程序设计基本方法

1.1.1 计算机与程序设计

功能性
可编程性
发展:摩尔定律 指数方式
程序设计语言 = 编程语言
编程语言分为2类:低级语言(操作计算机硬件)、高级语言(接近自然语言,在不同计算机上表达方式相同)
低级语言分为2类:机器语言、汇编语言
机器语言:2进制
汇编语言:不同计算机汇编指令不同
通用编程语言 P7

1.1.2 编译和解释 P8

源代码:采用某种编程语言编写的计算机程序,人类可读
【咱们现在写的】
eg. result = 2 + 3
指的是:将2+3的运算结果赋给一个变量叫result

目标代码:计算机可直接执行,人类不可读(专家除外)
【计算机看的二进制】
eg. 1101001000111011
指的是:2+3的运算结果

编程语言的执行方式

两种:编译和解释
Python语言程序设计(嵩天)-第1周-Python基本语法元素_第1张图片

Python语言程序设计(嵩天)-第1周-Python基本语法元素_第2张图片

编译和解释

编译:一次性翻译,之后不再需要源代码(类似英文翻译)
【全翻译完了计算机再去“看”】
编译器:compiler
解释:每次程序运行时 随翻译随执行(类似实时的同声传译)(每次都需要源代码参与)
【翻译一句“看”一句;外国人在旁边一边说,咱一边翻译,外国人必须在这儿】
解释器:interpreter

因此根据执行方式不同,对应分类为⬇️

静态语言和脚本语言

静态语言:使用编译执行的编程语言
eg. C/C++语言、Java语言
优势:编译器一次性生成目标代码,优化更充分(程序运行速度更快)
(不需要编译器,在同类型操作系统上使用灵活)
(编译器会集成优化技术,使生成的目标代码具备更好的执行效率,解释器不能,因为代码优化技术会消耗运行时间)
详见P8
脚本语言:使用解释执行的编程语言
eg. Python、JavaScript、PHP
优势:执行程序时需要源代码,维护更灵活(源代码在,维护灵活、跨多个操作系统平台)
(保留源代码,可移植,方便纠错和维护)
详见P9
【一个速度快,一个方便找bug和复制粘贴】

1.1.3 程序的基本编写方法 P22

IPO——程序的基本编写方法

-I:Input 输入,程序的输入 P22
-P:Process 处理,程序的主要逻辑 P23

-处理是程序对输入数据进行计算产生输出结果的过程
-处理方法统称为算法,它是程序最重要的部分
-算法是一个程序的灵魂

-O:Output 输出,程序的输出 P22

问题的计算部分:一个待解决问题中,可以用程序辅助完成的部分
计算机只能解决计算问题,即问题的计算部分

编程解决问题的步骤

6个步骤

  • 分析问题:分析问题的计算部分,想清楚(解决这个问题的哪一个需求?)
  • 划分边界:划分问题的功能边界,规划IPO
  • 设计算法:设计问题的求解算法,关注算法
  • 编写程序:编写问题的计算程序,编程
  • 调试测试:调试程序使正确运行,运行调试
  • 升级维护:适应问题的升级维护,更新完善

求解计算问题的精简步骤

3个精简步骤

  • 确定IPO:明确计算部分及功能边界
  • 编写程序:将计算求解的设计变成现实
  • 调试程序:确保程序按照正确逻辑能够正确运行

1.1.4 计算机编程

Q:编程很难学吗?A:掌握方法就很容易!

  • 首先,掌握编程语言的语法,熟悉基本概念逻辑
  • 其次,结合计算问题思考程序结构,会使用编程套路
  • 最后,参照案例多练习实践,学会举一反三次

-1.2 Python开发环境配置

1.2.1 Python语言概述

1.2.2 Python基本开发环境IDLE

Python官方提供 适用于小规模程序开发

  • Python官方环境:Python解释器+ IDLE开发环境
  • 轻量级:只有几十MB大小,使用灵活
  • 功能丰富:编辑器+交互环境+标准库+库安装工具…

1.2.3 Python程序编写与运行

Python的两种编程方式:交互式和文件式

  • 交互式:对每个输入语句即时运行结果,适合语法练习
  • 文件式:批量执行一组语句并运行结果,编程的主要方式
    交互式
    文件式

文件式
交互式

交互式
文件式

1.2.4 Python高级开发环境VSCode

VSCode:Visual Studio Code

  • 微软出品,与Visual Studio同质量的专业级开发工具
  • 跨平台免费工具:支持Windows/Linux/MacOS
  • 编辑器模式:轻量级、功能丰富、可扩展性强…

第一步:安装IDLE环境;第二步:安装VSCode

  • 下载地址:https://code.visualstudio.com
  • 工具大小约50MB

-1.3 实例1:温度转换

1.3.1 需求分析

两种温度体系的转换

  • 摄氏度转换为华氏度
  • 华氏度转换为摄氏度

1.3.2 问题分析

该问题中计算部分的理解和确定

  • 理解1:直接将温度值进行转换
  • 理解2:将温度信息发布的声音或图像形式进行理解和转换(用程序去处理声音或图像形式的输入格式)
  • 理解3:监控温度信息发布渠道,实时获取并转换温度值(爬虫爬取)

分析问题

采用理解1:直接将温度值进行转换
温度数值需要标明 温度体系,即摄氏度或华氏度
转换 后 也需要给出温度体系

划分边界

  • 输入:带 华氏或摄氏 标志 的温度值
  • 处理:根据温度标志 选择适当的 温度转换算法
  • 输出:带 摄氏或华氏 标志 的温度值

输入输出格式设计

标识放在温度 最后,F表示华氏度,C表示摄氏度
82F表示华氏82度,28C表示摄氏28度

设计算法

根据华氏和摄氏温度定义,利用转换公式如下:
C = ( F –32 ) / 1.8
F = C * 1.8 + 32
其中,C表示摄氏温度,F表示华氏温度

1.3.3 实例编写

#TemConvert.py
TemStr = input("请输入带有符号的温度值:")
if TemStr[-1] in ['F', 'f']:
	C = (eval(TemStr[0:-1]) - 32)/1.8
	print("转换后的温度是{:.2f}C".format(C))
elif TemStr[-1] in ['C', 'c']:
	F = 1.8*eval(TemStr[0:-1]) + 32
	print("转换后的温度是{:.2f}F".format(F))
else:
	print("输入格式错误")

运行效果:

(base) liuruideMBP:songtian liurui$ python3 TempConvert.py
请输入带有符号的温度值:82F
转换后的温度是27.78C
(base) liuruideMBP:songtian liurui$ python3 TempConvert.py
请输入带有符号的温度值:28C
转换后的温度是82.40F

1.3.4 举一反三

Python语法元素理解【Why第一个学这个,How】

  • 温度转换程序共10行代码,但包含很多语法元素
  • 清楚理解这10行代码能够快速入门Python语言
  • 参考框架结构、逐行分析、逐词理解

输入输出的改变【格式可以改~】

  • 温度数值与温度标识之间 关系 的设计可以改变
  • 标识改变 放在温度数值之 前:C82, F28
  • 标识字符 改变 为多个字符:82Ce、28Fa

计算问题的扩展【转换问题!!!】

  • 温度转换问题是各类转换问题的代表性问题
  • 货币转换、长度转换、重量转换、面积转换…
  • 问题不同,但程序代码相似

-1.4 Python程序语法元素分析

目录:

  • 程序的格式框架
  • 命名与保留字
  • 数据类型
  • 语句与函数
  • Python程序的输入输出
  • "温度转换"代码分析

1.4.1 程序的格式框架

目录:

  • 缩进、注释、命名、变量、保留字
  • 数据类型、字符串、整数、浮点数、列表
  • 赋值语句、分支语句、函数
  • input()、print()、eval()、print()格式化

代码高亮

:编程的色彩辅助体系,不是语法要求【帮你更好读代码和找bug】

  • 根据不同含义
  • 在不同环境中,表现不同(比如颜色不同)
  • 本课程使用IDLE默认色彩体系
  • 有没有高亮or不同颜色,对代码运行没有影响
#TemConvert.py
TemStr = input("请输入带有符号的温度值:")
if TemStr[-1] in ['F', 'f']:
	C = (eval(TemStr[0:-1]) - 32)/1.8
	print("转换后的温度是{:.2f}C".format(C))
elif TemStr[-1] in ['C', 'c']:
	F = 1.8*eval(TemStr[0:-1]) + 32
	print("转换后的温度是{:.2f}F".format(F))
else:
	print("输入格式错误")

缩进

:一行代码开始前的空白区域,表达程序的格式框架
Python语言程序设计(嵩天)-第1周-Python基本语法元素_第3张图片
缩进表达程序的格式框架

  • 严格明确:缩进是语法的一部分,缩进不正确,程序运行错误
  • 所属关系:表达代码间 包含和层次关系 的**唯一**手段
  • 长度一致:(在单一)程序内一致即可,一般用4个空格或1个TAB

注释

:用于提高代码可读性的辅助性文字,不被执行
Python语言程序设计(嵩天)-第1周-Python基本语法元素_第4张图片
python两种:

  • 单行注释:以==#==开头,其后内容为注释
# 这里是单行注释
  • 多行注释:以==’’’==开头和结尾【三个单引号】
'''这是多行注释第一行
   这是多行注释第二行'''

Python语言程序设计(嵩天)-第1周-Python基本语法元素_第5张图片

1.4.2 命名与保留字

变量

:程序中用于保存和表示数据的占位符号

  • 变量采用 标识符(名字) 来表示,关联标识符的过程叫 命名
    • eg. TempStr是变量名字
  • 可以使用 等号(=) 向变量 赋 值或 修改 值,= 被称为 赋值符号
    • eg. TempStr = “82F”——即#向变量TempStr赋值"82F"
    • 单一等号以后都称为赋值符号
      Python语言程序设计(嵩天)-第1周-Python基本语法元素_第6张图片

命名

:关联标识符的过程

  • 命名规则: 大小写字母、数字、下划线和中文等字符及组合
    如: TempStr, Python_Great, 这是门Python好课
  • 注意事项: 大小写敏感(区分大小写)、首字符不能是数字、不与保留字相同
    如: Python和python是不同变量,123Python是不合法的

保留字

:被编程语言内部定义并保留使用的标识符

  • Python语言有35个保留字(也叫关键字)
    • eg. if, elif, else, in
  • 保留字是编程语言的基本单词,大小写敏感
    • eg. if是保留字,If 是变量
      Python语言程序设计(嵩天)-第1周-Python基本语法元素_第7张图片
  • 红色本门课不会涉及
  • True、False、None 唯三首字母大写的
    • 因此true是变量,True是保留字

1.4.3 数据类型

数据类型

字符串、整数、浮点数、列表
Python语言程序设计(嵩天)-第1周-Python基本语法元素_第8张图片
10,011,101 该如何解释呢?【可有多种理解】

  • 这是一个二进制数字 或者 十进制数字
    作为二进制数字,10,011,101的值是十进制157
  • 这是一段文本 或者 用逗号,分隔的3个数字
    作为一段文本,逗号是文本中的一部分,一共包含10个字符

供计算机程序理解的数据形式

  • 程序设计语言 不允许 存在语法歧义,需要定义数据的形式
    需要给10,011,101关联 一种 计算机可以理解的形式
  • 程序设计语言通过一定方式向计算机表达数据的形式
    "123"表示文本字符串123,123则表示数字123

10,011,101

  • 整数类型:10011101
  • 字符串类型:“10,011,101”
  • 列表类型:[10, 011, 101]

字符串

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

  • 字符串由一对单引号或一对双引号表示(单引号和双引号无区别)
    "请输入带有符号的温度值: "或者’C’
  • 字符串是字符的有序序列,可以对其中的字符进行索引【有顺序,可抽取】
    "请"是"请输入带有符号的温度值: "的第0个字符
    (在字符串中,编号是从0开始的。在计算机很多概念中,如果涉及到序号,一般都是从0开始,而不是从1开始。)

Python语言程序设计(嵩天)-第1周-Python基本语法元素_第9张图片

Python语言程序设计(嵩天)-第1周-Python基本语法元素_第10张图片

字符串的使用

使用[ ]获取字符串中 一个或多个 字符

  • 索引:返回字符串中单个字符
    <字符串>[M]
    在字符串后面加上一个方括号,方括号中间给出序号位置
    eg. "请输入带有符号的温度值: "[0]
    eg. TempStr[-1]
  • 切片:返回字符串中 一段 字符 子串
    <字符串>[M: N]
    在字符串后面加上一个方括号,方括号中间给出序号区间
    (N不取!)
    eg. "请输入带有符号的温度值: "[1:3]——取出第一个和第二个字符,没有第三个!!!
    eg. TempStr[0:-1]——从0开始的,不到最后一个,到最后第二个!!!

数字类型

:整数和浮点数

  • 整数:数学中的整数(包含正负)
    32或者-89
  • 浮点数:数学中的实数,带有小数部分(包含正负)
    1.8或者-1.8 或者-1.0
    Python语言程序设计(嵩天)-第1周-Python基本语法元素_第11张图片

列表类型

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

  • 列表使用[ ]表示,采用逗号(,)分隔各元素
    eg. [‘F’,‘f’]表示两个元素’F’和’f’
  • 使用保留字in 判断一个元素是否在列表中
    字符串[序号] in [列表]
    eg. TempStr[-1] in [‘C’, ‘c’]——判断前者是否与列表中某个元素相同
    若存在 在该列表,产生一个True
    若不存在,返回一个False

1.4.4 语句与函数

赋值语句

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

  • 赋值语句用来给变量赋予新的数据值
    C=(eval(TempStr[0:-1])-32)/1.8 ——#将右侧运算结果赋给变量C
  • 赋值语句右侧的数据类型同时作用于变量
    TempStr=input("")——#input()返回一个字符串,TempStr也是字符串
    Python语言程序设计(嵩天)-第1周-Python基本语法元素_第12张图片

分支语句

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

  • 使用保留字if elif else构成条件判断的分支结构
    if TempStr[-1] in [‘F’,‘f’]:
    #如果条件为True执行冒号后语句
    #如果条件为False跳过冒号后语句
  • 每个保留字所在行最后存在一个冒号(,语法的一部分
    冒号及后续缩进 用来表示 后续语句与条件的 所属关系
    Python语言程序设计(嵩天)-第1周-Python基本语法元素_第13张图片

函数

:根据 输入参数 产生 不同 输出 的功能过程
(用一个名字和一个括号组成)

  • 类似数学中的函数,y = f(x)
    eg. print(“输入格式错误”) —— # 打印输出"输入格式错误"
  • 函数采用==<函数名>(<参数>) ==方式使用
    eg. eval(TempStr[0:-1]) —— # TempStr[0:-1]是参数
    Python语言程序设计(嵩天)-第1周-Python基本语法元素_第14张图片

1.4.5 Python程序的输入输出

输入函数input()

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

  • input()函数的使用格式:
    <变量> =input(<提示信息字符串>)
  • 用户输入的信息以字符串类型保存在<变量>中
    eg. TempStr = input(“请输入”)
    —— # TempStr保存用户输入的信息
    "请输入"不是TemStr的一部分
    Python语言程序设计(嵩天)-第1周-Python基本语法元素_第15张图片

输出函数print()

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

  • print()函数的基本使用格式:
    print(<拟输出字符串或字符串变量>)
  • 字符串类型的一对引号仅在程序内部使用,输出无引号
    eg. print(“输入格式错误”)
    —— # 向控制台输出 输入格式错误
    Python语言程序设计(嵩天)-第1周-Python基本语法元素_第16张图片

Python语言程序设计(嵩天)-第1周-Python基本语法元素_第17张图片

print()函数的格式化

  • print(“转换后的温度是{:.2f}C”.format©)
    { }表示槽,后续变量填充到槽中【想象成一个容器】
    :.2f 表示将变量C填充到这个位置时取小数点后2位
    format()是个函数

  • print(“转换后的温度是{:.2f}C”.format©)
    如果C的值是123.456789,则输出结果为:
    转换后的温度是123.45C

评估函数eval()

去掉参数最外侧引号执行余下语句的函数
Python语言程序设计(嵩天)-第1周-Python基本语法元素_第18张图片

  • eg. eval(TempStr[0:-1])
    如果TempStr[0:-1]值是"12.3"【是个字符串】,输出是:
    12.3【是个数字,并不相同】

  • 作用:将数字的字符串形式 变为 数字形式

  • 广泛作用:能将任何字符串形式的信息 变为 python语句

1.4.6 "温度转换"代码分析

#TemConvert.py
TemStr = input("请输入带有符号的温度值:")
if TemStr[-1] in ['F', 'f']:
	C = (eval(TemStr[0:-1]) - 32)/1.8
	print("转换后的温度是{:.2f}C".format(C))
elif TemStr[-1] in ['C', 'c']:
	F = 1.8*eval(TemStr[0:-1]) + 32
	print("转换后的温度是{:.2f}F".format(F))
else:
	print("输入格式错误")
  • 第1行:注释
  • 第2行:使用input函数让用户输入,获得信息。以字符串形式保存在变量TemStr。
  • 第3行:if表达一个分支语句,判断后面的条件。如果变量TemStr最后一个字符是F或者f,那么用户输入的是华氏度,进入第4行和第5行进行转换(如82F);如果不是,进入第6行。
  • 第4行:用eval评估函数,除去TemStr函数的最后一位(也就是F或者f,得到"82"),并讲字符串转换为整数(82),可以参与整数间的运算,转换为一个摄氏度。
  • 第5行:将转换得到的 摄氏温度值,赋给变量C,并用print函数将变量C输出出来。
    • foramt:把参数按位置顺序来填充到字符串中,拼接字符串】
      • 参考:Python中format函数用法
  • 第6行:如果变量TemStr最后一个字符是C或者c,那么用户输入的是摄氏度,进入第7行和第8行进行转换;如果不是,进入第10行。
  • 第7行:
  • 第8行:
  • 第9行:分支语句else
  • 第10行:到else之后,else语句默认执行

附录:format()的用法

  1. 作为拼接字符串进行使用
    ‘{}’.format(变量)

  2. 保留小数
    ‘{:.2f}’.format(12.333) 保留小数点后两位
    ‘{a:.2f}’.format(a=12.333)

  3. 百分比格式
    ‘{:.2%}’.format(0.333)

  4. 进制转换
    ‘{0:x}’.format(20) 转换成十六进制
    ‘{0:o}’.format(20) 转换成八进制

    进制转换的时候用{0:进制}

  5. 对齐方式
    ‘{a:<10}’.format(a=12.3,b=13.44) 左对齐,长度为10
    ‘{a:0>10}’.format(a=12.3,b=13.44) 右对齐…
    ‘{a:0^10}’.format(a=12.3,b=13.44) 居中对齐…
    ‘{a:0<10}’.format(a=12.3,b=13.44) 数字补x (填充左边)

  6. 转义{和}符号
    ‘{{ hello{0} }}’.format('python’)
    f = ’ hello {0} '.format
    f('python’)

作者:光游骑兵

作业

你可能感兴趣的:(Python)