Python
2024-09-11 14:39:19 0 举报
AI智能生成
Python语言程序设计
作者其他创作
大纲/内容
第1章Python基本语法元素
1.1程序设计基本方法
方法论
基本的程序编写方法——IPO(Input, Process, Output)方法。
计算机与程序设计<br>
计算机的概念<br>
功能性:对数据的操作,表现为数据计算、输入、输出和处理结果等等。<br>
可编程性:根据一系列的指令自动地、可预测的、准确的完成操作者的意图。
程序设计<br>
程序设计语言是一种用于交互(交流)的人造语言
程序实现方式
源代码:采用某种编程语言编写的计算机程序,人类可读<br>
目标代码:计算机可直接执行,人类不可读(专家除外)
编译
解释
程序的基本编写方法(IPO)
输入
程序的开始,文件输入、网络输入、控制台输入、交互界面输入、内部参数输入等
处理
处理是程序对输入数据进行计算产生输出结果的过程,处理方法统称为算法
输出
控制台输出、图形输出、文件输出、网络输出、操作系统内部变量输出等,<br>输出是程序展示运算结果的方式
计算机编程
编程解决问题的步骤
<span style="font-size:inherit;">分析问题<font color="#b71c1c">:分析问题的计算部分</font></span><br>
划分边界:划分问题的功能边界,规划IPO<br>
设计算法:设计问题的求解算法,关注算法
编写程序:编写问题的计算程序,编程序<br>
调试测试:调试程序使正确运行,运行调试
升级维护:适应问题的升级维护,更新完善
求解计算问题的精简步骤
确定IPO:明确计算部分及功能边界
编写程序:将计算求解的设计变成现实
调试程序:确保程序按照正确逻辑能够正确运行
1.2实例1:温度转换
需求分析
两种温度体系的转换
华氏度转摄氏度
摄氏度转华氏度
问题分析
<span style="font-size:inherit;">1、直接将温度值进行转换理解</span><br>
2、将温度信息发布的声音或图像形式进行理解和转换理解<br>
3、监控温度信息发布渠道,实时获取并转换温度值
划分边界
I
输入:带华氏或摄氏标志的温度值。
P
处理:根据温度标志选择适当的温度转换算法
O
输出:带摄氏或华氏标志的温度
设计算法
编程
举一反三
改变程序输入、输出
延申至不同的实例
货币转换
重量转换
长度转换
面积转换
1.3 Python程序语法元素分析
程序的格式框架<br>
代码高亮:编程的色彩辅助体系<br>
缩进:代表程序的格式框架
严格明确:缩进是语法的一部分,缩进不正确程序运行错误
表达代码间包含和层次关系的唯一手段
在单一程序内,缩进长度需一致,可以是一个tab键,或者若干个空格
注释
单行注释:以#号开头
多行注释:'''开头<br> 结尾'''
命名与保留字
变量
用来保存和表示数据的占位符号
变量采用标识符(名字)来表示,关联标识符的过程叫<font color="#ff0000">命名</font>
Tempstr是变量名字
可以使用<font color="#f44336">等号(=)向变量赋值</font>或修改值,=被称为赋值符号
<font color="#388e3c">TempStr</font>=<font color="#fbc02d">"82F"</font> <font color="#616161">#向变量TempStr赋值"82F"</font>
命名
关联标识符的过程
命名规则
命名规则:大小写字母、数字、下划线和中文等字符及组合<br><font color="#212121">如: Tempstr, Python_Great,这是门Python好课</font>
注意事项
大小写敏感,🈲数字开头
保留字
<font color="#b71c1c">编程语言内部定义并保留使用的标识符(既不能将其用作变量名)</font>
-Python语言有35个保留字(也叫关键字)<br><font color="#f57c00"> if, elif, else, in</font>
-保留字是编程语言的基本单词,大小写敏感<br><font color="#f57c00"> if是保留字, If 是变量</font>
黑色:Python基础语法体系中会涉及到的保留字
红色:Python高级语法体系中会涉及到的保留字<br>
数据类型
字符串类型
由0个或多个字符组成的有序字符序列
字符串由一对单引号或一对双引号表示<br><font color="#1b5e20">“请输入”</font>或<font color="#1b5e20">'C'</font>
字符串是字符的有序序列,可以对其中的字符进行索引<br><font color="#388e3c">"请"是“请输入带有符号的温度值:"的第0个字符</font>
索引与切片
实例
"请输入带有符号的温度值"
[0:3]
既从第0个字符起不到第三个字符:请输入
[3:]
既从第三个字符起到最后一个字符:带有符号的温度值
数字类型
<font color="#ff9800">整数</font>类型
数学中的整数<br><font color="#388e3c">1或2</font>
<font color="#ff9800">浮点</font>数类型
数学中的实数,带有小数部分<br><font color="#388e3c">1.3或1.4</font>
列表类型
由0个或多个数据组成的有序序列
列表使用[]表示,采用逗号(,)分隔各元素<br>[<font color="#388e3c">'F','f'</font>]表示两个元素<font color="#388e3c">'F'和'f'</font>
使用保留字<b><font color="#fbc02d">in</font></b>判断一个元素是否在列表中<br>TempStr[-1] in <font color="#388e3c">['C','c']</font>判断前者是否与列表中某个元素相同
语句与函数
语句
赋值语句<br>
由赋值符号构成的一行代码。
<ul><li>赋值语句用来给变量赋予新的数据值</li></ul>
<font color="#388e3c">C</font>=(<font color="#de52a8">eval(</font><font color="#388e3c">TempStr[e:-1]</font><font color="#de52a8">)</font>-32)/1.8 <br><font color="#9e9e9e">#右侧运算结果赋给变量c</font><br>
<ul><li>赋值语句右侧的数据类型同时作用于变量</li></ul>
<font color="#388e3c">TempStr</font>=input(") <br><font color="#9e9e9e">#input()返回一个字符串, TempStr也是字符串</font>
分支语句
<font color="#b71c1c">由判断条件决定程序运行方向的语句</font><br>
<ul><li>使用保留字<font color="#ff9800">if elif else</font>构成条件判断的分支结构</li></ul>
if TempStr[-1] in ['F','f]:<br><font color="#9e9e9e">#如果条件为True则执行冒号后语句</font>
<ul><li>每个保留字所在行最后存在一个<font color="#b71c1c">冒号(:)</font>,语法的一部分<br>冒号及后续<font color="#b71c1c">缩进</font>用来表示后续语句与条件的所属关系</li></ul>
函数
根据输入参数产生不同输出功能的函数。<br>
<ul><li>类似数学中的函数, y= f(x)</li></ul>
<font color="#ff00ff">print</font><font color="#212121">(</font><font color="#388e3c">"输入格式错误"</font><font color="#212121">)</font><font color="#ff00ff"> </font> <font color="#9e9e9e">#打印输出</font><font color="#388e3c">“输入格式错误”</font>
<ul><li>函数采用<函数名>(<参数>)方式</li></ul>
使用<font color="#ff00ff">eval</font><font color="#212121">(</font>TempStr[0:-1]<font color="#212121">)</font> <font color="#9e9e9e"># TempStr[0: -1]是参数</font>
Python程序的输入输出
输入函数
输出函数
评估函数
练习总结
换行符
<font color="#b71c1c">\n</font>
将文字垂直方向打印
<font color="#f57f17">print</font>("\n".join("你好"))<br>#输出: 你<br> 好<br>
切片的应用
TempStr[1:]<br>#可以获取除去第0个字符之后的所有字符<br>
"F{:.2f}".format(F)
输出的F位于数值前面。
end=""
print()中增加end=""参数表示输出后不增加换行,多个print()可以连续输出。
第2章Python基本图形绘制
2.1 Python语言
计算机技术的演进
<font color="#1976d2">2017至今</font> 人工智能时代
人类的问题
<font color="#1976d2">2008-2016(8年)</font>复杂信息系统时代<br>
数据问题
<font color="#1976d2">1981-2008 (27年)</font>网络和视窗时代<br>
交互问题
<font color="#1976d2">1946-1981 (35年)</font>计算机系统结构时代
计算能力问题
编程语言的多样初心
Python语言的特点
创立者
Guido van Rossum
特点<br>
“超级语言”的诞生
编程语言种类的发展
超级语言<br>
粘性整合已有程序,具备庞大计算生态
高级语言
接近自然语言,编译器,与CPU型号无关
汇编语言
有助记符,汇编器,与CPU型号有关
机器语言
代码直接执行,与CPU型号有关
2.2 实例2:python蟒蛇绘制
问题分析
设计需要绘制的蟒蛇形状
<font color="#7b1fa2">问题1:计算机绘图原理是什么?</font><br>#一个程序为何能够产生窗体?为何能够在窗体上绘制图形?
问题2:Python蟒蛇绘制从哪里开始?<br><font color="#000000">#如何绘制一条线?如何绘制一个弧形?如何绘制一条蟒蛇?</font>
编程
子主题
举一反三
<ul><li>Python蟒蛇的颜色:黑色、白色、七彩色</li></ul>
<ul><li>Python蟒蛇的长度:1节、3节、10节</li></ul>
<ul><li>Python蟒蛇的方向:向左走、斜着走.</li></ul>
2.3 turtle库的使用
turtle库基本介绍
turtle绘图体系,诞生于1969年,主要用于程序设计入门<br>
Python的<font color="#fbc02d">标准库</font>之一
入门级的图形绘制函数
Python计算生态
<font color="#2196f3">python计算生态=标准库+第三方库</font>
标准库:随解释器直接安装到操作系统中的功能模块
第三方库:需要经过安装才能使用的功能模块
库Library、包Package、模块Module,统称模块
turtle绘图窗体布局
概念
turtle的一个画布空间,最小的单位是像素
其中<font color="#388e3c">width、height</font>,表示绘图窗体的长和高即大小<br><font color="#388e3c">startx、starty</font>,表示绘图窗体相对于显示屏左上角的坐标
turtle空间坐标体系
绝对坐标
即以绘图窗体中心为原点的坐标系
turtle.goto(x,y)
海龟坐标
即以海龟的当前位置为坐标原点的坐标系
<font color="#1976d2">turtle.</font><font color="#ff9800">fd</font>(<font color="#4caf50">d</font>) <font color="#000000">前进方向</font><br><font color="#1976d2">turtle.</font><font color="#ff9800">bk</font>(<font color="#4caf50">d</font>) <font color="#000000">后退方向</font><br><font color="#1976d2">turtle</font><font color="#0d47a1">.</font><font color="#ff9800">circle</font>(+<font color="#4caf50">r,angle</font>) <font color="#000000">左侧方向</font><br><font color="#1976d2">turtle.</font><font color="#ff9800">circle</font>(-<font color="#4caf50">r,angle</font>) <font color="#000000">右侧方向</font>
对turtle.circle(r,angle)解释:<br>r为正的时候,圆心在海龟左侧,负的时候在海龟的右侧<br>angle为正的时候,海龟正着行进,负的时候海龟倒着行进
turtle角度坐标体系
绝对角度
即以绘图窗体中心为原点,x轴为0°或360°的角度坐标体系
turtle.seth(angle)
海龟角度
即以海龟为中心的角度坐标体系
<font color="#1976d2">turtle.</font><font color="#ff9800">left</font>(<font color="#4caf50">angle</font>) <font color="#212121">以海龟前进方向向左转angle度</font><br><font color="#1976d2">turtle.</font><font color="#ff9800">right</font>(<font color="#4caf50">angle</font>) <font color="#000000">以海龟前进方向向右转angle度</font>
RGB色彩体系
即有红绿蓝三种颜色构成的万物色
默认采用小数值,可切换为整数值<br>
1.0 RGB的小数值模式<br>0-255 RGB的整数值模式
<font color="#1976d2">turtle</font>.<font color="#ff9800">colormode</font>(<font color="#4caf50">mode</font>)<br>
2.4 turtle程序语法元素<br>
库引用与import
常规用法<br>
<font color="#fbc02d">import</font> <库名><br><库名>.<函数名>(<函数参数>)
使用<font color="#fbc02d"><b>import</b></font>保留字完成,采用<a>.<b>()编码风格<br>
库引用是扩充python程序功能的方式
多种用法
用法1
<font color="#fbc02d">from</font> <库名><font color="#fbc02d">import</font> <函数名><br><font color="#fbc02d">from</font> <库名> <font color="#fbc02d">import*</font><br><函数名>(<函数参数>)
使用<b><font color="#fbc02d">import</font></b>和<font color="#fbc02d"><b>from</b></font>保留字共同完成
用法2
<font color="#fbc02d">import</font> <库名> <font color="#fbc02d">as</font> <库别名><br><库别名>.<函数名>(<函数参数>)<br>
使用<font color="#fbc02d"><b>import</b></font>和<b><font color="#fbc02d">as</font></b>保留字共同完成
给调用的外部库关联一个更短、更适合自己的名字
两种方法比较
turtle画笔控制函数
特点
画笔操作后一直有效,一般成对出现<br>
画笔设置后一直有效,直至下次重新设置
函数
画笔起落
<b>turtle.penup()</b> 别名:<b>turtle.pu()</b><br>抬起画笔,海龟在飞行,既不在画布上形成图案<br><br><b>turtle.pendown()</b> 别名:<b>turtle.pd()</b><br>落下画笔,海龟在爬行
画笔宽度<b></b>
<b>turtle.pensize(width)</b> 别名:<b>turtle.width(width)</b><br>画笔宽度,海龟的腰围
画笔颜色
<b>turtle.pencolor(color) </b><br>
color为颜色字符串或rgb值画笔颜色,有三种形式:<b><br>turtle.pencolor(<font color="#388e3c">"purple"</font>)<br></b>RGB的小数值: <b>turtle.pencolor(<font color="#388e3c">0.63, 0.13, 0.94</font>)</b><br>RGB的元组值: <b>turtle.pencolor(<font color="#388e3c">(0.63,0.13,0.94)</font>)</b>.
turtle运动控制函数
走直线<b><font color="#b71c1c">fd()</font></b>
<b>turtle.forward(<font color="#388e3c">d</font>) </b> 别名<b>turtle.fd(<font color="#388e3c">d</font>)</b>
向前行进,海龟走直线,d:行进距离,可以为负数
走曲线<b><font color="#b71c1c">circle()</font></b>
turtle.circle(<font color="#388e3c">r, extent=None</font>)
当r为正值,则圆心在海龟左侧
当r为负值,则圆心在海龟右侧
#根据半径r绘制extent角度的弧形
r:默认圆心在海龟左侧r距离的位置;extent:绘制角度,默认是360度整圆
turtle方向控制函数
绝对角度<b><font color="#b71c1c">seth()</font></b>
<b>turtle.setheading(<font color="#388e3c">angle</font>) </b> 别名<b>turtle.seth(<font color="#388e3c">angle</font>)</b>
改变行进方向,海龟走角度;angle:行进方向的绝对角度
海龟角度
<b>turtle.left(<font color="#388e3c">angle</font>)</b> 海龟向左转<br><b>turtle.right(<font color="#388e3c">angle</font>) </b> 海龟向右转
angle:在海龟当前行进方向上旋转的角度
基本循环语句
range()函数
<font color="#f57f17">for</font> 和 <font color="#f57f17">in</font> 保留字<font color="#f57f17"><br><br>for</font> <变量> <font color="#f57f17">in</font> range(<次数>):<br> <被循环执行的语句><br><br><变量>表示每次循环的计数,0到<次数>-1<br>
range(N)产生0到N-1的整数序列,共N个<br>range(5) 0, 1, 2, 3, 4<br><br>range(M, N)产生M到N-1的整数序列,共N-M个<br>range(2, 5) 2, 3, 4<br>
Python蟒蛇绘制"代码分析
准备画笔
设置绘图窗体
设置画笔位置
设置画笔尺寸、颜色<br><font color="#f44336"><br>⚠注意:是turtle.pensize(),pencolor();<br>别漏掉pen,因为是画笔的尺寸</font>
设置画笔方向
循环画4次蟒蛇关节
<font color="#f57f17">for</font> i <font color="#f57f17">in</font> range(4):<br> <被循环执行的语句>
脖子
头部
程序结束后窗口不关闭:turtle.done()<br>
第3章基本数据类型
3.1数字类型及操作
整数类型
解释
<font color="#1976d2">与数学中的概念一致,整数无限制。</font><br><ul><li><span style="font-size:inherit;">可正可负,没有取值范围限制</span></li><li>pow(x,y)函数:计算xy,想算多大算多大</li></ul>
>>><font color="#ba68c8">pow</font>(2,100) #计算2的100次方<br><font color="#1976d2">1267650600228229401496703205376</font><br><br>>><font color="#ba68c8">pow</font>(2, pow(2, 15)) #计算2的2的15次方<br><font color="#1976d2">1415461031044954789001553.....</font>
四种进制表现形式
十进制: 1010, 99, -217
二进制,以0b或OB开头: 0b010, -0B101
八进制,以0o或0O开头: 0o123, -0O456
十六进制,以0x或0X开头: Ox9a,-0X89<br>
浮点数类型
解释
<font color="#1976d2">与数学中实数的概念一致</font><br><br><ul><li>带有小数点及小数的数字</li><li>浮点数取值范围和小数精度都存在限制,但常规计算可忽略</li><li>取值范围数量级约<span class="equation-text" data-index="0" data-equation="-10^308" contenteditable="false"><span></span><span></span></span> 至<span class="equation-text" data-index="1" data-equation="10^308" contenteditable="false"><span></span><span></span></span>,精度数量级</li></ul><span class="equation-text" data-index="2" data-equation="10^-16" contenteditable="false"><span></span><span></span></span>
不确定尾数
<font color="#1976d2">浮点数间运算存在不确定尾数,不是bug</font>
>>> 0.1 + 0.30<br>0.4<br><br>>>>0.1 + 0.2<br>0.3<font color="#1976d2"><u>0000000000000004</u></font><br> <font color="#f44336">不确定尾数</font><br>
<font color="#1976d2">二进制表示小数,可以无限接近,但不完全相同</font>
0.1 <font color="#1976d2"> 53位二进制表示小数部分,约<span class="equation-text" contenteditable="false" data-index="0" data-equation="10^-16"><span></span><span></span></span></font><br>0.00011001100110011001100110011001100110011001100110011010 (二进制表示)<br>0.1000000000000000055511151231257827021181583404541015625 (十进制表示)
round()函数
round(x, d):对x四舍五入, d是小数截取位数
浮点数间运算与比较用round()函数辅助
不确定尾数一般发生在10-16左右, round()十分有效
<font color="#ff0000">浮点数间运算存在不确定尾数</font><br><br>>>> 0.1 + 0.20==0.3<br><font color="#1976d2">False</font><br>>>><font color="#ba68c8">round</font> (0.1+0.2, 1)==0.3<br><font color="#1976d2">True</font>
科学计数法
浮点数可以采用科学计数法表示
使用字母e或E作为幕的符号,以10为基数,格式如下:<br><b><font color="#1976d2"><a>e<b></font></b> 表示 <span class="equation-text" data-index="0" data-equation="a*10^b" contenteditable="false"><span></span><span></span></span>
例如: <br><font color="#1976d2">4.3e-3</font> 值为0.0043<br><font color="#1976d2">9.6E5</font> 值为960000.0
复数类型
解释
<b><font color="#1976d2">与数学中复数的概念一致<br></font></b>如果<span class="equation-text" data-index="0" data-equation="X^2 " contenteditable="false"><span></span><span></span></span>=-1,那么x的值是什么?<br>定义<font color="#b71c1c">j</font>= <span class="equation-text" data-index="1" data-equation="\sqrt{-1}" contenteditable="false"><span></span><span></span></span>,以此为基础,构建数学体系<br>a+b<font color="#b71c1c">j</font>被称为复数,其中, a是实部,b是虚部
例子
Z= 1.23e-4+5.6e+89j<br>实部是什么? z.real获得实部<br>虚部是什么? z.imag获得虚部
数值运算操作符
操作符
完成运算的一种符号系统
二元操作符
数值运算函数
以函数形式提供的数值运算功能
余数Z使得运算结果的余数始终保持再一定范围内,如例子中10000是指保留四位数结果
<br>
数据类型转换函数
3.2实例3:天天向上的力量
3.3 字符串类型及操作
字符串类型的表示
字符串
单行字符串
一对单引号
一对双引号
多行字符串
一对三单引号
一对三双引号
字符串的序号
字符串的使用
索引
-索引:返回字符串中单个字符<字符串>[M]
切片
-切片:返回字符串中一段字符子串<字符串>[M:N]
字符串切片高级用法
缺失
-<字符串>[M:N],M缺失表示至开头,N缺失表示至结尾
例子:"O一二三四五六七八九十"[:3] 结果是 "O一二"
步长
-<字符串>[M: N: K] ,根据步长K对字符串切片
"O一二三四五六七八九十"[1:8:2] 结果是 "一三五七"
逆序
当步长K取负值,"〇一二三四五六七八九十"[:-1] 结果是"十九八七六五四三二一〇
转义符
字符串操作符
字符串处理函数
字符串处理方法
字符串类型的格式化
3.4
收藏
0 条评论
下一页