Python程序设计基础(第2版)课件 第1、2章 Python语言基础、数值类型与科学计算_第1页
Python程序设计基础(第2版)课件 第1、2章 Python语言基础、数值类型与科学计算_第2页
Python程序设计基础(第2版)课件 第1、2章 Python语言基础、数值类型与科学计算_第3页
Python程序设计基础(第2版)课件 第1、2章 Python语言基础、数值类型与科学计算_第4页
Python程序设计基础(第2版)课件 第1、2章 Python语言基础、数值类型与科学计算_第5页
已阅读5页,还剩156页未读 继续免费阅读

下载本文档

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

文档简介

1

Python

语言基础Python语言概述环境配置数据与数据类型对象与变量程序基本结构内置类型1.11.21.31.41.51.6学习引导发展历史、开发环境的配置数据类型、关键字、程序结构、语句块、函数、文件读写了解数据、对象与属性、命名与变量成员运算、优先级理解逻辑值检测、布尔运算、比较运算掌握输入、格式化输出运用1.1Python

语言概述Python语言简介——发展历程1.11989年GuidovanRossum开始开发Python语言。1991年

Python1.0发布。2000年Python2.0发布,引入了一些重大的语义变更。2008年Python3.0发布,为语言增加了很多新特性,并且不再与Python2.x完全兼容。2020年Python3.9发布,增加了许多新特性,如型标注,PEP572。2021年Python3.10发布,包含了诸如泛型,Pydantic模型等新特性。最初的

Pythonlogo

Python之父GuidovanRossumPython语言简介——语言特点1.1代码简洁代码可读性高丰富的标准库很强的交互性Python语言简介——应用领域1.1AAI人工智能BBlockchain区块链CCloudCompute云计算DBig

Data大数据EEdgeComputer边缘计算Python语言简介最活跃的Python、C/C++、Java、C#和JavaScript等20种语言大约占据80%的市场。1.12025年6月TIOBE编程语言排行1.2环境配置解释器的安装Python解释器可在Python官方网站/

下载1.2.1解释器的安装1.2.1安装过程中,在第一个界面上,务必勾选第一个界面上的

“AddPython.exetoPATH”安装成功后,可以在开始菜单里找到Python3.12,里面有IDLE、Python3.12(Python解释器)和Python3.12ModuleDocs(文档)。1.2.2编写程序IDLEPython安装时自带的集成开发与学习环境提供了一个基础的交互式命令行和代码编辑器适合初学者进行简单的代码练习。IDE(集成开发环境)功能更强大的专业软件集成了代码编辑器、高级调试器和项目管理等多种工具能显著提升复杂项目的开发效率。交互式编程文件式编程编写程序IDLE具有两种类型的主窗口:Python

Shell窗口——交互式编程文件编辑窗口——文件式编程1.2.2编写程序——交互式编程单击开始菜单中的IDLE

进入Python

Shell交互环境。在输入代码的时候,程序设计里的括号和引号都是半角,即英文状态下的输入,程序中所有符号都是半角符号。不便于代码的修改,且退出也无法保存代码。1.2.2编写程序——文件式编程在IDLE的File菜单单击New

File(或Ctrl+N)会打开一个新的编辑窗口。代码保存成扩展名为“.py”的文件。按F5键或单击Run菜单里的RunModule就可以在Shell里输出程序运行结果。保存的源代码文件可以反复运行。1.2.2查看帮助文档在交互环境下,输入help()函数并回车,进入帮助模式。在help>后输入要查看的主题、关键词、函数名或模块名等信息便查看相关文档。>>>help()#交互环境下输入help()函数并回车WelcometoPython3.12'shelputility!......#此处省略提示信息若干行help>

abs

#在>后输入要查看的函数名或关键词并回车会返回帮助信息Helponbuilt-infunctionabsinmodulebuiltins:abs(x,/)Returntheabsolutevalueoftheargument.1.2.3PyCharm集成开发环境(IDE)是将代码编辑器、调试器和代码自动补全等常用开发工具组合在一起的应用程序,旨在提高程序员的开发效率。常见的Python开发工具包括VisualStudioCode、Anaconda、PyCharm等。1.2.4PyCharm提供强大的智能代码辅助功能,能够实时错误检查和代码补全,推荐初学者使用。AI插件PyCharm提供众多免费的人工智能编程插件。功能全面,能够实时续写代码、生成注释和解释代码等。1.2.51.3数据与数据类型1.3数据与数据类型所有客观对象都要抽象成数据才能在计算机中进行存储和处理。根据需要对数据进行的操作和处理的不同,可以将数据和操作定义成若干种类型。每种数据类型都有自己的属性、方法和不同的适用场景。数值类型对象示例数值类型整型1024、79、0、-66浮点型123.45、12.、.23、0.78文本类型字符串'1024'、"test"、'''10test'''序列类型列表[1,2,3,4]、[1,2,'a',"b"]元组(1,2,3,4)、(1,2,'a','b')、(1,)Rangerange(1,10,2)、range(5)集合类型集合{1,2,3,4}、{'h','l','e','o'}、{'you','me','he'}映射类型字典{'age':40,'name':'zhao'}1.4对象与变量对象与变量每个数据都抽象为一个对象。数据的存储和管理以对象为单位进行。系统为每个新创建的对象分配一个块内存空间,并用该段内存的首地址编号作为对象的身份标识,此值可以用id()函数获取。1.4对象与属性1.4.1类型:整型

