《Python语言基础与应用》全套教学课件_第1页
《Python语言基础与应用》全套教学课件_第2页
《Python语言基础与应用》全套教学课件_第3页
《Python语言基础与应用》全套教学课件_第4页
《Python语言基础与应用》全套教学课件_第5页
已阅读5页,还剩451页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.1程序设计语言

1.2python语言

1.3Python开发环境

第1章python语言初体验全套可编辑PPT课件考纲考点高级语言的执行方式:编译与解释python程序的安装和编辑pip工具安装第三方库知识导图概述高级语言的执行1.1程序设计语言程序设计语言是一种用于交互(交流)的人造语言

-机器语言:机器能够直接识别和执行的二进制代码

-

汇编语言:使用助记符代替机器语言中的二进制代码

-高级语言:接近人类的自然语法和结构来编写程序1.1.1概述1.1.2高级语言的执行计算机执行源程序的两种方式:编译和解释

-源代码:采用某种编程语言编写的计算机程序,人类可读

例如:result=2+3

-

目标代码:计算机可直接执行,人类不可读(专家除外)

例如:1101001000111011编译将源代码一次性转换成目标代码的过程执行编译过程的程序叫作编译器源代码目标代码编译器程序输入结果输出程序执行解释将源代码逐条转换成目标代码同时逐条运行的过程执行解释过程的程序叫作解释器源代码解释器程序输入结果输出编译和解释

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

解释:每次程序运行时随翻译随执行(类似实时的同声传译)源代码目标代码编译器程序输入结果输出程序执行源代码解释器程序输入结果输出compilerinterpreterPython语言的发展Python语言的特点Python语言的应用领域第一个Python程序1.2Python语言

-诞生于20世纪90年代初

-

解决兼容性问题的Python3.0

-目前持续在各个领域发挥作用1.2.1Python语言的发展

-语法简洁

-

面向对象

-可移植

-解释型1.2.2Python语言的特点1.2.3Python语言的应用领域移动设备嵌入式设备系统运维大数据云计算1.2.4第一个Python程序>>>print("Hello,World")Hello,World

其中第一行的”>>>”是python语言环境中的提示符,我们可以在提示符后面输入python语句。第二行就是这条python语句的输出结果了。解释器的安装Python程序的编辑Pip工具简介1.3Python的开发环境

-根据实际需要选择相应的版本,有以下考虑:1.新特性,可选择最新版本2.稳定性,可选择3.8或者3.73.与库的兼容性,选择兼容性最好的版本4.先前的经验,可选择熟悉版本1.3.1解释器的安装Python官方提供适用于小规模程序开发

-下载地址: /downloads下载页安装Python解释器有两个重要的工具:IDLE:Python集成开发环境,用来编写和调试Python代码;Pip:Python第三方库安装工具,用来在当前计算机上安装第三方库

-交互式

-文件式

1.3.2Python程序的编辑输入代码,可以立即查看程序的输出结果或执行效果只适合简短代码的测试,且不方便修改,退出也无法保存代码,不适合实际的编程。交互式允许程序员在编程过程中与计算机进行实时互动。在IDLE中,可以通过选择File->NewFile来创建一个新的Python文件文件式在文件中编写代码,然后保存并运行文件编辑窗口如下图所示注意程序运行的结果会显示在idle的交互式窗口中此外,也可以通过Windows的命令行(cmd.exe)运行Python程序,对于文件名称为code.py的文件,可以使用命令行python

code.py运行这个程序。在图形化操作系统中,可以通过鼠标点击直接运行Python程序。没有安装Python解释器的操作系统无法直接运行Python程序,需要将Python源代码打包变成可执行文件,这个过程叫做“程序发布”。1.3.3pip工具pip是Python的一个包管理工具,用于安装、升级、卸载Python包,用于安装python的第三方库使用pip工具需要在命令行窗口中进行常用pip命令及使用方法使用pip命令安装第三方库本章小结在本章中,我们首先概览了程序设计语言的发展,从机器语言到高级语言的演变过程中,看到了编程的便利性和效率不断提升。接着,我们深入探讨了Python语言的特点和应用领域,其简洁、易读的语法以及广泛的应用领域使得Python成为编程界的明星。最后,我们还介绍了Python开发环境的搭建,包括解释器的安装、程序的编辑以及pip工具的使用,为后续的学习和实践打下了坚实的基础。让我们携手继续探索Python的奥妙和无限可能吧!。2.1Python语言的编程规范

2.2常量、变量与对象

2.3数据类型

2.4Python的语句概述

2.5输入/输出函数

2.6turtle库

第2章Python的基本语法概述考纲考点程序的基本语法元素:程序的格式框架、缩进、

注释、变量、命名、保留字、数据类型、赋值语

句、引用语句、控制语句基本输入输出函数:input()、eval()、print()Turtle库知识导图2.1Python语言的编程规范2.1.1代码缩进

Python语言采用严格的“缩进”来表明程序的格式框架。缩进指每一行代码开始前的空白区域,用来表示代码之间的包含和层次关系。

1个缩进

=4个空格缩进是Python语言中表明程序框架的唯一手段缩进

当表达分支、循环、函数、类等程序含义时,在if、while、for、def、class等保留字所在完整语句后通过英文冒号(:)结尾,表示缩进的开始。

python程序是依靠代码块的缩进来体现代码之间的逻辑关系的,缩进结束就表示一个代码块结束了。

