版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
内容导读Python是目前流行的编程语言之一,广泛应用于数据分析、机器学习、web开发、自动化运维和搜索引擎等领域。对于编程爱好者而言,学习Python将是一个很好的选择。本章将对Python进行介绍,包括Python的发展、下载和安装,以及常用集成开发环境和Python编程规范等。目录Contents1.1Python概述1.2集成开发环境1.3编程规范1.4拓展练习1.1.1认识PythonPython常被称为“胶水语言”,它可以轻松地与其他编程语言(如C/C++)进行交互,借助相应的库和工具,实现不同语言之间的函数调用和数据传递。可以将不同语言制作的各种模块和组件无缝地连接起来,为应用提供更加丰富的功能和灵活性。1. Python的优点(1)简单易学Python非常容易上手,因为Python消减了C、C++、Java中一些较为复杂的语法,降低了编程的难度。Python还提高了开发者的工作效率,在实现相同功能时,Python语言所需的代码量往往是其它语言的20-30%。1.1.1认识Python(2)免费、开源Python是FLOSS(自由/开放源码软件)之一,使用者可以自由地发布这个软件的副本、阅读它的源代码、对它进行修改或者把它的一部分应用于新的软件中,这种扎实的群众基础也是Python变得愈来愈优秀的原因之一。(3)面向对象面向对象编程方法强调在软件开发过程中采用人类在认识客观世界时普遍运用的思维方法,直观、自然地描述客观世界中的事物。(4)跨平台由于Python是开源的,它已经被移植到许多平台上,如:Linux、Windows、macOS等平台。1.1.1认识Python(5)功能强大Python拥有丰富的开源库,其中有Python自带的库,如os、sys、re等;也有成千上万的第三方库,如numPy、pandas、SciPy等,几乎覆盖了计算机应用的各个领域。1.1.1认识Python2. Python的缺点(1)运行速度慢由于Python是解释型语言,Python程序每次运行,都需要Python解释器把代码翻译成机器码执行,这个翻译过程比较耗时,因此Python运行速度相对较慢。(2)代码不能加密如果要发布Python程序,实际上就是发布源代码,这一点跟C和C++语言不同,C和C++语言不用发布源代码,只需要把编译后的机器码发布出去。(3)独特的语法这也许不应该被称为缺点,但是它用缩进来区分语句关系的方式还是会给很多初学者带来困惑,即便是很有经验的Python程序员,也可能深陷其中。最常见的情况是tab和空格混用会导致错误。1.1.2安装PythonPython自发布以来,先后迭代了3个版本,其中1.X版本已经出局,2.X版本也已经不再更新,根据目前主流发展方向和应用现状,建议安装3.7及以上版本。本书将以3.13版本为例进行说明。1.1.2安装Python介绍Python的安装过程。(1)下载Python1.1.2安装Python(2)安装Python1.1.2安装Python(3)运行Python安装完成以后,需要检测Python能否正常工作。目录Contents1.1Python概述1.2集成开发环境关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源1.3编程规范1.4拓展练习1.2.1集成开发环境IDELIDLE是Python标准发行版内置的一个简单小巧的集成开发环境,安装Python后,IDLE也已自动安装完毕。IDLE集成了编辑器、解释器、调试器等常用组件,足以应付大多数简单应用程序的开发。IDLE是用Python编写的,最初的作者正是吉多·范罗苏姆,它是非商业Python开发或初学者学习Python的最佳选择之一。1.启动IDLE通过开始菜单,找到“IDLE(Python3.1364-bit)”菜单项,然后单击该菜单项,启动IDLE。1.2.1集成开发环境IDEL2.创建Python程序除了在交互式解释器中直接输入并执行Python程序之外,开发人员还可以利用IDLE提供的编辑器编写Python程序,并把程序保存为Python脚本文件,然后再使用Python命令执行脚本文件。下面通过一个示例演示利用IDLE编辑器编写Python程序的方法。1.2.1集成开发环境IDEL在使用IDLE编辑器的过程中,可以发现编辑器拥有以下特性:(1)语法高亮显示所谓语法高亮显示,就是代码中不同的元素使用不同的颜色进行显示。(2)自动缩进Python有严格的缩进要求,当输入与控制结构对应的关键字(如if),或者输入与函数定义对应的关键字(如def),按Enter键后,编辑器会自动缩进。缩进的长度可以通过执行“Format”|“NewIndentWidth”命令进行修改,默认值为4。(3)单词自动完成功能这是初学者比较喜欢的功能,对于一个函数名称,我们只需要输入前几个字母,就可以使用Alt+/(或命令“Edit”|“ExpandWord”)自动完成。1.2.2集成开发环境PyCharmPyCharm也是目前使用比较多的Python集成开发环境,它带有一整套可以帮助用户提高开发效率的工具,如调试、语法高亮、代码跳转、智能提示、单元测试、版本控制等。1.下载PyCharm打开PyCharm的官方网站下载(/pycharm/download/)1.2.2集成开发环境PyCharm2.安装PyCharm1.2.2集成开发环境PyCharm3.启动PyCharm双击计算机桌面上的PyCharm快捷方式,启动PyCharm。1.2.2集成开发环境PyCharm4.使用PyCharmPyCharm的功能有很多,使用起来比IDEL复杂,本书的大部分例子都是使用IDEL进行测试。下面简单介绍一下PyCharm的使用。(1)新建项目单击PyCharm中的“新建项目”选项,打开如图所示的新建项目窗口,在窗口左侧的项目类型列表中选择纯Python,在窗口的右侧可以修改项目存放位置、选择Python版本,在这里我们选择的是已经安装过的Python3.13版本。1.2.2集成开发环境PyCharm(2)创建Python文件单击“新建文件或目录”按钮,在弹出的快捷菜单中执行“Python文件”命令,打开“新建Python文件”窗口中输入名称,如图所示。双击窗口中的“Python文件”选项或按Enter键,新建文件,并在右侧编辑区中打开。1.2.2集成开发环境PyCharm(3)执行Python文件单击编辑区上方的“运行”按钮,运行当前文件,将出现一个控制台,输出程序的运行结果。目录Contents1.1Python概述1.2集成开发环境关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源1.3编程规范1.4拓展练习1.3.1缩进规范Python对代码的缩进要求非常严格,一般以4个空格作为缩进,同一个级别代码块的缩进量必须一样,否则解释器会报错。缩进可以使用空格或者Tab键来实现,建议使用空格。【例1-1】Python的缩进语法x=10ifx>5:print("x大于5")print("执行逻辑")else:print("x小于等于5")print("结束")1.3.2大小写敏感Python对编写程序中字母的大小写是敏感的,也就是说,Python中是区分字母大小写的。【例1-2】Python对大小写敏感a=5A=15print(a+A)1.3.3注释规则一个程序员往往习惯在程序体中加上注释,以增加程序的可读性。有时在程序运行过程中,注释还可以用来屏蔽暂时无用的代码。Python支持单行注释、多行注释和编码规则注释。1.单行注释Python使用井号“#”作为单行注释的符号。单行注释可以作为单独的一行放在被注释代码行的上方,也可以在被注释语句的后面。【例1-3】单行注释作为单独的一行#计算圆的面积radius=5area=3.14*radius**2#公式:πr²1.3.3注释规则2.多行注释多行注释指的是一次性注释程序中的多行内容,Python使用3个单引号'''或者3个连续的双引号"""表示多行注释。【例1-5】使用3个单引号的多行注释defadd_numbers(a,b):'''
计算两数之和参数:a(int/float):第一个数
b(int/float):第二个数1.3.3注释规则返回:int/float:a与b的和
'''returna+b目录Contents1.1Python概述1.2集成开发环境关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源1.3编程规范1.4拓展练习1.4拓展练习练习1:在Python官方网站/downloads/上下载Python3.13.3,并正确安装。练习2:在IDEL的编辑器中编写一个简单的Python程序,保存为脚本文件,然后运行该脚本文件。练习3:在PyCharm官方网站/pycharm/上下载PyCharm,并正确安装,然后创建项目和Python文件并运行该文件。更多资源获取请关注德胜书坊微信公众平台官方微信公众平台ID:DSSF007内容导读了解编程语言的基本语法是学习这门语言的基础,编程语言的高级特性通常建立在基础语法之上。本章将对Python语言的基本语法进行介绍,包括关键字和标识符、基本数据类型、变量、运算符和表达式等。目录Contents2.1关键字和标识符2.2变量与数据类型2.3字符串的操作2.4数据类型转换2.5运算符和表达式2.6输入和输出2.7拓展练习2.1.1关键字Python语言中定义了一些具有特定含义的词汇,这些词汇统称为关键字。关键字都具有特定的含义并且只能用在特定的地方。读者可以使用以下命令查看Python语言中的所有关键字:>>>importkeyword>>>keyword.kwlist2.1.2标识符Python语言中的变量名、函数名、类名、对象名、模块名等统称为标识符。为了提高程序的可读性,在定义标识符时,要尽可能遵循“见其名知其意”的原则。Python的标识符可以包含英文字母(A-Z、a-z)、数字(0-9)和下划线(_),但它有以下几个方面的限制:(1)标识符的首字符必须是字母表中的字母或下划线_,标识符的其他部分可以由字母、数字和下划线构成。(2)Python的标识符严格区分大小写,如Data与data是不同的标识符。(3)在Python3中,非ASCII标识符也被允许使用,可以用中文作为变量名。(4)标识符不能是关键字。目录Contents2.1关键字和标识符2.2变量与数据类型关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源2.3字符串的操作2.4数据类型转换2.5运算符和表达式2.6输入和输出2.7拓展练习2.2.1变量变量是指可变的量。在Python程序中,可以直接声明变量的名称,不必声明变量的类型,但要求每个变量在使用前必须赋值,变量赋值以后才会在内存中被创建。变量赋值使用等号(=),等号运算符左边是变量名,等号右边是存储在变量中的值。在为变量x赋值时,并没有声明该变量的类型为整型,Python解释器为根据为变量所赋的值自动判断变量的类型。这里所说的“类型”是该变量指向的内存中存储的对象类型。例如,创建一个整型变量x,并为其赋值100,可以使用如下的语句:>>>x=1002.2.2数字类型数字类型包括:int(整数)、float(浮点数)、bool(布尔类型)和complex(复数)4种类型。1.整数整数类型(简称整型),整数包括正整数、负整数和0,如356、-678、0等。按照进制的不同整数类型还可以划分为十进制、二进制(以“0b”或“0B”开头)、八进制(以“0o”或0O开头)和十六进制(以“0x”或“0X”开头)10#十进制整数0b1010#二进制整数0o12#八进制整数0xA#十六进制整数2.2.2数字类型2.浮点数浮点数是指带有小数部分的数字,如3.14、-0.33等。浮点数也可以使用科学计数法表示,如:2.78e-2、-0.12e3、3.14e5等。3.布尔类型在Python中,布尔类型的值只有两个:True和False,分别表示“真”和“假”。在Python3.x中,布尔值是整数的子类,True对应1,False对应0。4.复数复数由实数(real)部分与虚数(image)部分构成,表示形式为a+bj,其中a是实数部分,b是虚数部分,它们始终以浮点数形式存储。2.2.3字符串字符串是Python中最常用的数据类型之一,它是由多个字符组成的字符序列,必须用引号把字符串括起来。Python中没有单独的字符类型,包含一个字符的字符串代表一个字符。1.创建字符串可以通过单引号或双引号创建字符串。例如:s1=‘hi’s2=””2.2.3字符串2.字符串编码字符串编码是指将文本数据(字符串)转换为计算机可以处理的二进制格式的过程,是字符编码在字符串层面的具体应用。常用的编码方案包括以下几种:(1)ASCII编码(2)Unicode编码(3)UTF-8编码(4)其他编码2.2.3字符串3.转义字符Python中的转义字符以反斜杠“\”为前缀,转义字符存在的意义就是为了避免字符出现二义性。目录Contents2.1关键字和标识符2.2变量与数据类型关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源2.3字符串的操作2.4数据类型转换2.5运算符和表达式2.6输入和输出2.7拓展练习2.3.1字符串基本处理创建字符串后,开发者可以通过函数、索引、切片等方式访问和处理字符串。下面将对此进行介绍。1.常用函数字符串在Python中是不可变序列,用户可以通过内置的len()、max()、min()等函数来操作字符串。(1)求字符串长度函数len()可以用来求字符串中包含多少个字符,即字符串的长度,例如:>>>s="hello!">>>len(s)62.3.1字符串基本处理(2)求字符串最大值和最小值函数max()用来求字符串的最大字符,min()用来求字符串中的最小字符,例如:>>>s="Python">>>max(s)'y'>>>min(s)'p'>>>s="欢迎来到郑州">>>max(s)'郑'>>>min(s)'到'2.3.1字符串基本处理2.字符串的索引和切片字符串是由若干字符组成的序列,每个字符在字符串中都有一个位置,这称为字符的索引,可以通过索引来访问字符。字符串的索引分为两种:正向索引和负向索引。2.3.1字符串基本处理3.字符串的拼接和复制字符串的拼接和复制时Python中最基础且高频的操作。开发者可以使用“+”将多个字符串拼接在一起,使用“*”可以对字符串进行复制,例如:>>>s="Hello"+"Word!">>>s'HelloWord!'>>>s='我'+'爱'+'Pyhon'>>>s'我爱Pyhon'>>>s='Python!'*3>>>s'Python!Python!Python!'2.3.1字符串基本处理4.字符串比较字符串比较,是通过依次比较字符串中对应的字符来进行比较的。>>>'Python'>'Hello'True>>>'编程'<'程序'False>>>'abc'<'abcd'True2.3.2字符串检测字符串检测是编程中用于验证、分析和提取文本信息的关键操作。开发者可以通过以下方式进行字符串检测:isalnum():如果字符串中的字符是字母或数字,则返回True。isalpha():如果字符串中的字符全是字母,则返回True。isdigit():如果字符串中的字符全是数字,则返回True。isidentifier():如果字符串是Python标识符,则返回True。islower():如果字符串中的字符全是小写,则返回True。isupper():如果字符串中的字符全是大写,则返回True。isspace():如果字符串中全是空白符,则返回True。2.3.2字符串检测在对字符串使用的过程中,经常需要查找满足特定条件的子串,字符串也提供了相应的方法来实现这些功能。endswith(s1):如果字符串是以子串s1结尾,则返回Truestartswith(s2):如果字符串是以子串s1开头,则返回Truefind(s1):返回s1第一次出现的索引位置(从左到右搜索),如果字符串中不存在s1,则返回-1rfind(s1):返回s1最后一次出现的索引位置(从右到左搜索),如果不存在,返回-1count(s1):统计s1在字符串中出现的次数2.3.3字符串转换字符串的内容不能被更改,如果更改则会创建一个新的字符串对象。字符串提供了一些方法用来更改串中内容,并生成一个新的字符串对象。capitalize():将字符串的第一个字母大写,并返回一个新的字符串拷贝lower():将串中所有字符变成小写,并返回一个新的字符串拷贝upper():将串中所有字符变成大写,并返回一个新的字符串拷贝title():将字符串中每个单词的第一个字符变为大写,并返回一个新的字符串拷贝swapcase():将字符串中的小写字符变成大写,大写字符变成小写,并返回一个新的字符串拷贝replace(old,new):使用new字符串替换原字符串中所有old字符串,并返回一个新的字符串拷贝2.3.4字符串分割和合并字符串分割与合并是文本处理中最基础的操作,广泛应用于数据解析与提取、文件处理等场景。分隔与合并分别通过字符串的split()和join()方法实现,具体用法如下所示:>>>email='000000@'>>>email.split('@')#将字符串email以”@”进行分隔['000000','']>>>fruits=['西瓜','芒果','橙子','苹果']>>>sep='、'>>>fruitslist=sep.join(fruits)#用”、”将列表中的元素连接起来变成一个字符串>>>fruitslist'西瓜、芒果、橙子、苹果'目录Contents2.1关键字和标识符2.2变量与数据类型关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源2.3字符串的操作2.4数据类型转换2.5运算符和表达式2.6输入和输出2.7拓展练习2.4.1隐式类型转换在下面的示例代码中,将对两种不同类型的数据进行运算,较低数据类型(整数)就会自动转换为较高数据类型(浮点数)以避免数据丢失。a=5#intb=3.14#floatresult=a+b#int5被隐式转为float5.0print("结果:",result)#输出8.14(float)print("类型:",type(result))#<class'float'>以上示例代码的输出结果为:结果:8.14类型:<class'float'>2.4.2显式类型转换在显式类型转换中,经常需要使用类型转换函数来进行,Python中常用的数据类型转换函数如表所示。目录Contents2.1关键字和标识符2.2变量与数据类型关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源2.3字符串的操作2.4数据类型转换2.5运算符和表达式2.6输入和输出2.7拓展练习2.5.1算术运算符和表达式算术运算符主要用于数学运算,Python语言中常用的算术运算符和表达式如表所示。2.5.2关系运算符和表达式关系运算符主要用于两个值的比较,结果为布尔值。当关系表达式成立时,运算结果为True,当关系表达式不成立时,运算结果为False。Python中常用的关系运算符和表达式如表所示。2.5.3逻辑运算符和表达式逻辑运算符用于对布尔型数据进行运算,运算结果仍然为布尔型。Python中常用的逻辑运算符和表达式如表所示。2.5.3逻辑运算符和表达式使用逻辑运算符进行逻辑运算时,运算结果如表所示。2.5.4赋值运算符和表达式赋值运算符主要用于为变量赋值。赋值运算符的功能就是将右侧表达式的值赋给左侧的变量。例如:x=3+6#变量x的被赋值为9y=x+2#变量y的被赋值为112.5.4赋值运算符和表达式Python中常用的赋值运算符和表达式如表所示。2.5.5位运算符和表达式程序中所有的数在计算机内存中都是以二进制的形式存储的。位运算其实就是直接对整数在内存中的二进制位进行操作。Python中常用的位运算符包括:按位与(&)、按位或(|)、按位异或(^)、按位求反(~)、左移(<<)和右移(>>)等运算符。1.按位与(&)“&”为双目运算符,左右两边分别有一个操作数。运算法则是:先将其两边的操作数转换成位数相同(低位对齐,高位不足补零)的二进制数,然后对应位逐一进行与(&)运算,如果对应的二进制位都是1,则运算结果为1,否则运算结果为0。a=3#对应的二进制数为:00000011b=5#对应的二进制数为:00000101执行&运算c=a&b#运算结果为:000000012.5.5位运算符和表达式2.按位或(|)“|”为双目运算符,左右两边分别有一个操作数。运算法则是:先将其两边的操作数转换成位数相同(低位对齐,高位不足补零)的二进制数,然后对应位逐一进行或(|)运算,如果对应的二进制位有一个为1,则运算结果为1,否则运算结果为0。a=3#对应的二进制数为:00000011b=5#对应的二进制数为:00000101执行|运算c=a|b#运算结果为:000001112.5.5位运算符和表达式3.按位异或(^)“^”为双目运算符,左右两边各有一个操作数。运算法则是:先将其两边的操作数转换成位数相同(低位对齐,高位不足补零)的二进制数,然后对应位逐一进行异或运算,如果对应的二进制位值不相同,则运算结果为1,否则运算结果为0。a=3#对应的二进制数为:00000011b=5#对应的二进制数为:00000101执行^运算c=a^b#运算结果为:000001102.5.5位运算符和表达式4.按位取反(~)“~”是一元运算符,结果将操作数的每一位逐一取反。a=3#对应的二进制数为:00000011执行~运算c=~a#运算结果为:11111100print(c)#输出c的值,输出结果为:-42.5.5位运算符和表达式5.左移(<<)左移就是把<<左边的运算数的各二进制位全部左移指定的位数,高位移出的丢弃,低位补0。a=3#对应的二进制数为:00000011左移2位c=a<<2#左移2位后为:00001100print(c)#输出c的值,结果为:122.5.5位运算符和表达式6.右移(>>)右移,就是把>>左边的运算数的各二进制位全部右移指定的位数,低位移出的丢弃,高位的补0或1。若运算数是有符号的整型数,则高位补符号位;若运算数是无符号的整型数,则高位补0。右移一个二进制位,相当于除以2操作,右移n个二进制位相当于除以2n操作,这里取的是商,不要余数。a=3#对应的二进制数为:00000011右移2位c=a>>2#右移2位后为:00000000print(c)#输出c的值,结果为:02.5.6成员运算符和表达式成员运算符有两个:in和notin,用于判断一个值是否包含在某个字符串、列表或元组中,返回值为True或False。例如:>>>a="helloPython"#定义一个字符串变量a>>>"Python"ina#判断"Python"是否在字符串变量a中True#"Python"在字符串变量a中,返回True>>>"Py"inaTrue>>>"hello"inaTrue>>>"hello"notinaFalse>>>"Python"notina#判断"Python"是否不在字符串变量a中False2.5.7标识运算符和表达式标识运算符有两个:is和isnot,用于判断两个标识符是否引用同一个对象。用法类似于成员运算符。例如:>>>a=100>>>b=100>>>aisb#判断a和b是否引用同一个对象True>>>aisnotbFalse2.5.8运算符的优先级所谓运算符的优先级,指的是当一个表达式中出现了多个运算符时,先执行那个运算符。目录Contents2.1关键字和标识符2.2变量与数据类型关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源2.3字符串的操作2.4数据类型转换2.5运算符和表达式2.6输入和输出2.7拓展练习2.6.1基本输入Python提供了内置函数input()用于接收用户的键盘输入,该函数的一般用法为:x=input([prompt])例如,要求用户通过键盘输入姓名,并把用户输入的值赋值给变量,具体代码如下:>>>name=input("请输入你的名字:")请输入你的名字:2.6.2基本输出Python提供了内置函数print()用于将结果输出到显示器。1.print()函数的基本用法print()函数的一般用法为:print(输出的内容)其中,输出的内容可以是字符串和数字,也可以是表达式2.6.2基本输出print()函数默认是带有换行功能的,输出语句执行后,自动切换到下一行。示例代码如下:#printDemo1.pyprint("床前明月光,")print("疑是地上霜。")print("举头望明月,")print("低头思故乡。")2.6.2基本输出上述代码保存在printDemo1.py文件中,执行该文件,得到如下的执行结果:床前明月光,疑是地上霜。举头望明月,低头思故乡。2.6.2基本输出2.使用%进行格式化输出在Python中使用%进行格式化输出。常用的格式化符号如表所示。2.6.2基本输出3.使用format()函数进行格式化输出format()函数功能非常强大,它可以把字符串当成一个模板,通过传入的参数进行格式化,并且使用大括号“{}”作为特殊字符替代“%”,使用方法主要有下面三种方式:不带编号的。带数字编号,可以调换显示的顺序,如“{0}”“{1}”,括号中的数字用于指向传入对象在format()中的位置带关键字,如“{key1}”“{key2}”,如果使用了关键字参数,那么它们的值会指向使用该名字的参数。2.6.2基本输出4.使用f-strings进行格式化输出f-strings是Python3.6之后版本引入的字符串格式化方法,语法为f"内容{表达式}",其中{表达式}会被求值并替换为结果。其使用方式如表所示。目录Contents2.1关键字和标识符2.2变量与数据类型关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源2.3字符串的操作2.4数据类型转换2.5运算符和表达式2.6输入和输出2.7拓展练习2.7拓展练习1.请简述Python标识符的命名规则。2.请列举Python中的基本数据类型。3.请列举几个常用的数据类型转换函数。4.请列举几个不同类型的表达式。更多资源获取请关注德胜书坊微信公众平台官方微信公众平台ID:DSSF007内容导读程序控制结构是决定代码如何执行的关键,Python中主要包括顺序结构、选择结构和循环结构三种。本章重点介绍选择结构、循环结构,并通过大量的实例来演示这些流程控制语句的使用方法。
目录Contents3.1基本程序结构3.2条件结构3.3循环结构3.4程序的循环控制3.5拓展练习3.1基本程序结构Python基本程序结构主要包括顺序结构、条件结构(分支结构)和循环结构三种,这三种结构的介绍如下:(1)顺序结构顺序结构是最基本的结构,代码按照从上到下的顺序逐行执行,无分支或循环,是结构化程序设计中最简单的基础结构。a=5#第1步:赋值b=12#第2步:赋值c=a+b#第3步:计算print("结果:",c)#第4步:输出3.1基本程序结构(2)条件结构条件结构又叫分支结构或选择结构,根据条件判断结果,选择不同的代码分支执行,Python中主要使用if、elif和else语句来实现。(3)循环结构循环结构将重复执行某段代码,直到满足终止条件,Python中有for循环和while循环两种主要的循环方式。目录Contents3.1基本程序结构3.2条件结构关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源3.3循环结构3.4程序的循环控制3.5拓展练习3.2.1单分支if语句单分支条件结构由if语句单独组成,其基本语法格式如下:if条件:代码块3.2.1单分支if语句【例3-1】单分支条件结构应用示例功能描述:使用简单if语句判断用户输入的年龄是否成年,如果成年,则输出“您已成年!”。#判断用户年龄是否成年age=int(input("请输入年龄:"))#获取用户输入并转为整数ifage>=18:#条件表达式后加冒号`:`print("您已成年!")#缩进4个空格或1个Tab3.2.2二分支if-else语句二分支条件结构通过if-else语句实现,可以根据条件真伪选择执行两个不同的代码分支。其基本语法格式如下:if条件:代码块1else:代码块23.2.2二分支if-else语句【例3-2】双分支条件结构应用示例1功能描述:使用if-else语句判断用户输入的年龄是否成年,如果成年,则输出“您已成年!”,如果未成年则输出“您未成年!”。#获取用户输入的年龄并转为整数age=int(input("请输入您的年龄:"))#双分支条件判断ifage>=18:print("您已成年!")else:print("您未成年!")3.2.3多分支if-elif-else语句多分支条件结构通过if-elif-else语句实现,能够根据多个互斥条件选择不同的执行路径。其基本语法格式如下:if条件1:代码块1elif条件2:代码块2elif条件3:代码块3…else:代码块n3.2.3多分支if-elif-else语句【例3-3】多分支条件结构应用示例功能描述:使用多分支结构判断数字是正数、负数还是0。#获取用户输入并转为浮点数(兼容整数和小数)num=float(input("请输入一个数字:"))ifnum>0:print("正数")elifnum<0:print("负数")else:print("零")3.2.4嵌套条件结构在Python3中,可以将上述三种条件结构嵌套使用,常用的语法格式如下:if条件1:if条件2:代码块1else:代码块23.2.4嵌套条件结构【例3-4】条件结构嵌套应用示例功能描述:判断数字是否同时为5的倍数且为正数。num=int(input("请输入一个整数:"))#外层条件:判断是否为正数ifnum>0:#内层条件:判断是否为5的倍数
ifnum%5==0:print(f"{num}是正数且为5的倍数")else:print(f"{num}是正数,但不是5的倍数")else:print(f"{num}不是正数")3.2.4嵌套条件结构【例3-5】条件结构嵌套应用示例功能描述:判断数字是否为正数,若是则判断是正偶数还是正奇数。若不是正数则判断是负数还是零。#获取用户输入并转为整数(假设输入为整数)num=int(input("请输入一个数字:"))#外层条件:判断是否为正数ifnum>0:#内层条件1:判断正数的奇偶性
ifnum%2==0:3.2.4嵌套条件结构print(f"{num}是正偶数")else:print(f"{num}是正奇数")else:#内层条件2:判断非正数的情况(负数或零)
ifnum==0:print(f"{num}是零")else:print(f"{num}是负数")3.2.4嵌套条件结构【例3-6】成绩等级判定功能描述:通过多分支结构判断输入的成绩等级。score=int(input("请输入成绩(0-100):"))ifscore<0orscore>100:print("输入无效!成绩必须在0-100之间")elifscore>=90:print("等级:A")elifscore>=80:3.2.4嵌套条件结构print("等级:B")elifscore>=70:print("等级:C")elifscore>=60:print("等级:D")else:print("等级:F(不及格)")目录Contents3.1基本程序结构3.2条件结构关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源3.3循环结构3.4程序的循环控制3.5拓展练习3.3.1while语句while语句可以在条件表达式为真时重复执行代码块,它是实现不确定性循环的主要方式。其语法格式如下:while条件:代码块3.3.1while语句【例3-7】while语句应用示例功能描述:使用while语句计算数字1-10的整数之和。total=0#初始化总和为0i=1#从1开始计数whilei<=10:#当i小于等于10时循环
total+=i#累加当前i的值
i+=1#更新i的值(避免死循环)print("1到10的和为:",total)#输出结果:553.3.2for语句for语句可以遍历任何可迭代对象(如字符串、列表、元组、字典、集合等)中的元素,并对每个元素执行相应的代码块,通常应用于已知循环次数的情况。其语法格式如下:for循环变量in序列:代码块3.3.2for语句【例3-8】for语句应用示例功能描述:使用for语句计算数字1-10的整数之和。total=0#初始化总和为0fornuminrange(1,11):#range(1,11)生成1到10的整数
total+=num#累加每个数字print("1到10的和为:",total)#输出结果:553.3.3循环嵌套Python语言允许在一个循环体里嵌入另外一个完整的循环语句,而在内部的这个循环语句中还可以嵌入其它循环语句,这就是所谓的循环嵌套。循环嵌套比较复杂,for和while循环语句中都可以嵌套,它们之间还可以互相嵌套。1.for循环嵌套for循环中可以嵌套for循环,它的语法格式如下:for循环变量1in序列1:for循环变量2in序列2:代码块2代码块13.3.3循环嵌套【例3-9】for循环嵌套示例功能描述:使用嵌套for循环输出九九乘法表。foriinrange(1,10):#外层循环控制行(乘数1)
forjinrange(1,i+1):#内层循环控制列(乘数2)
print(f"{j}×{i}={i*j}",end="\t")#用制表符分隔
print()#换行3.3.3循环嵌套2.while循环嵌套while循环中还可以嵌套while循环,它的语法格式如下:while条件1:while条件2:代码块2代码块13.3.3循环嵌套【例3-10】while循环嵌套示例功能描述:使用嵌套while循环输出九九乘法表。i=1#初始化外层循环变量(控制行数)whilei<=9:j=1#初始化内层循环变量(控制列数)
whilej<=i:#确保列数不超过当前行数
print(f"{j}×{i}={i*j}",end='\t')#输出当前乘法项,使用制表符分隔
j+=1#内层循环变量自增
print()#换行
i+=1#外层循环变量自增3.3.3循环嵌套3.在while循环中嵌套for循环while循环中还可以嵌套for循环,它的语法格式如下:while表达式:for循环变量in序列:代码块2代码块13.3.3循环嵌套【例3-11】while循环中嵌套for循环示例功能描述:通过在while循环中嵌套for循环的方式输出九九乘法表。i=1#外层循环变量,控制行数(1到9)whilei<=9:#内层用for循环遍历列(1到i)
forjinrange(1,i+1):print(f"{j}×{i}={i*j}",end="\t")#输出乘法式,横向对齐
print()#换行
i+=1#更新外层循环变量3.3.3循环嵌套4.在for循环中嵌套while循环for循环中也可以嵌套while循环,它的语法格式如下:for循环变量in序列:while表达式:代码块2代码块13.3.3循环嵌套【例3-12】for循环中嵌套while循环示例功能描述:通过在for循环中嵌套while循环的方式输出九九乘法表。foriinrange(1,10):#外层循环控制行(1到9)
j=1#内层循环变量初始化
whilej<=i:#内层循环控制列(1到i)
print(f"{j}×{i}={i*j}",end="\t")j+=1#更新内层循环变量
print()#换行目录Contents3.1基本程序结构3.2条件结构关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源3.3循环结构3.4程序的循环控制3.5拓展练习3.4.1break语句break语句可以立即终止当前所在的循环,直接跳出循环体,继续执行循环之后的代码。(1)跳出while循环使用break跳出while循环的常见形式如下:while条件1:代码块if条件2:
break3.4.1break语句【例3-14】使用break跳出while循环示例功能描述:利用break跳出while循环。i=1result=0whilei<10:result=result+iprint("i的值是:",i)i+=1ifresult>10:#当result>10时,结束循环
break
3.4.1break语句(2)跳出for循环使用break跳出for循环的常见形式如下:for循环变量in序列:代码块if条件:
break3.4.1break语句【例3-15】使用break跳出for循环示例功能描述:利用break跳出for循环。fornumin[1,2,3,4,5]:print(f"当前数字:{num}")ifnum==3:print("触发break,终止循环")breakprint("循环结束")3.4.2continue语句break语句是强制终止循环,跳出当前循环体,continue语句则是跳过当前迭代的剩余代码,直接进入循环的下一次迭代(不终止循环)。也就是说,continue语句只结束本次循环,并不终止整个循环的执行。(1)在while循环中使用continue语句在while循环中使用continue语句的常见形式如下:while条件1:代码块if条件2:
continue3.4.2continue语句【例3-16】在while循环中使用continue语句示例功能描述:在while循环中使用continue语句跳过奇数的输出。i=0whilei<10:i+=1ifi%2!=0:continueprint(i)3.4.2continue语句(2)在for循环中使用continue语句在for循环中使用continue语句的常见形式如下:for循环变量in序列:代码块if条件:
continue3.4.2continue语句【例3-17】在for循环中使用continue语句示例功能描述:在for循环中使用continue语句跳过奇数的输出。#遍历1到10的整数foriinrange(1,11):ifi%2!=0:continueprint(i)目录Contents3.1基本程序结构3.2条件结构关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源3.3循环结构3.4程序的循环控制3.5拓展练习3.5拓展练习练习1:通过键盘输入一个整数,并判断该整数能否能被3整除。练习2:通过键盘输入成绩,并判断是否及格(成绩范围必须在0—100之间,否则输出“输入错误”提示信息)。练习3:猜数字游戏,通过3次机会猜1-10的任意数字。更多资源获取请关注德胜书坊微信公众平台官方微信公众平台ID:DSSF007内容导读在Python中,复杂数据类型是指由简单数据类型(整数、字符串等)组合或嵌套而成的数据结构,用于组织和管理更复杂的数据。Python中的复杂数据类型包括列表(list)、元组(tuple)、字典、集合等,本章将对此进行介绍。目录Contents4.1列表4.2元组4.3集合4.4字典4.5拓展练习4.1.1列表的创建和删除在Python3中,列表可以通过多种方式创建,常见的包括通过[]直接创建、通过list()函数创建以及通过range()函数创建数值列表等。1.使用[]创建列表列表可以直接通过方括号“[]”创建,其中的元素通过逗号分隔。list1=[]#创建一个空列表list2=["Python","Java","C"]#元素都是字符串类型list3=[3,8,15,21]#元素都是数值类型list4=[20,"hello",False,3.6]#元素为混合类型list5=[[2,5,8],["a","b","c"]]#元素为嵌套列表4.1.1列表的创建和删除2.通过list()函数创建列表list()函数可以将其他可迭代对象(如元组、字符串、集合等)转换为列表。具体示例如下:>>>list1=list()#创建空列表>>>print(list1)[]>>>list2=list("Python")#将字符串转换成列表>>>print(list2)['P','y','t','h','o','n']4.1.1列表的创建和删除3.通过range()函数创建数值列表通过range()函数可以很方便的创建数值列表,这在实际开发中很常见。range()函数的语法格式如下:range([start,]end[,step])4.1.1列表的创建和删除4.推导式生成列表使用列表推导式可以非常方便的创建列表,这是Python程序开发时最常用的技术。列表推导式的语法格式如下:[表达式for迭代变量in可迭代对象[if条件表达式]]4.1.1列表的创建和删除if条件表达式是可选的,只有满足条件的元素才会被包含到最后的列表中。例如:(1)生成一个包含1到10的平方的列表>>>squares=[x**2forxinrange(1,11)]>>>squares[1,4,9,16,25,36,49,64,81,100](2)生成一个包含1到10之间所有偶数的列表>>>even_numbers=[xforxinrange(1,11)ifx%2==0]>>>even_numbers[2,4,6,8,10]4.1.1列表的创建和删除(3)使用列表推导式实现嵌套列表的平铺>>>matrix=[[1,2,3],[4,5,6],[7,8,9]]>>>flattened=[xforrowinmatrixforxinrow]>>>flattened[1,2,3,4,5,6,7,8,9]4.1.1列表的创建和删除5. 列表的删除当不再使用一个列表时,可以使用del命令删除整个列表,如果列表对象所指向的值不再有其他对象指向,Python将同时删除其值。例如:>>>zzuli=["为之则易","不为则难"]>>>delzzuli>>>zzuliTraceback(mostrecentcalllast):File"<pyshell#11>",line1,in<module>zzuliNameError:name'zzuli'isnotdefined4.1.2列表元素访问和计数列表中的每一个元素都对应一个位置编号,称为元素的索引,列表通过索引来访问元素,其语法格式如下:列表名[索引值]4.1.2列表元素访问和计数1.通过索引直接访问可以通过索引直接访问列表中的元素。索引的区间在[0,列表长度-1]这个范围,超过这个范围则会抛出下标越界异常。>>>my_list=['apple','banana','cherry','date']>>>my_list[2]'cherry'>>>my_list[4]Traceback(mostrecentcalllast):File"<pyshell#14>",line1,in<module>my_list[4]IndexError:listindexoutofrange4.1.2列表元素访问和计数2.使用index()获取指定元素在列表中首次出现的下标可以使用列表对象的index()方法来获取指定元素首次出现的位置,语法格式如下:index(value,[start,[end]])其中,start和end指定了搜索的范围,start默认为0,end默认为列表长度。若列表中不存在指定元素,则抛出异常。>>>a=[10,0,30,40,60,20,30,50,30]>>>a.index(20)5>>>a.index(20,3)#从索引3开始往后搜索的第一个20出现的位置54.1.2列表元素访问和计数>>>a.index(30,5,7)#从索引5到7这个区间,元素30第一次出现的位置6>>>a.index(70)#列表中不存在70,抛出异常Traceback(mostrecentcalllast):File"<pyshell#8>",line1,in<module>a.index(70)ValueError:70isnotinlist4.1.2列表元素访问和计数3.获取指定元素出现的次数可以使用列表对象的count()方法返回指定元素在列表中出现的次数。例如:>>>list=[10,0,30,40,60,20,30,50,30]>>>list.count(20)1>>>list.count(5)04.1.3列表中元素的编辑操作当列表增加和删除元素时,列表会自动进行内存管理,大大减少了程序员的负担。但这个特点涉及列表元素的大量移动,效率较低。1.列表元素的增加Python主要提供了五种添加元素的方法。(1)append()方法使用append()方法,原地修改列表,是真正意义上的在列表尾部追加元素,速度最快,推荐使用。>>>list=[70,120]>>>list.append(50)>>>list[70,120,50]4.1.3列表中元素的编辑操作(2)extend()方法列表对象的extend()方法可以将一个列表中的全部元素添加到另一个列表中,属于原地操作,不创建新的对象。>>>list1=[3,6,9,10]>>>list2=[4,7,16]>>>id(list1)2208692684224>>>list1.extend(list2)>>>list1[3,6,9,10,4,7,16]>>>id(list1)22086926842244.1.3列表中元素的编辑操作(3)insert()方法使用insert()方法可以将指定的元素插入到列表对象的任意指定位置。这样会让插入位置后面所有的元素进行移动,影响处理速度。涉及大量元素时,尽量避免使用。>>>list=[0,16,27]>>>list.insert(3,36)>>>list[0,16,27,36]4.1.3列表中元素的编辑操作(4)“+”运算符可以使用“+”运算符把元素添加到列表中。这种方式并不是真正的在尾部添加元素,而是创建新的列表对象。>>>list=[12,37]>>>id(list)2208735459712>>>list=list+[16]>>>list[12,37,16]>>>id(list)22087353841924.1.3列表中元素的编辑操作(5)乘法扩展使用*运算,可以生成一个新列表,新列表元素是原列表元素的多次重复。>>>list1=[2,3,7]>>>list2=list1*2>>>list2[2,3,7,2,3,7]4.1.3列表中元素的编辑操作2.列表元素的删除删除元素主要有两种方式,一种是根据索引删除,一种是根据元素值删除。(1)根据索引删除删除列表中的指定元素和删除列表类似,也可以使用del语句实现。>>>list=[0,2,3,4,7,9]>>>dellist[2]>>>list[0,2,4,7,9]>>>dellist[-2]>>>list[0,2,4,9]4.1.3列表中元素的编辑操作(2)根据元素值删除remove()方法用于删除列表对象中第一个匹配的指定元素,若指定元素不存在则抛出异常。>>>list=[13,17,32,23,29,41]>>>list.remove(32)>>>list[13,17,23,29,41]>>>list.remove(50)Traceback(mostrecentcalllast):File"<pyshell#49>",line1,in<module>list.remove(50)ValueError:list.remove(x):xnotinlist4.1.3列表中元素的编辑操作3.列表元素的修改修改列表中的元素只需要通过索引获取该元素,再为其重新赋值即可。>>>list=[13,16,45,31]>>>list[2]=12>>>list[13,16,12,31]4.1.3列表中元素的编辑操作4.求列表中元素的个数求列表中元素的个数可以通过len()函数实现。>>>list=[1,2,3,4,5,6]>>>len(list)64.1.3列表中元素的编辑操作5.判断指定元素是否在列表中使用in关键字可以直接检查元素是否存在,返回布尔值True或False。>>>list=[1,2,"apple",3.14,"banana"]>>>"orange"inlistFalse>>>"orange"notinlistTrue4.1.4列表遍历列表遍历是一种常见操作,在该过程中可以实现数据处理、条件筛选、数据聚合等功能。Python中提供了多种遍历列表的方法,常用的包括以下两种。1.直接使用for循环遍历语法格式如下:foriteminlistname:print(item)4.1.4列表遍历2.使用enumerate()函数实现enumerate()是Python的内置函数,通过它可以列举出序列中的数,返回索引序号和对应的元素。其语法格式如下:enumerate(iterable,start=0)4.1.5列表的排序在实际开发中,经常需要对列表种的元素进行排序,这可以通过Python提供的内置函数sort()方法来实现,该方法对列表进行原地排序,不会生成新的列表对象。其语法格式如下:list.sort(key=None,reverse=False)其中,list表示要排序的列表,参数key可选,用于指定一个函数,该函数应该返回一个可以用来比较的值,默认情况下,sort()使用元素的自然顺序进行排序。reverse这也是一个可选参数,如果设置为True,那么列表会被降序排序;如果设置为False(默认值),那么列表会被升序排序。4.1.6切片操作切片是Python序列的重要操作之一,适用于列表、元组、字符串、range对象等类型。切片操作可以从序列中截取部分元素组成新的序列,且不会使原序列发生变化,还可以使用切片来修改和删除列表中的部分元素,甚至可以通过切片操作为列表对象增加元素。基本语法如下:sequence[start:stop:step]其中,sequence是要进行切片操作的序列对象;start是切片的起始索引(包含),如果省略则默认为0;stop是切片的结束索引(不包含),如果省略则默认为序列的长度;step是切片的步长,如果省略则默认为1。另外,切片操作不会因为下标越界产生异常,而是简单地在列表末尾截断或者返回一个空列表。目录Contents4.1列表4.2元组关注微信公众号DSSF007,回复关键字“清华电脑学堂”获取更多资源4.3集合4.4字典4.5拓展练习4.2.1元组的创建和删除1.使用()直接创建元组创建元组和创建列表的方法相似,使用圆括号就可以创建元组,只需要在圆括号中添加元素,元素间使用逗号分隔,也可以省略圆括号。>>>atuple=(1,'hello',2)>>>atuple(1,'hello',2)>>>atuple=(1)>>>type(atuple)<class'int'>4.2.1元组的创建和删除>>>at
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026外地返乡面试题及答案
- 2026吴江月嫂面试题及答案
- 历史试卷-湖北省圆创联盟2027届高三年级八月联考暨开学检测考试
- 2026-2031年中国多射流熔融3D打印机行业市场调查研究及发展前景预测报告
- 2025-2026学年河北省邢台市宁晋县四年级数学第二学期期末联考试题含答案
- 汕尾市禹辉年产烘干砂32000吨新建项目环境影响报告表
- 锦州市太和区公益性岗位招聘笔试真题2025
- 平凉市崆峒区招聘农村订单定向医学生和协议培养师范毕业生笔试真题2025
- 舟山市教育局市本级学校面向县选聘教师笔试真题2025
- 2026 年跟骨骨折术后护理个案研讨班会
- DB51 T1996-2015四川公路工程超声回弹综合法 检测结构混凝土强度技术规程
- 消毒产品进货检查验收制度
- 《宠物美容与护理》课件-梳毛工具
- HG∕T 5259-2017 聚醚酯消泡剂
- 《建筑排水塑料管道工程技术规程 CJJT29-2010》
- 食品安全与日常饮食智慧树知到期末考试答案章节答案2024年中国农业大学
- PE袋化学品安全技术说明书MSDS(聚乙烯塑胶袋)
- 儿科误吸的应急预案
- 公司理财课件
- 海南省民族教育发展提升行动计划(2023-2025年)
- 园林供电照明设计
评论
0/150
提交评论