<class‘int‘>

身份标识(内存地址):1775827913040值:500对象的3个基本属性:类型、身份标识、值。对象创建后,其类型和身份标识不会改变。1.4.2变量与赋值赋值的本质是指将一个名字绑定到一个对象上的操作。赋值符号“=”。变量名=对象变量名是给对象贴一个用于访问的标签。一个对象可以没有名字、有一个名字或有多个名字。Python中先有对象后有名字,所以每个变量在使用前都必须先有值才可以使用。变量与赋值pi=3.14#变量pi赋值为3.14radius=

4

#变量radius赋值为4area=pi*(radius**

2)#计算圆面积print(area)#输出面积值50.24radius=

6

#变量radius赋值为6area=pi*(radius**

2)#计算圆面积print(area)#输出面积值113.041.4.2变量与赋值——赋值表达式1.4.2赋值表达式也称海象运算符将赋值操作和表达式运算在同一行语句中完成。避免一些方法重复调用,提高运行速度。

if(age:=

20)>

18:#变量age赋值为20,并将age的值与18比较

print(age)#输出:20但表达式变得抽象、难以理解,不建议初学者使用。变量与赋值——赋值表达式1.4.2符号描述实例解释=赋值符c=100c=a+b将数字

100赋值给c将

a+b的运算结果赋值给c:=赋值表达式if(age:=20)>18:先赋值再参与表达式的运算+=加法运算赋值符c+=ac=c+a-=减法运算赋值符c-=ac=c-a*=乘法运算赋值符c*=ac=c*a/=除法运算赋值符c/=ac=c/a%=取模运算赋值符c%=ac=c%a**=幂运算赋值符c**=ac=c**a//=整除运算赋值符c//=ac=c//a变量与赋值——多变量赋值1.4.2x,y=

(5,10)#元组元素按顺序赋值给多个变量m,n=

3,4#3,4为元组,元组元素按顺序赋值给多个变量i,j=

[3,6]#列表元素按顺序赋值给多个变量a,b,c=

'xyz’#字符串中字符按顺序赋值给多个变量赋值符号左边的变量的数量等于右侧数据的数量其中的每个元素分别绑定一个名字两者数量不一致时,将引发

ValueError:m,n=

3,4,5

#ValueError:toomanyvaluestounpack(expected2)

m,n,k=

3,4

#ValueError:notenoughvaluestounpack(expected3,got2)1.4.3变量命名规范(常用PEP8规范)大小写字母、数字和下划线数字不能为首字符变量名区分大小写字母常用单词或下划线连接多个小写字母的单词3ks=0ks_3

=0numberuser_nameid_checktrueTrue变量命名规范a=3.14#无意义变量名b=4#无意义变量名c=a*

(b**2)

#不确定意义的表达式1.4.3pi=3.14#圆周率diameter=4#直径area=pi*

((diameter/2)**2)

#计算圆的面积

简洁且能清晰表达对象意义的名字,便于能阅读和理解1.4.4Python关键字Python关键字是语言内置的特殊词汇一般用于构成程序框架、表达关键值和具有结构性的复杂语义不能用作变量名或函数名FalseawaitelseimportpassNonebreakexceptinraiseTrueclassfinallyisreturnandcontinueforlambdatryasdeffromnonlocalwhileassertdelglobalnotwithasyncelififoryield1.5程序基本结构1.5程序基本结构输出>=

1输入>=