同一个级别的代码块的缩进量必须相同例2-1编程,根据输入的年份和月份计算出该月的天数。代码如下:year=int(input("请输入年份:"))month=int(input("请输入月份:"))ifmonth==2:ifyear%4==0andyear%100!=0oryear%400==0:days=29else:days=28elifmonthin[4,6,9,11]:days=30else:days=31print("本月天数是:",days)2.1.2注释注释是代码中的辅助性文字,会被编译或解释器略去,不被计算机执行,一般用于程序员对代码的说明。Python语言采用#表示一行注释的开始,ꢀ

ꢀ注释可以在一行中任意位置通过“#”开始,其后的本行内容被当作注释,而之前的内容仍然是python执行程序的一部分。注释

多行注释可以用三个单引号(''')括起来。ꢀ

ꢀꢀ

ꢀ2.1.3续行ꢀ

ꢀ续行符可以提高代码的可读性和可维护性。当一行代码过长时,不仅会导致代码难以阅读和修改,还会影响代码的性能。可以使用反斜杠(\)来实现代码的续行

还可以使用括号续行。Python会自动将这几行代码当作一行代码来处理,文件方式和交互方式下均可使用。ꢀ

ꢀꢀ

ꢀ2.1.4标识符的命名ꢀ

ꢀ标识符是用户编程时使用的名字。对标识符命名是编程语言规则的一部分,它规定了如何为变量、函数、类、模块等编程元素取名字。一般采用字母、数字、下划线,甚至汉字等字符及其组合进行命名,但要注意的是,首字符不能是数字,不允许使用空格和特殊字符(如感叹号、问号、冒号等)例如:变量名my_variable,函数名_my_function,类名MyClass等等

标识符对大小写敏感,即china和China是两个不同的名字;对标识符命名还需要注意的是不能与python的保留字相同。ꢀ

ꢀꢀ

ꢀꢀ

ꢀ续行符可以提高代码的可读性和可维护性。当一行代码过长时,不仅会导致代码难以阅读和修改,还会影响代码的性能。可以使用反斜杠(\)来实现代码的续行

保留字,也称为关键字,指被编程语言内部定义并保留使用的标识符。程序员编写程序不能定义与保留字相同的标识符。

每种程序设计语言都有一套保留字,保留字一般用来构成程序整体框架、表达关键值和具有结构性的复杂语义等。掌握一门编程语言首先要熟记其所对应的保留字。2.1.5保留字

Python3.x保留字列表

(35个)2.2常量、变量与对象2.2.1常量所谓常量,一般是指不需要改变也不能改变的字面值ꢀ

ꢀ在python中,还会出现一类符号常量,一般用大写字母来表示例如一个数字5,一个字符串“hello!”,一个列表[1,2,3],等等。例如:MAX_VALUE、PI

Python中并没有真正的符号常量,由于Python中没有强制符号常量类型的定义方式,这些所谓的符号常量类型只是程序员约定俗成的表示方式而已,在实际操作中,其本质还是变量。ꢀ

ꢀꢀ

ꢀ>>>MAX_VALUE=100>>>print(MAX_VALUE)100>>>MAX_VALUE=200>>>print(MAX_VALUE)2002.2.2变量

变量是保存和表示数据值的一种语法元素,在程序中十分常见。顾名思义,变量的值是可以改变的,能够通过赋值(使用等号=表达)方式被修改,例如(注意空格):ꢀ>>>x=5>>>x5>>>x="中国">>>x'中国'2.2.3对象每个对象由:标识(identity),类型(type),值(value)组成在Python中一切皆对象。值表示对象所存储的数据的信息。使用print(obj)可以直接打印出值标识用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象的标识类型用于表示对象存储的“数据”类型。可以限制对象的取值范围以及可执行的操作。使用内置函数type(obj)可返回对象的所属类型其本质:一个内存块,拥有特定的值,支持特定类型的相关操作特别说明:

在python中,变量其实是对象的引用,因为变量存储的是对象的地址,变量通过地址引用了“对象”。变量位于:栈内存对象位于:堆内存对象没有被引用的时候,会被回收到垃圾堆栈内存堆内存3xy1985553168>>>x=3>>>id(x)#查看x的引用地址1985553168>>>id(3)#查看对象3的地址1985553168

在Python中,对象可以分为可变对象和不可变对象。ꢀ

ꢀꢀ

ꢀ不可变对象是指该对象所指向的内存中的值不能被改变。当改变某个变量时,由于其所指的值不能被改变,因此会开辟一个新的地址,变量再指向这个新的地址。在Python中,数值类型(int和float)、字符串(str)和元组(tuple)都是不可变对象。不可变对象栈内存堆内存3x198555316841985553200>>>x=3>>>id(x)1985553168>>>id(3)1985553168>>>x=x+1>>>id(x)1985553200>>>id(3)1985553168>>>id(4)1985553200ꢀ

ꢀꢀ

ꢀ可变对象是指该对象所指向的内存中的值可以被改变。变量(准确的说是引用)改变后,实际上是其所指的值直接发生改变,并没有发生复制行为,也没有开辟出新地址,通俗点说就是原地改变。在Python中,列表(list)、字典(dict)和集合(set)是可变对象。可变对象栈内存堆内存1x3063083889992234>>>x=[1,2,3]#x为列表>>>id(x)#查看x的引用地址3063083889992>>>x.append(4)#给x增加元素4>>>x[1,2,3,4]#此时x值发生变化>>>id(x)#x的引用地址没变3063083889992

Python中,可变对象和不可变对象其值都能够被引用,就是都可以做“读”操作。但是“写”操作只能对可变对象进行。ꢀ

ꢀꢀ

ꢀ2.3数据类型

Python语言支持多种数据类型,最简单的包括数字类型、字符串类型,略微复杂的包括元组类型、集合类型、列表类型、字典类型等。2.3.1数字类型

,Python语言提供3种数字类型:整数、浮点数和复数,分别对应数学中的整数、实数和复数。整数

一个整数值可以表示为十进制、十六进制、八进制和二进制等不同进制形式。在Python3中,整数没有大小限制,可以是任意大小的整数。十进制:

1010十六进制:0x3F2八进制:

0o1762二进制:

0b001111110010浮点数

一个浮点数可以表示为带有小数点的一般形式,也可以采用科学计数法表示,只有十进制形式。例如:浮点数123.456,两种表示方式如下:一般形式:123.456科学计数法:

1.23456e2整数与浮点数混合运算时,表达式自动转成浮点数复数

Python中的复数由实部和虚部组成,可以使用a+bj或者complex(a,b)表示,其中a和b都是实数,且a称为复数的实部,b称为复数的虚部。可以使用j或J表示复数的虚部>>>x=5+6j>>>y=7+8j>>>x+y(12+14j)>>>x*y(-13+82j)2.3.2字符串类型

Python语言中,字符串类型数据主要用于处理一些文本类信息,有字符串类型的常量和变量,单个字符也是字符串。

Python使用单引号、双引号、三个单引号,三个双引号作为定界符表示字符串,且不同的定界符之间可以相互嵌套使用>>>x="456">>>type(x)<class'str'>>>>x='happy'>>>type(x)<class'str'>>>>x='''Hesaid,"HappyBirthday"'''#为了输出双引号,引号嵌套使用>>>x'Hesaid,"HappyBirthday"'2.3.3布尔类型布尔类型数据只有两个值:True和False。布尔类型的特点是占用内存空间小,使用灵活,常用于if语句、循环语句、条件表达式中,进行逻辑判断和条件判断布尔类型可以与其他数据类型进行转换,如与整数类型(int)进行转换时,True对应1,False对应0。>>>TrueandTrue#与运算True>>>TrueandFalseFalse>>>FalseandTrueFalse>>>TrueorTrue#或运算True>>>TrueorFalseTrue>>>FalseorTrueTrue>>>notTrue#非运算False>>>notFalseTrue>>>3*True#布尔值可以直接参与整数运算3>>>3*False0and是逻辑与运算,or是逻辑或运算,not是逻辑非运算2.3.4组合数据类型

在Python中,组合数据类型是指可以包含不同类型的元素的数据结构。Python中的组合数据类型主要包括列表(list)、元组(tuple)、字典(dictionary)和集合(set)。列表列表是一种有序的元素集合,可以随时添加或删除其中的元素。列表中的元素可以是任何类型,例如字符串、整数、浮点数、其他列表等。列表使用“[]”作为定界符。>>>x=[36,"happy",3.14]>>>type(x)<class'list'>元组元组与列表类似,是一个有序的元素集合,但元组是不可变对象,一旦创建就不能更改。元组中的元素也可以是任何类型。元组使用“()”作为定界符。>>>x=(56,"happy",[3,5,7])>>>x(56,'happy',[3,5,7])>>>type(x)<class'tuple'>字典字典是无序的键值对集合。字典中的元素以键值对的形式存在,你可以通过键来访问其对应的值。字典中的键必须是唯一的。值可以是任何类型,包括列表、元组、字典等。字典使用“{}”作为定界符。>>>x={'name':'John','age':18,'hobbies':['fishing','reading']}>>>x{'name':'John','hobbies':['fishing','reading'],'age':18}>>>type(x)<class'dict'>集合集合是一个无序的唯一元素集合。集合中的元素都是唯一的,不会重复。集合支持一些数学集合的操作,如并集、交集、差集等。集合中的元素只能是不可变对象。集合也使用“{}”作为定界符。>>>x={3.14,4,'abc',(4,6)}>>>x{3.14,4,(4,6),'abc'}>>>type(x)<class'set'>2.4Python的语句概述

2.4.1表达式

产生或计算新数据值的代码片段称为表达式。表达式类似数学中的计算公式,以表达单一功能为目的,运算后产生运算结果,运算结果的类型由操作符或运算符决定。

表达式一般由数据和操作符等构成,这是构成Python语句的重要部分,单个常量或变量可以看作最简单的表达式。现在主要区别一下表达式和语句,示例代码如下:>>>3*26>>>x=3*2>>>x62.4.2赋值语句

Python语言中,=表示“赋值”,即将等号右侧的值计算后将结果值赋给左侧变量,包含等号(=)的语句称为“赋值语句”<变量>=<表达式>示例代码如下:>>>x=99#给变量x赋值为整数值99>>>y=3.33#给变量y赋值为浮点数3.33>>>z="你好,中国!"#给变量z赋值为字符串"你好,中国!"多重赋值同时将多个变量的值赋给多个表达式>>>x,y,z=3,7.8,"hi"#多重赋值>>>x3>>>y7.8>>>z'hi'>>>x,y=y,x#多重赋值,交换x,y的值>>>x7.8>>>y3增强赋值使用+=、-=、*=、/=等运算符对变量进行增强赋值。>>>x,y,z=1,2,3>>>x+=10#等价于x=x+10>>>y-=5#等价于y=y-5>>>z*=2#等价于z=z*2链式赋值可以将同一个值赋给多个变量。>>>x=y=z=3#链式赋值>>>x3>>>y3>>>z3解构赋值将一个元组或列表的值解包并赋给多个变量。>>>x,y=[1,2]#将列表[1,2]解包,并将1赋给x,2赋给y>>>x1>>>y22.4.3import语句在python默认的安装中仅包含了核心模块,启动python时也只加载了核心模块,还有一些标准库是启动时没装入内存的,这样做的好处是可以减小程序运行的压力。所以,当用户需要使用标准库和第三方库的时候,就会有一步非常重要的第一步操作,即导入库,导入使用的是import语句。下面介绍三种格式的导入的方法。方法1这种格式的导入语句,在使用的时候需要在模块对象的前面加上模块名作为前缀,必须以“模块名.对象“的方式进行访问。如果模块名字很长的话,可以为导入的模块设置一个别名,使用“别名.对象名”进行访问。

格式:import模块名[as别名]importmath#导入标准库mathresult=math.sqrt(16)#计算16的平方根print(result)#输出结果importrandomasr#导入标准库random,并设置别名rx=r.random()#获得[0.0,1.0)区间的随机小数方法2这种格式的导入语句,仅导入明确指定的对象,也可以为导入的对象确定一个别名。此导入方式可以减少查询次数,提高访问速度,同时也可以减少输入量,不需要使用模块名为前缀。

格式:from模块名import对象名[as别名]>>>frommathimportsin#导入标准库math中的指定对象sin>>>sin(3.14)0.0015926529164868282>>>cos(3.14)#math库中的cos对象并没导入,出错Traceback(mostrecentcalllast):File"<pyshell#100>",line1,in<module>cos(3.14)NameError:name'cos'isnotdefined>>>frommathimportcosasf#导入cos,并起别名为f>>>f(3.14)-0.9999987317275395方法3是方法2的极端情况,可以一次导入模块中所有对象。一般不推荐使用,一方面,会降低代码的可读性,有时很难区分自定义函数和从模块中导入的函数;另一方面,会导致命名空间的混乱。如果多个模块中有同名的对象,只有最后一个导入的模块中的对象是有效的。

格式:from模块名import*>>>frommathimport*#导入math库>>>gcd(12,24)#求最大公约数12>>>pi#常数ℼ3.141592653589793>>>log2(8)#计算以2为底的8的对数3.0>>>sin(4)#求sin函数值-0.75680249530792822.4.4控制语句

除了赋值语句外,Python程序还包括一些其他的语句类型,例如,分支语句和循环语句等。更多的分支和循环内容将在第4章介绍。这里仅简要介绍这两类语句的基本使用。ꢀꢀ分支语句if

if语句,是一种选择结构,有单分支、二分支和多分支,其作用是根据判断条件选择程序执行路径。示例代码如下:x=10ifx>5:print("x大于5")else:print("x不大于5")ꢀꢀfor语句

for语句,是一种循环结构,其作用是根据判断条件确定一段程序是否需要反复执行。示例代码如下:>>>foriinrange(10): print(i,end=",")0,1,2,3,4,5,6,7,8,9,2.5输入/输出函数2.5.1input()函数

获得用户输入之前,input()函数可以包含一些提示性文字<变量>=input(<提示性文字>)ꢀ

不论用户输入什么内容,input()一律作为字符串对待,必要时可以使用内置函数int()、float()或eval()对用户输入的内容进行类型转换>>>x=input("请输入数字:")请输入数字:3.14>>>x'3.14'#3.14两边有单引号>>>type(x)<class'str'>eval()

函数

eval(<字符串>)函数是Python语言中一个十分重要的函数,它能够以Python表达式的方式解析并执行字符串,将返回结果输出>>>aꢀ=ꢀeval("1.2ꢀ+ꢀ3.4")>>>print(a)4.6ꢀ

eval()函数经常和input()函数一起使用,用来获取用户输入的数字,使用方式如下:<变量>=eval(input(<提示性文字>))ꢀ>>>x=eval(input("请输入数字:"))请输入数字:789>>>type(x)<class'int'>>>>x=eval(input("请输入数字:"))请输入数字:7.89>>>type(x)<class'float'>2.5.2print()函数ꢀ内置函数print()用于输出信息,其输出的信息既可以到标准控制台(例如:显示器,打印机等设备)也可以到指定的文件。使用格式如下:

print(value1,value2,...,sep='',end='\n',file=sys.stdout,flush=False)参数说明1ꢀvalue1,value2,...:参数列表,要打印输出的值,可以是多个,用逗号分隔。示例代码如下:>>>a=35>>>print(a)#参数为变量35>>>print("好好学习,报效祖国")#参数为字符串常量好好学习,报效祖国>>>print(["g","o","o","d"])#参数为列表['g','o','o','d']>>>print(35.6)#参数为浮点数35.6参数说明1ꢀ参数既可以是字符串、数据值也可以是变量。当参数为变量的时候,运行结果是变量的值;当参数为字符串的时候,运行结果是不带引号的可打印字符;当参数中包含双引号字符串时,如上例中的列表“["g","o","o","d"]”,其输出结果采用单引号形式“['g','o','o','d']”;参数为其他数据类型时,直接输出表示。参数说明1ꢀprint()函数可以有多个参数,各参数之间用逗号分隔,其运行输出结果之间用一个空格分隔。示例代码如下:>>>b=10.25>>>print(b,b+1,b*2,1.25)#有四个参数,用逗号分隔10.2511.2520.51.25>>>print("富强","民主","文明")富强

民主

文明参数说明2ꢀsep='':可选参数,指定多个值之间的分隔符字符。如果省略不写,则默认为一个空格。示例代码如下:>>>print("富强","民主","文明",sep="**")富强**民主**文明参数说明3ꢀend='\n':可选参数,指定打印输出后的结束字符。如果省略不写,则默认为一个换行符。示例代码如下:>>>foriinrange(3):print(i)012>>>foriinrange(3): print(i,end='&')0&1&2&参数说明4ꢀfile=sys.stdout:可选参数,指定输出文件对象。如果省略不写,则默认为标准输出,即输出结果到屏幕或者打印机。示例代码如下:>>>withopen(r"d:\output.txt","w")asf: print("床前明月光",file=f)当执行完以上语句内容后,print()函数的file参数,将输出结果"床前明月光"写到一个名为output.txt的文件中参数说明5ꢀflush=False:可选参数,指定是否刷新输出缓冲区。如果省略不写,则默认为False。示例代码如下:>>>print("Hi,Mike!",flush=True)Hi,Mike!这个例子中,我们使用了flush=True参数,确保输出值立即显示在控制台上,一般使用中用默认方式即可。因为这个参数涉及到缓冲区的刷新,需要学到更高阶才能了解其具体区别,此处只做一般性了解2.6Turtle库

turtle(海龟)是Python重要的标准库之一,它能够进行基本的图形绘制。

turtle库绘制图形有一个基本框架:一个小海龟在坐标系中爬行,其爬行轨迹形成了绘制图形。对于小海龟来说,有“前进”、“后退”、“旋转”等爬行行为,对坐标系的探索也通过“前进方向”、“后退方向”、“左侧方向”和“右侧方向”等小海龟自身角度方位来完成。2.6.1turtle的坐标系ꢀꢀꢀꢀ在Python的turtle库中,我们主要使用了两种坐标系:空间坐标系和角度坐标系。空间坐标系:用来描述海龟在画布上的位置的坐标系。默认状态下,海龟的初始位置为画布的中心,也就是原点(0,0)。ꢀꢀꢀꢀ角度坐标系:这是用来描述海龟的方向的坐标系。绝对角度坐标系以向右方向水平位置为0度,逆时针方向为正方向。相对角度坐标系与海龟头的初始位置有关,以海龟头当前朝向的左右侧作为相对角度选择。2.6.2turtle的画布函数turtle中有画布(Canvas)和画笔两个工具元素。画布是turtle模块用于绘图的区域,在该画布上有一个坐标轴,坐标原点在画布的中心,turtle模块中的x轴正方向指向右侧,y轴正方向指向上方。坐标原点位于画布的中心。画布主要使用两个函数:

turtle.screensize(width,height,bgcolor)作用:设置画布的大小和背景颜色width参数:设置画布的宽度height参数:设置画布的高度bgcolor:设置背景颜色,其值为表示颜色的字符串或者RGB数值。当宽度或者高度为整数时表示的是像素;小数时,表示占据电脑屏幕的比例。当高度或者宽度超过窗口大小时,会出现滚动条。若不设置值,默认参数为(400,300,None)

turtle.setup(width,height,startx,starty)作用:设置主窗体的大小和位置参数:widthꢀ:窗口宽度,如果值是整数,表示的像素值;如果值是小数,表示窗口宽度与屏幕的比例;height:ꢀ窗口高度,如果值是整数,表示的像素值;如果值是小数,表示窗口高度与屏幕的比例;startx:窗口左侧与屏幕左侧的像素距离,如果值是None,窗口位于屏幕水平中央;starty:窗口顶部与屏幕顶部的像素距离,如果值是None,窗口位于屏幕垂直中央;2.6.3turtle的画笔函数ꢀꢀꢀꢀ画笔函数主要分为:画笔的状态函数和画笔运动函数。ꢀꢀꢀꢀ画笔状态函数主要是指设置使用画笔时颜色、画线的宽度、移动速度、爬行模式还是飞行模式等的函数。函数描述pendown()放下画笔,海龟处于爬行模式,移动画笔将绘制图形,别名pd(),down()penup()提起画笔,海龟处于飞行模式,移动画笔不会绘制图形,别名

pu(),up()pensize(width)设置画笔粗细,width数值越大越粗。别名

width()pencolor()设置画笔颜色,有一个参数或无参数,当无参数输入时,返回当前画笔颜色。color()设置画笔和背景颜色,有两个参数begin_fill()设置颜色填充区域的开始。在开始绘制拟填充颜色的图形前调用end_fill()与begin_fill配对使用,在完成了拟填充颜色的图形的绘制后使用。使用后该绘制图形完成颜色的填充。filling()返回填充状态,True为填充,False为未填充clear()清空当前窗口的所有绘制过的内容,但不改变当前画笔的位置和角度reset()清空当前窗口,并重置位置等状态为默认值hideturtle()隐藏画笔的turtle形状showturtle()显示画笔的turtle形状isvisible()如果turtle画笔形状可见,则返回True,否则返回Falsewrite(str,font=None)根据设置的字体形式,显示字符串画笔状态函数表2-2画笔状态函数表ꢀꢀꢀꢀcolorstring参数颜色参数的两种表达

格式:pencolor(colorstring)或者color(colorstring,colorstring)colorstring:表示颜色字符串,例如:“red”、”blue”、”yellow”例2-2.绘制红边正方形。程序分析:首先需要导入turtle库;在画图前需要设置画笔的颜色和粗细,可以使用turtle.pensize()函数和turtle.pencolor()函数;接下来绘制正方形,使用一个for循环来绘制正方形。可以设在每次循环中,海龟向前移动100个单位(使用turtle.forward()函数),然后向右转90度(使用turtle.right()函数)。这个过程重复4次,正好绘制一个正方形的四条边。最后,使用turtle.done()函数来结束程序。这个函数的作用是保持绘制的图形在屏幕上显示,直到用户手动关闭窗口。ꢀꢀꢀꢀ示例代码如下:importturtleturtle.pensize(20)#设置画笔线条宽度为20turtle.pencolor("red")#设置画笔颜色为红色#让海龟画一个正方形foriinrange(4):turtle.forward(100)#向前移动100turtle.right(90)#向右转90度turtle.done()#结束观察:从图中可以看到,虽然绘图结束,但是在正方形左上角还有一个“箭头”,这个“箭头”就是海龟,如果希望隐藏海龟,可以在“turtle.done()”语句前面使用hideturtle()函数。ꢀꢀꢀꢀ(r,g,b)参数格式:pencolor((r,g,b))或者color((r,g,b),(r,g,b))在Python的turtle模块中,颜色是通过RGB(红绿蓝)色彩模式来指定的。(r,g,b)色彩参数通过组合不同比例的红、绿、蓝三种基本颜色的值来产生各种颜色,其色彩覆盖了视力所能感知的所有颜色。(r,g,b)每个参数的取值范围为0-255整数或0-1小数,默认采用小数值。ꢀꢀꢀꢀ例2-3.绘制实心正方形。程序分析:

首先,使用turtle.begin_fill()函数来标记填充开始。然后使用一个for循环来绘制正方形的四条边。在每次循环中,海龟向前移动100个单位(使用turtle.fd()函数),然后向右转90度(使用turtle.right()函数)。这个过程重复4次,正好绘制一个正方形的四条边。最后,使用turtle.end_fill()函数来标记填充结束。这个函数与begin_fill()函数成对出现,用于定义填充的结束位置。这样,在正方形内部将会填充上指定的颜色。ꢀꢀꢀꢀ示例代码如下:importturtleturtle.pensize(20)#设置画笔线条宽度为20turtle.color((1,0,0),(0,0,1))#设置画笔颜色为红色,填充色为蓝色#让海龟画一个正方形turtle.begin_fill()#填充开始foriinrange(4):turtle.fd(100)#向前移动100turtle.right(90)#向右转90度turtle.end_fill()#填充结束,与begin_fill()成对出现turtle.done()#结束观察:begin_fill()和end_fill()函数作用是什么?ꢀꢀꢀꢀ画笔运动函数是指控制画笔的行进位置和角度的函数画笔运动函数函数描述forward(distance)沿当前画笔方向移动指定距离,distance参数单位为像素长度,值为负则向向反方向移动。别名fd(distance)backward(distance)沿当前画笔方向的反方向移动指定距离,distance参数单位为像素长度,值为负则向前进方向移动。别名:bk(distance)right(angle)在当前角度下顺时针转动angle度,是一个相对角度的运动。angle是角度的整数值。别名rt(angle)left(angle)在当前角度下逆时针转动angle度,是一个相对角度的运动。angle是角度的整数值。别名lt(angle)goto(x,y)将画笔移动到坐标为(x,y)的位置

setheading(angle)设置当前角度为angle,angle为绝对方向角度值,是角度的整数值。别名seth(angle)circle(radius,extent=None,steps=None)画半径为radius的圆:radius为正,则圆心在画笔的左边,为负,则圆心在画笔右边画半径为radius,角度为extent的弧画半径为radius的圆的内切正多边形,边数为stepshome()设置当前画笔位置为原点,朝向东undo()撤销画笔最后一步动作speed()设置画笔绘制速度,参数为0-10之间观察:“turtle.forward(100)”这条语句也可以写成“turtle.fd(100)”,这就是别名的妙用,表2-2和表2-3中函数的别名通常都比正式名要短得多,例如,pendown()可以直接使用pd(),是一样的使用效果。表2-3画笔运动函数2.6.4turtle库综合实践ꢀꢀꢀꢀ例2-4绘制电脑印花,印花图为红色,如图所示。。程序分析:该图是由不同半径的同心五边形构成。我们可以使用一个循环反复执行以下操作:使用fd()函数(即forward的缩写)使海龟向前移动i个单位,其中i是当前循环的索引值,每循环一次其值增大一次;使用right()函数使海龟向右转动一定的角度。ꢀꢀꢀꢀ代码如下:fromturtleimport*pencolor("red")foriinrange(200):#循环次数还可以增加减少

fd(i)right(360/5+1)#5就会是5边形,1是偏移角度,出来的效果不同hideturtle()#隐藏海龟箭头ꢀꢀꢀꢀ例2-5,绘制一个劳动勋章——一个圆里嵌套一个五角星,如图2.9所示。程序分析:需要画一个圆,然后在圆里面画一个五角星,并注意到圆的填充色为黄色,五角星的填充色为红色,填充颜色的先后顺序需要注意一下,后填充的颜色会覆盖先填充的颜色,最后还需要写上红色的字“劳动最光荣”。以上这些内容意味着需要计算一下圆、五角星和文字的位置,因此需要引入math库。ꢀꢀꢀꢀ代码如右:importmath#引入math库,为计算做准备importturtle#引入turtle库,为画图做准备turtle.colormode(255)#切换颜色模式为整数参数t1=turtle.Turtle()t2=turtle.Turtle()#创建两个对象,t1用来画圆,t2用来画五角星r=100#半径为100t1.color((217,217,25),(217,217,25))#前面一个参数是画笔颜色,后一个参数填充色t1.penup()#t1进入飞行模式t1.goto(0,200)#t1飞行到指定坐标,没在画布上留下轨迹t1.pendown()#t1回到爬行模式,此时可以开始绘制图形t1.begin_fill()t1.circle(r*(-1)-10)#参数为-110,则逆时针方向绘制圆t1.end_fill()t1.hideturtle()t2.color("red","red")#设置t2的画笔颜色和填充色t2.penup()t2.goto(r*(-1)*math.cos(math.pi/10),r*math.sin(math.sin(math.pi/10))+r)t2.pendown()t2.begin_fill()foriinrange(0,5):#开始画五角星

t2.forward(100*math.cos(math.pi/10)*2)t2.right(144)t2.end_fill()t2.penup()t2.goto(-60,-80)t2.pendown()t2.write("劳动最光荣",font=("宋体",18,"bold"))#在画布上添加文字信息t2.hideturtle()turtle.done()本章小结经过本章的深入学习,我们已对Python的基本语法体系形成了全面的认识,包括其特有的编程规范、常量与变量的定义、多元化的数据类型以及核心的语句结构。同时,通过实践,我们也领略到了Python中turtle库的独特魅力,它在图形绘制方面的出色表现让我们深感震撼。这些知识不仅为我们后续的编程之路奠定了坚实的基础,更让我们对Python的应用前景充满期待,代码的规范性和可读性对于程序的质量和程序员的职业素养有着不可忽视的影响。3.1数字类型

3.2数字类型的运算

3.3字符串类型

3.4字符串类型的操作

3.5精选案例

第3章Python的基本数据类型考纲考点

数字类型:整数类型、浮点数类型和复数类型

数字类型的运算:数值运算操作符、数值运算函数

字符串类型及格式化:索引、切片、基本的format()格式化方法

字符串类型的操作:字符串操作符、处理函数和处理方法

类型判断和类型间转换知识导图3.1数字类型

Python语言提供3种数字类型:整数类型、浮点数类型和复数类型,分别对应数学中的整数、实数和复数。

1010是一个整数类型,10.10是一个浮点数类型,10+10j是一个复数类型。3.1.1整数

在python中,整数类型的数据类型名为int,一般认为整数类型是没有取值范围的限制的。整数类型可以用4种进制表示:十进制、二进制、八进制、十六进制。一般情况下默认为十进制,如果需要表达成其他进制,需要在数字前面加上相应的引导符在python中,不同进制的整数之间是可以直接进行运算和比较的,运算结果默认为十进制示例代码如下:>>>0xf3+123366>>>0o1167+0b00111110010==0x2f2*2False

Python采用基于值的内存管理方式,如果为不同变量赋为相同值,这个值在内存中只保存一份,多个变量指向同一个值的内存空间的首地址。整数的缓存

当Python启动时,会对[-5,256]的整数进行缓存,因此如果多个变量的值介于该范围内,那么这些变量共用同一个值的内存空间。对于[-5,256]区间之外的整数,则有两种情况:1.同一个程序或交互模式下同一个语句中的同值不同名变量会共用同一个内存空间。2.不同程序或交互模式下不同语句是不遵守这个约定的。

Python以上范围仅适用于交互方式,如果是文件方式,则由于解释器做了一部分的优化,其缓存范围变为[-5,任意整数]3.1.2浮点数

Python中的浮点数是带小数点的数字,用于表示实数,可以是正数、负数或零。浮点数既可以用带小数点的数表示,也可以用科学计数法表示。

Python语言中的浮点数类型必须带有小数部分,小数部分可以是0,例如:1100是整数,1100.0是浮点数。

Python浮点数类型的数值范围和小数精度受不同计算机系统的限制。除高精度科学计算外的绝大部分运算来说,浮点数类型的数值范围和小数精度足够“可靠”。>>>1234567890.987654321

*

1234567890.9876543211.5241578774577044e+18>>>9876543210.123456789

/

1234567890.9876543217.000000066600002ꢀꢀ

Python中的浮点数可以是有限数、无穷大、NaN(非数字)等特殊值,示例代码如下:>>>float("inf")#无穷大inf>>>float("-inf")#无穷小-inf>>>float("nan")#非数字nanꢀꢀ在Python中,由于浮点数的存储方式和计算机的精度限制,有时候会出现浮点数比较不准确的问题。示例代码如下:>>>0.7+0.20.8999999999999999#结果不是0.9>>>0.7-0.20.49999999999999994#结果不是0.5>>>0.7-0.2==0.5#直接比较失败False可提供两种解决方案ꢀꢀ方法1:使用abs()函数,abs()函数是用于返回一个数的绝对值,示例代码如下:>>>abs((0.7-0.2)-0.5)<10e-6True说明:

这里使用了abs()函数计算两个浮点数的差的绝对值,然后与一个小的差值10e-6进行比较。如果差的绝对值小于这个差值,就可以认为两个浮点数相等。当然这个差值的选择需要根据具体情况进行调整。如果需要进行更精确的比较,可以选择更小的差值。ꢀꢀ方法2:使用round()函数,round()函数用于对浮点数进行四舍五入。示例代码如下:>>>round(1.2345,2)#四舍五入,保留两位小数1.23>>>round(0.7-0.2,3)0.5>>>round(0.7-0.2,3)==0.5True说明:

这里先使用round()函数对浮点数进行四舍五入,然后再进行浮点数的比较。当然关于浮点数比较问题的解决还有一些其他的办法,比如使用decimal库等等,无论使用哪种方法都需要结合实际情况考虑需要比较的精度,处理掉不确定尾数对比较的干扰。3.1.3复数

复数类型表示数学中的复数。复数有一个基本单位元素j,叫作“虚数单位”。含有虚数单位的数被称为复数。例如:

11.3+4j

-5.6+7j

1.23e-4+5.67e+89j复数类型

Python语言中,复数可以看作是二元有序实数对(a,b),表示为:a

+

bj,其中,a是实数部分,简称实部,b是虚数部分,简称虚部。虚数部分通过后缀“J”或者“j”来表示。需要注意,当b为1时,1不能省略,即

1j表示复数,而j则表示Python程序中的一个变量。复数类型

Python内置支持复数类型及运算,并且形式上与数学上的复数完全一致。#内置函数abs()计算复数的模复数类型

复数类型中实部和虚部都是浮点类型,对于复数z,可以用z.real和z.imag分别获得它的实数部分和虚数部分>>>(1.23e4+5.67e4j).real12300.0>>>(1.23e4+5.67e4j).imag56700.0>>>1.23e4+5.67e4j.imag

#

先获得5.67e4j的虚部,再与1.23e4进行求和计算69000.0补充:分数

Python中的标准库fractions中的Fraction对象支持分数运算#创建分数对象#查看分子#查看分母#分数运算,自动进行通分#把实数转换为分数ꢀꢀ

for语句,是一种循环结构,其作用是根据判断条件确定一段程序是否需要反复执行。示例代码如下:>>>foriinrange(10): print(i,end=",")0,1,2,3,4,5,6,7,8,9,3.2数字类型的运算3.2.1算术运算操作符

Python提供了7个基本的数值运算操作符操作符说明+x+y,x与y的和-x-y,x与y的差*x*y,x与y的积/x/y,x除以y的商//x//y,不大于x除以y的商的最大的整数%x%y,x除以y的余数,常称为模运算**x**y,x的y次幂ꢀꢀ

1.减除运算与数学上的意义相同,示例代码如下:>>>1.23-54.6e-20.6839999999999999>>>1.23/50.246>>>6/23.0说明:上例中整数6除以整数2的结果是浮点数3.0,即除法运算结果的数据类型为浮点型数据。ꢀꢀ

2.运算符“+”除了用于算术加法以外,还可以用于列表、元组、字符串的连接,但不支持不同类型的对象之间相加或连接。ꢀꢀ

3.运算符“*”除了用于算术乘法以外,还可以用于列表、元组、字符串这几个序列类型与整数的乘法,表示序列元素的重复,生成新的序列对象。示例代码如下:>>>1.23*54.6e-2#两个浮点数相乘0.6715800000000001>>>True*3#True当作13>>>False*3#False当作00>>>[1,2,3]*3#列表重复[1,2,3,1,2,3,1,2,3]>>>(1,2,3)*3#元组重复(1,2,3,1,2,3,1,2,3)>>>"abc"*3#字符串重复'abcabcabc'

4.运算符/和//在Python中分别表示算数除法和算术求整(floordivision)#数学意义上的除法#如果两个操作数都是整数,结果为整数#如果两个操作数中有实数,结果为实数形式的整数值#向下取整说明:

使用“/”除法运算符时,即使两个操作数都是整数,结果也是浮点数。而使用“//”运算符时,结果总是一个整数。ꢀꢀ

5.运算符“%”可以用于整数或实数的求余运算,也称为求模运算。“%”也可用于字符串格式化,不过不推荐使用此用法做字符串格式化。示例代码如下:>>>789%23#求余数7>>>123.45%3.2#实数也可以求余,注意精度1.849999999999996>>>'%c,%d'%(65,65)#把65分别格式化为字符和整数'A,65'>>>'%f,%s'%(65,65)#把65分别格式化为实数和字符串'65.000000,65'ꢀꢀ

6.运算符**表示幂乘,等价于内置函数pow()。示例代码如下:>>>3**2#3的2次方,等价pow(3,2)9>>>pow(3,2,8)#等价于(3**2)%81>>>9**0.5#9的0.5次方,即9的平方根3.0>>>(-9)**0.5#负数的平方根(1.8369701987210297e-16+3j)ꢀꢀ以上我们所讲述的这些操作符(+、-、*、/、//、%、**)都是二元运算操作符,可以与赋值符号(=)相连,形成增强赋值操作符(+=、-=、*=、/=、//=、%=、**=),有关增强赋值操作在2.4.2节中已介绍了。增强赋值操作符可以简化对同一变量赋值语句的表达,也是python简洁语言的一种特色,建议大家多多使用。算术运算符总结ꢀꢀ数值运算可能改变计算结果的数据类型,类型的改变与运算符有关,基本规则如下:整数和浮点数混合运算,输出结果是浮点数。整数之间运算,产生结果类型与操作符相关,例如,除法运算(/)的结果是浮点数。整数或浮点数与复数运算,输出结果是复数。3.2.2数值运算函数

Python解释器提供了一些内置函数,在这些内置函数之中,有6个函数与数值运算相关函数说明abs(x)求x的绝对值divmod(x,y)结果为(x//y,x%y)的一个元组pow(x,y[,z])结果为(x**y)%z;当z参数省略时,结果为x**yround(x[,n])对x四舍五入到n位;当n参数省略时,求x四舍五入的整数值max(x1,x2…xn)求x1,x2…xn的最大值,n无限制min(x1,x2…xn)求x1,x2…xn的最小值,n无限制ꢀꢀ

abs()函数是一个内置函数,用于返回一个数的绝对值,其格式如下:

abs(number)参数:number一个数字,可以是整数、浮点数或复数。返回值:如果参数是正数或零

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论