0print()input()处理1.5.1输出将程序的处理结果通过显示器、绘图仪等设备反馈给用户或以文件形式持久保存。print()函数写入到文件格式化字符串字面值str.format()方法print(*objects,sep='

',end='\n')1.5.1输出——print()函数主要用于将一个对象或多个对象输出到屏幕上。*objects:0个或多个输出对象,用半角逗号“,”将要输出的多个对象隔开sep:输出的多个对象之间的分隔符,默认用空格分隔end:输出结束时的符号,默认每个输出语句用换行符结束输出——print()函数1.5.1

print('你好',end='')

#输出后不换行,用空格隔开

print('欢迎',end='')

#输出后不换行,用空字符串隔开

print('学习Python!')

#输出后换行

print('欢迎进入程序世界!')

#在新的一行输出#输出:你好

欢迎学习Python!欢迎进入程序世界!

print('2024','08','11')

#默认输出时用空格分隔#20240811

print('2024','08','11',sep='/')

#用sep参数指定“/”用于输出时分隔符#2024/08/11

print('09','28','36',sep=':')

#用sep参数指定“:”用于输出时分隔符#09:28:36输出——格式化字符串字面值a=5b=3print(f'{a}-{b}={a-b}')#输出5-3=21.5.1用“f”或“F”做前缀格式化字符串输出使用时,在字符串开始的引号或三引号前加上一个“f”或“F”在字符串中,放置在大括号“{}”中的变量或表达式在程序运行时,会被变量和表达式的值代替。输出——格式化字符串字面值user_name='Tom'gender='male'#传入大括号的对象可以为字符串age=20

#传入大括号的对象可以为整数或其他任意类型#将对象user_name、gender、age的值填入到字符串的替换域{}中输出print(f'姓名:{user_name},性别:{gender},年龄:{age}')#输出:姓名:Tom,性别:male,年龄:201.5.1大括号中的变量值可以为任意类型在模板字符串中加入说明性字符串,这些字符串将被原样输出当大括号中的值为字符串时,需使用不同的引号与格式中的引号区分开,3.12及以后的版本可用任意引号。

a=5

b=3

print(f'{a}/{b}={a/b}‘)

#原样输出:5/3=1.6666666666666667

print(f'{a}/{b}={a/b:.2f

}’)

#输出保留2位小数:5/3=1.671.5.1输出——格式化字符串字面值格式限定符.mf在冒号后面加“.mf”可以控制输出保留浮点数小数点后m位数字。m表示保留小数位数,小数不足m位时末尾补“0”。f表示作用于浮点数(float)对象上。输出——格式化字符串字面值

print(f'{1}

*

{9}={1

*9:2}‘)

#1*9=9

print(f'{9}

*

{9}={9

*9:

2}’)

#9*9=811.5.1在':'后传递一个整数可以让该字段成为最小字符宽度可用于设置输出时对齐字符。输出——str.format()方法1.5.1str.format()函数主要用于输出格式化字符串。<模版字符串>由字符串和若干个用大括号“{}”表示的替换域组成,大括号用来控制修改字符串中嵌入值出现的位置。format()括号中放置与替换域数量相同的参数值,运行时默认按替参数出现的顺序一一对应填入到前面的替换域中。

<模版字符串>.format(<逗号分隔的参数>)输出——str.format()方法a=5b=3print('{}+{}={}'.format(a,b,a+b))

#参数值按出现顺序填入替换域,输出5+3=81.5.1参数值按出现顺序填入替换域输出——str.format()方法a=5b=3print('{}*{}={}'.format(a,b,a*b))#参数值按出现顺序填入替换域,输出5*3=15print('{2}*{1}={0}'.format(a*b,b,a))#参数序号从0开始编号,依次为:0,1,2,输出5*3=15print('{2}*{0}={1}'.format(b,a*b,a))#括号中序号根据参数序号调整,输出5*3=151.5.1参数值按序号填入替换域输出——写入文件 fw=

open("data.txt",'w')

#打开文件"data.txt,创建文件对象命名为fw fw.write("HelloWorld!")

#将字符串写入到文件data.txt中 fw.close()

#关闭文件对象1.5.1使用内置函数open(file)创建一个文件write()方法将数据写入到文件中长期保存open()函数参数file是要打开的文件的带路径的文件名的字符串参数“w”表示写入模式open()函数的作用是打开file指定的文件并返回相应的文件对象。输入——用户输入name=input("请输入你的姓名:")

#先输出提示信息,光标不换行,等待用户输入姓名age=input("请输入你的年龄:")

#先输出提示信息,光标不换行,等待用户输入年龄,字符串print(f'你的名字是{name},今年{age}岁。')1.5.2input()函数用户输入通过内置函数input([prompt])实现prompt是可选参数,一般是一个提示用户输入相关信息的字符串,将其写入标准输出(输出到显示器),末尾不带换行符。该函数从输入中读取一行,将输入的数据转换为字符串并返回。在线评测系统中,为方便设计评测数据,一般约定不在input()中加入提示信息。输入——文件读取

fr

=

open("data.txt",'r’)

#打开文件data.txt,创建文件对象命名为fr txt=

fr.read()

#将data.txt中的数据读取为一个字符串命名为txt

fr.close()

#关闭文件对象 print(txt)

#输出txt中的数据1.5.2文件读取使用内置函数open(file)实现参数file是要打开的文件的带路径的文件名的字符串参数“r”表示读取模式函数的作用是打开file指定的文件并返回相应的文件对象。处理1.5.3顺序结构分支结构程序控制结构语句1语句2语句3True表达式1表达式2表达式m语句1语句2语句mFalseFalseTrueTrue循环结构开始循环体逻辑条件结束FalseTrue处理——顺序结构

#输入:获取用户输入的圆的半径 radius=float(input("请输入圆的半径:"))

#处理:利用面积公式计算圆的面积 pi=

3.14159 area=pi*

(radius**

2)

#输出:输出圆的面积

print(f"圆的面积是:{area}")1.5.3各行开头都对齐在同一层次语句按出现的先后顺序依次执行语句1语句2语句3处理——分支结构根据不同的条件执行不同的语句块if…elif…else控制程序执行不同条件下的语句块当满足其中某一个条件时,一定不会再满足其他条件,程序即终止判定。1.5.3True表达式1表达式2表达式m语句1语句2语句mFalseFalseTrueTrue处理——分支结构 height=float(input('请输入身高(米):'))#输入身高并转换为浮点数 weight=float(input('请输入体重(公斤):'))#输入体重并转换为浮点数 #根据BMI值输出健康建议 bmi=weight/pow(height,2)

#计算BMI指数 ifbmi<

18.5:#判断BMI指数是否小于18.5 advice="体重过轻"

elif18.5

<=bmi<

24.9:

#判断BMI指数是否在18.5到24.9之间

advice=

"体重正常"

elif25

<=bmi<29.9:

#判断BMI指数是否在25到29.9之间

advice=

"体重超重"

else:#判断BMI指数是否大于等于30 advice=

"肥胖"

print('BMI指数为:{:.2f}'.format(bmi))

#输出BMI指数并保留两位小数

print(f'健康建议为:{advice}'))

#输出处理结果1.5.3处理——循环结构print(f'{'*':^9}')

#在9个字符的宽度中居中输出1个*print(f'{'***':^9}')

#在9个字符的宽度中居中输出3个*print(f'{'*****':^9}')

#在9个字符的宽度中居中输出5个*print(f'{'*******':^9}')

#在9个字符的宽度中居中输出7个*print(f'{'*********':^9}')

#在9个字符的宽度中居中输出9个*1.5.3#输出:*

***

*****

*******

*********#重复执行5次,i依次取0,1,2,3,4foriinrange(5):

#重复执行这条语句5次,每次输出的“*”数量不同

print(f'{"*"*(2*i+1):^9}')循环结构表示程序反复执行某个或某些操作直到某条件为假(或为真)时才可终止循环语句块

deftest():#定义一个函数,函数体的语句均在缩进一个层次内

foriinrange(10):#for循环语句,循环体的语句均在缩进一个层次内

ifi%2==0:#if分支语句,分支体的语句均在缩进一个层次内

print(f

'{i}是偶数') else:#else分支语句,分支体的语句均在缩进一个层次内

print(f

'{i}是奇数')

returnNone#函数返回值为None,函数体的语句均在缩进一个层次内 test()#调用函数test(),语句与函数定义的缩进层次相同1.5.4语句块:一组作为一个单元执行、且缩进一致的程序语句。同一块内的所有语句必须保持相同的缩进级别。通常推荐使用4个空格作为一级缩进。常用于以冒号(:)结尾的复合语句之后。当代码的缩进返回到上一级别时,语句块结束。语句块可以内嵌,内层语句块需要更深的缩进。函数1.5.5分而治之逻辑简单流程嵌套逻辑复杂模块化程序设计函数是指用于进行某种计算或具有某种功能的一系列语句的有名称的组合。函数1.5.5defgreet(name,gender):

#函数定义,用def、函数名、参数构成,冒号结尾

"""这个函数用于打招呼"""

#文档字符串,说明函数功能、参数、返回值等信息

ifgender==

'male':

#函数体,根据性别返回不同的问候语

return

f"Hello,Mr.{name}!"

#返回值,将函数处理结果返回给调用函数处

else:

return

f"Hello,Miss.{name}!"#调用函数message=greet("Alice",'male')

#调用函数,获取函数的处理结果进一步应用print(message)

#输出:Hello,Mr.Alice!1.6内置类型内置类型1.6内建操作是Python语法核心的一部分无需导入即可直接对数据进行比较、计算或逻辑判断通过关键字(如and,in)或特殊符号(如+,==)实现核心概念:布尔值一种只有“True”(真)和“False”(假)两种值的逻辑数据类型主要用于表示逻辑判断的结果并控制程序的流程内置类型1.6布尔运算:使用and(与)、or(或)、not

(非)这三个关键字来组合或反转布尔值,从而构建出更复杂逻辑条件的计算。比较运算:使用==、!=、>、<等操作符来比较两个对象的值是否相等或大小关系,并返回一个布尔值结果。逻辑值检测:判断任意一个Python对象被视为True(真)还是False(假)的过程,主要用于条件判断。成员运算:使用in

或notin关键字来检查一个元素是否存在于一个序列(如字符串、列表、元组)中的操作。逻辑值检测任何Python对象都可以评估其布尔值True(真)或

False(假)

其意义在于让开发者能够编写出更简洁、易读的条件判断语句在if或while等分支语句中高效地控制程序流程。1.6.1TrueFalse被定义为假值的常量:None和False任何数值类型的零:0,0.0,0j,Decimal(0),Fraction(0,1)空的序列和多项集:'',(),[],{},set(),range(0)大部分对象除了右侧判定为False逻辑值检测 fromdecimalimportDecimal#decimal模块中的小数函数Decimal fromfractionsimportFraction#fractions模块中的分数函数Fraction

print(bool(Fraction(0,1)))

#Fraction(0,1)表示分子为0分数,0/1,False

print(bool(Decimal(0)))

#Decimal(0)表示0,False

print(bool('hello'))

#非空字符串,True

print(bool(100))

#非0数字,True

print(bool(0.0))

#浮点数0.0与数字0等值,False

print(bool('

'))

#空格是非空字符串,True

print(bool(''))

#空字符串,False

print(bool([]))

#空列表,False

print(bool(None))

#None类型,False1.6.1布尔运算1.6.2布尔运算也称为逻辑运算符包括“and(与)”、“or(或)”、“not(非)”运算优先级运算符表达式功能描述低orxory首先对表达式x求值,如果值为True则返回x的值,否则对表达式y求值并返回其结果值。中andxandy首先对表达式x求值,如果值为False则返回x的值,否则对表达式y求值并返回其结果值。高notnotx表达式x

值为False时返回True,否则返回False。and和or两边的x和y可以是数字、变量或表达式,布尔运算返回的并不是False和True,而是返回参与布尔运算的操作数或表达式的值。布尔运算——or运算符首先对or左边的表达式进行运算当其值为True

时,直接返回左侧表达式的运算结果,不会对右侧表达式进行运算(短路特性)当其值为False

时,才对右侧的表达式进行运算,此时右侧表达式的值为逻辑运算表达式的值。

print(10or

'hello')

#先对左侧求值,值为True则返回左侧的值,返回整数10

print('hello'

or10)

#先对左侧求值,值为True则返回左侧的值,返回'hello'

print(10or

'')

#先对左侧求值,值为True则返回左侧的值,返回整数101.6.2

print(0or

'hello')

#先对左侧求值,值为False则返回右侧的值,返回'hello'

print(0orFalse)

#先对左侧求值,值为False则返回右侧的值,返回False

print(''

or[])

#先对左侧求值,值为False则返回右侧的值,返回[]布尔运算——and运算符首先对and左边的表达式进行运算当其值为False

时,直接返回左侧表达式的运算结果,不会对右侧表达式进行运算(短路特性)当其值为

True

时,才对右侧的表达式进行运算,此时右侧表达式的值为逻辑运算表达式的值。

print(0and

'hello')

#先对左侧求值,值为False则返回左侧的值,返回0

print(0andFalse)

#先对左侧求值,值为False则返回左侧的值,返回0

print(''

and[])

#先对左侧求值,值为False则返回左侧的值,返回''1.6.2

print(10and

'hello')

#先对左侧求值,值为True则返回右侧的值,返回'hello'

print('hello'

and10)

#先对左侧求值,值为True则返回右侧的值,返回整数10

print(10and

'')

#先对左侧求值,值为True则返回右侧的值,返回''布尔运算——not运算符布尔运算or和and的值,是参与运算的表达式的值之一not运算结果一定是布尔值True或False。

print(not10)

#10是非0整数,布尔值为True,取非结果为False

print(not

'')

#'',空字符串,布尔值为False,取非结果为True1.6.2布尔运算用在if或while的条件表达式中:得到布尔运算的值对返回值做逻辑值检测,根据其布尔值决定后续操作。 if10or

'':#10or''布尔运算的值是10,条件运算结果为True

print(True)

#当10or''布尔运算值是True时,输出True else:#否则

print(False)

#输出False,执行此分支1.6.2

print(bool(10or

''))

#先得到10or''的结果为10,再用bool(10)返回True输出1.1输入用户信息实例说明:编程接收用户输入的出生日期当用户不想公开自己的出生日期时,可以直接输入回车,此时记录“保密”。思路:分支语句布尔运算结果赋值实例1.1输入用户信息

分支语句实现 birthdate=input('请输入出生日期:')

#接收用户输入的出生日期或回车符 ifbirthdate:#当birthdate不为空字符串时,逻辑值检测结果为True

print('你的生日是:',birthdate)

#有输入时,输出用户输入的出生日期 else:#无输入时(直接回车时),输出'保密'

print('你的生日是:','保密')实例布尔运算结果赋值 birthdate=input('请输入出生日期:')or

'保密'

#布尔表达式的结果赋值给birthdate

print('你的生日是:',birthdate)布尔运算Tips:短路特性:解释器先对逻辑运算符左侧的操作数进行运算当发生短路之后,该语句短路处之后的所有代码都不会被执行把容易判断、计算量较小的表达式放在逻辑运算符的左侧,可以减少不必要的运算,提高算法效率。

#判断回文素数代码 ifstr(i)

==str(i)[::-1]

andprime(i):

#字符串i是回文,数值i素数

print(i)

#将判断回文表达式str(i)==str(i)[::-1]放在运算符左侧

#当判定不是回文时,不再执行右侧判定素数函数prime(i)。

#因判定素数的计算量较大,这样设计可以极大地降低运算量,提高效率。1.6.21.2判断闰年实例说明:输入一个年份,判定该年是否是闰年。思路:普通闰年:公历年份是4的倍数,且不是100的倍数的,如2004年、2020年等就是闰年,可以用以下布尔运算表达式表示:year%4==0andyear%100!=0世纪闰年:公历年份是整百数的,必须是400的倍数,如1900年不是闰年,2000年是闰年,可用以下布尔运算表达式表示:year%400==0满足这两个条件之一的年份都是闰年。实例1.2判断闰年实例哪个更好?都可以?第一个表达式,当年份不能被4整除时,触发短路,不再判定是否能被100和400整除,在本题中可减少约25%的运算次数。(year%4==0andyear%100!=0)oryear%400==0VSyear%400==0or(year%4==0andyear%100!=0)year=int(input())ifyear%4==0andyear%100!=0oryear%400==0:

print(f'{year}年是闰年')else:

print(f'{year}年不是闰年')1.2判断闰年实例在同一个表达式中同时出现and和or时,建议用加小括号的方法明确顺序。(year%4==0andyear%100!=0)

oryear%400==0成员运算1.6.3运算符in

和notin用于成员运算检测in前面的对象是否在in后面的对象中存在。运算符描述实例in如果对象在某一个序列中存在,返回True,否则返回Falseprint('u'in['U','u','USD'])#输出Truenotin如果对象在某一个序列中不存在,返回True,否则返回Falseprint('r'notin['U','u','USD'])#输出True1.3判断字符类型实例说明:输入一个字符,判定是字母还是数字。思路:用in

检测目标是否在对应的字符集中存在若目标在所有字母构成的字符串中存在,则该字符是字母若目标在所有数字构成的字符串中存在,则该字符是数字字符。实例1.3判断字符类型

letter=input()

#输入一个字符 ascii_letters=

'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' #所有字母 ifletterinascii_letters:

#成员检测,输入字符在字母字符串中存在时

result=

'这是字母'

#输出'这是字母’ elifletterin

'0123456789':

#成员检测,输入字符在数字字符串中存在时

result=

'这是数字'

#输出'这是数字’ else:#其他情况

result=

'这是其他字符'

print(result)#输出判断结果实例1.6.4比较运算比较运算符用于比较两个值,并确定他们之间的关系结果是逻辑值:True或False。比较优先级:比较运算符的优先级相同,也与成员运算优先级相同,高于布尔运算。类型符号语义一致性比较==、!=等于、不等于次序比较<、<=>、>=严格小于、小于或等于严格大于、大于或等于标识号比较is

isnot当且仅当x和y是同一对象时xisy为真,即要求x和y的类型、值和id均相同时为True。isnot则相反。1.6.4比较运算比较运算符可以连续使用x<y<=z相当于x<yandy<=zxisy==z相当于xisyandy==zscore=float(input())

#输入Python考试成绩并为浮点数#若成绩在90分以上且不大于100分,输出“优秀”ifscore>=90andscore<=100:

#比较运算和逻辑运算组合使用

print("优秀")if100>=score>=90:

#连续比较,推荐使用

print("优秀")比较运算——比较运算符is和isnot用于检测对象的标识号是否相同,即比较两个对象的存储单元是否相同当且仅当x和y是同一对象,即仅当id(x)==id(y)时,xisy结果为True。xisnoty会产生相反的逻辑值,即当id(a)!=id(b)时,引用的不是同一个对象,返回结果True,否则返回False。x=10#为对象10加一个标签x

y=10#Python同一程序中,等值整数调用同一个对象print(id(x),id(y))

#输出id相同,值与系统相关print(xisy)

#True,说明x与y是同一个对象y=20#新创建一个对象20,加标签为yprint(xisy)

#False,说明x与y是不同对象print(id(x),id(y))

#输出的x与y的id不同1.6.41.6.5比较优先级序号运算符描述1()、[]、{}括号表达式,元组、列表、字典、集合2x[i],x[m:n]序列索引、切片3**幂运算4+x、-x正、负5*、/、//、%乘法、除法与取模6+、-加法与减法7<、<=、>、>=、!=、==、is、isnot、in、notin比较运算、成员检测和标识号检测8notx逻辑非9and逻辑与运算符10or逻辑或运算符11if…else条件表达式12lambdalambda表达式13:=赋值表达式、海象运算符多种运算符混合运算时,优先级由高到低如下:本章思维导图本章小结本章主要介绍了Python语言基本概念、环境配置、数据类型、对象与变量、程序基本结构和内置类型。在安装Python解释器时,注意要选中“AddPythontoPATH”,推荐使用Pycharm等专业开发工具结合AI插件进行学习。对象命名时,建议遵从PEP8规范。编码时,建议将输入、处理和输出分开,尽早熟悉函数的定义和使用,培养将复杂问题分解为多个简单的子问题的能力。本章练习1.编写程序,输出字符串'Helloworld!’。2.在两行中分别输入一个非零整数,按'5+7=12'格式输出这两个数的和、差、积和商。3.在三行中分别输入表示年、月、日的数字,按以下格式进行输出:2024-11-272024/11/2720241127202411274.输入一个表示年份的正整数,判定输出该年是否为闰年。第2章数值类型与科学计算数值类型数值类型转换数学表达式数学运算函数数字和数学模块2.12.22.32.42.5学习引导复数类型scipy、sympy、numpy等第三方库的应用场景和可解决的问题了解不同数值类型应用中的区别,浮点数取值范围和有效数字运算运算优先级,不同方法控制精度的区别理解数值类型转换,random库的主要函数表达式构建与数值运算,浮点数精度控制掌握灵活运用数值表达式解决数学问题运用2.1数值类型2.1数值类型可参与数值运算的数值类型主要有三种:2.1.1数值类型——整数不包含小数点的数字包括:十进制的0、正整数和负整数以及其他进制的整数进制种类转换函数引导符号描述与示例十进制无由字符0到9组成,遇10进1,如:99,156,-45二进制bin()0b

或0B由字符0和1组成,遇2进1,如:0b1010,0B1111八进制oct()0o

或0O由字符0到7组成,遇8进1,如:0o107,0O777十六进制bex()0x

或0X由字符0到9及a、b、c、d、e、f或A、B、C、D、E、F组成,遇16进1,如0xFF,0xff,0X10A2.1.1数值类型——整数整数子类—布尔值布尔值是两个常量对象False

和True,表示逻辑上的假值或真值在数值类型的上下文中,分别以整数0和1为值参与运算。

print(5+True)

print(True+False)

print(True*5+False*2)

print(True*2+3)2.1.1数值类型——整数特点可以存储计算机内存能够容纳的无限大整数,几乎没有大小限制可精确表示超大数

据IDC发布《数据时代2025》的报告显示2025年全球每天产生的数据量将达到

491EB,1EB=1024*106B(字节)可以计算出2025年全球可产生206620827448116080803840字节数据。

total_byte=

491

*

1024

**

6

*

365

print(f"2025年全球可产生{total_byte}字节数据")

#输出:2025年全球可产生206620827448116080803840字节数据2.1.2数值类型——浮点数由整数部分、小数点与小数部分组成。小数部分可以没有数字,但小数点必须要有,此时相当于小数部分为0。123.45、23.0、0.78、12.

(12.0)、.15(0.15)十进制表示<a>e<n>,等价于数学中的a×10n

。0.48e-5、2e3、2.53e3(2.53e3=2.53×103=2530.0)科学记数法2.1.2数值类型——浮点数浮点数无法保证完全精确十进制0.3二进制0.01001100110011十进制0.29998779296875浮点数范围占8个字节(64位)存储空间能表示的最大数字为1.7976931348623157×10308超过范围时会触发溢出异常(OverflowError)

print(pow(809.0,106))

#结果约为

1.748007496839708e+308,不超过浮点数范围

print(pow(810.0,106))

#触发异常

OverflowError:(34,'Resulttoolarge')2.1.2数值类型——浮点数浮点数精度默认提供大约17位数字的精度,其余的截断丢弃

a=3

.

1415926535897932384626433832795

#超出精度的数据存储时会被丢弃

b=31415926535897

.

932384626433832795

c=31415926535897932384626433832795

#整数可以无限大小,精确存储

print(a)

#输出3

.

141592653589793

print(b)

#输出31415926535897

.

934

print(c)

#输出31415926535897932384626433832795整数会被完整输出而浮点数输出时将只保留

17位有效数字,其余的截断丢弃

计算机中浮点数经常无法精确表示2.1.2数值类型——浮点数虽然在str.format()方法中可以使用在占位符中的冒号后面加“.mf”的方法设置浮点数的小数位数为

m位,但实际上超过17位有效数字后面的数字并不能精确表示print('3.14159265358979323846264338327950288419716939937510')

#字符串可完整输出:3.14159265358979323846264338327950288419716939937510print('{:.30f}'.format(314159.265358979323846264338327950288419716939937510))#314159.265358979348093271255493164062

print('{:.30f}'.format(3.14159265358979323846264338327950288419716939937510))#3.141592653589793115997963468544

n=3.0

+4j

print(n.real)

print(n.imag)

print(abs(n))2.1.3数值类型——复数复数由实数部分和虚数部分构成用a+bj,或者complex(a,b)

表示实部a和虚部b都是浮点数用real

和imag

方法分别获取复数的实部和虚部用abs(a+bj)获得复数的模#输出实部3.0#输出虚部4.0,注意复数的实部和虚部都是浮点数#输出复数的模52.2数值类型转换2.2数值类型转换

数据类型作为函数名,要转换的数字作为函数的参数。int()函数:转为整型float()函数:转为浮点数complex()函数:转为复数eval()函数:通用方法2.2.1int()函数将浮点数或整数类型字符串转换为一个整数。

int(number=0)

#将浮点数number转换成十进制整数,默认为0

int(string,base=10)

#base:输入字符串的进制基数,默认为10不能将浮点数字符串转成整数。例如,尝试将字符串'3.14'转成整数时,系统会返回ValueError

异常:print(int('3.14',

base=10))

#ValueError:invalidliteralforint()withbase10:'3.14'2.2.1int()函数

print(int())

print(int(3.14))

print(int(3.99))#浮点数转整数,只保留整数部分,输出:0#浮点数转整数,只保留整数部分,输出:3#浮点数转整数,只保留整数部分,输出:3浮点数转整数时:如果缺失则返回0。若为一个数字,返回其整数部分。2.2.1int()函数可指定参数base:base为整数的进制,范围是0、2-36中的整数默认值为10,常取2、8、10、16

print(int('0o107',base=8))

#'0o'

表示这是八进制的整数,输出71

print(int('0x107',base=16))

#'0x'

表示这是十六进制的整数,输出263

print(int('0b1001',base=0))

#'0b'

表示这是二进制的整数,输出9字符串转整数时:必须是整型的字符串,此时int()函数将转成对应进制的整数。

print(int('10'))#整型字符串,默认十进制,转为整数102.2.1int()函数对于参数base:base取值为0时,系统根据字符串前的进制引导符确定该数的进制当指定base时,必须输入整型的字符串,从而转成对应进制的整数。

print(int('0xff',base=0))

#'0x'

表示这是十六进制的整数,输出255

#base

2,将二进制构成的字符串转成十进制整数,输出255

print(int('11111111',

base=2))#二进制11111111转成十进制整数是255

print(int('11111111',

2))

#base可省,二进制11111111转成十进制

float(number=0.0)

float(string)2.2.1float()函数将数字或浮点数类型字符串

转换为浮点数没有参数时返回

0.0

print(float())

#无参数时返回浮点数0.0,输出:0.0

print(float(3))

#整数转浮点数,增加小数位,输出:3.0

print(float('3.14'))

#将字符串

'3.14'

转为浮点数3.14

print(float('0.456'))

#将字符串

'0.456'

转为浮点数0.456将特定的字符串或数字转换为一个复数或基于特定的实部和虚部创建一个复数2.2.1complex()函数

print(complex())

#无参数,输出:0j

print(complex(3))

#只有一个数值参数,虚部为0,输出:(3+0j)

print(complex(3,4))

#两个数值参数,输出:(3+4j) complex(number=0) complex(string) complex(real=0,image=0)2.2.1eval()函数将字符串expression进行解析,并作为Python表达式进行求值 eval(expression)

eval('100')

#整数字符串参数时返回整数100

eval('3.0')

温馨提示

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

评论

0/150

提交评论