Python核心编程与应用 课件 【ch01】Python语法基础pptx_第1页
Python核心编程与应用 课件 【ch01】Python语法基础pptx_第2页
Python核心编程与应用 课件 【ch01】Python语法基础pptx_第3页
Python核心编程与应用 课件 【ch01】Python语法基础pptx_第4页
Python核心编程与应用 课件 【ch01】Python语法基础pptx_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

Python核心编程与应用Python语法基础第一章新工科·数据科学与大数据系列01基础语法基础语法01标识符用计算机语言编写程序就像用英语写文章,首先要记住常用的单词,然后才能借助这些单词拼接成语句,由语句进而组织为作文,作文就相当于我们的程序。Python程序的各组成要素需要命名,如“s=1+1”中的s就是一个变量的名称,名称必须为有效的标识符,标识符有严格的规范:必须由字母开头,后跟字母、数字、下画线。字母区分大小写,a和A是两个完全不同的符号。数字不能作为标识符的开头。基础语法01关键字Python语言中有一些固定的英文单词已经被征用,这些单词称为保留关键字,用户不能将其作为标识符使用,否则会引发冲突。保留关键字共33个,如表1-1所示。在Python中导入keyword库,通过keyword对象的kwlist属性可以查看Python关键字,也可以用iskeyword方法判断某个单词是否为关键字,如果是,就返回真,否则返回假。基础语法01缩进格式缩进是指在某些语句前空若干空格,默认为4个空格,很像中文文章每个自然段开头空两格。Python程序通过严格的缩进约束其框架结构,借助缩进表达不同代码之间的层级关系,每缩进一层表示它是上一层代码的子集,由此构成一级代码、二级代码、三级代码等。Python程序支持无限级的层级嵌套。【例1-2】缩进格式。基础语法01换行如果代码比较长,需要若干行才能写完,就需要换行,即物理上有若干行但逻辑上仅属于一行。换行有3种方法。第一种方式:用“\”作为换行符,就是通过“\”将语句拆分成多行。第二种方式:遇到三种特殊的符号即{、[]、()时,可以直接将一行语句拆分成多行。这3种符号分别代表Python的三种数据结构。第三种方式:通过三引号(就是三个单引号或者三个双引号),但是必须成对出现。基础语法01注释注释就是备注,是程序员在代码中加入的说明或提示信息,用于提高代码的可读性。编译或解释程序遇到注释就会将其自动忽略,即注释不会被执行。Python程序使用“#”作为单行注释开头,所以当不想执行某行语句时,只要加“#”,改成注释即可。可以同时对多行进行一次性注释。当注释很长、一行写不下时,只要用三个单引号或者三个双引号括起来,就是一个多行注释。多行注释通常用来描述文档或者函数的功能,写在文档的最上方或者函数的首部,这样当打开这个文档时,就能看到文档的说明。02基础输入和输出基础输入和输出02输入函数input()语法格式如下:<变量>=input([提示信息])在获得用户输入前,input()函数可以包含一些提示信息,提高输入时的界面友好性和准确性。注意,不管用户输入的是字符还是数字,函数返回值一定是字符串类型。在PyCharm窗口的底部单击“PythonConsole”,进入控制台窗口,交互模式下的代码执行如图1-2所示。基础输入和输出02输出函数print()输出函数print()用于将程序结果输出到屏幕上。语法格式如下:print(*objects,sep='',end='\n',file=sys.stdout,flush=False)参数说明:objects:表示可以输出多个值,值之间用“,”分隔。sep:输出项之间的分割符,默认为空格。end:输出结束符,默认为回车,'n'是转义符,代表换行。【例1-6】print()函数基础输入和输出02重定向输入和输出stdin()和stdout()stdin()和stdout()函数可以更好地定制输入和输出,包括重定向到文件。输入重定向的方法有:sys.stdin.readlines(),sys.stdin.readline(),sys.stdin.read()。例如,在当前目录下新建文件the_zen_ofpython.txt,文件内容为《Python之禅》,将其作为输入数据读入程序,然后输出到屏幕。【例1-7】

重定向输入【例1-8】重定向输出03变量的声明和使用变量的声明和使用03变量的的命名Python变量命名遵循标识符的命名规则,即以字母开头,后跟字母、数字和下画线。字母区分大小写,不能使用保留字作为变量名。例如,$abc、1_Num、class等是不合法的变量名,a、_name、myAge、my_Name、num1、num_等是合法的变量名。但是合法并不意味着好,好的变量命名首先要规范和严谨,其次要遵循见名知意的原则。变量命名通常用小写字母,单词之间用“_”连接,即蛇形命名法,如变量员工的姓名可以命名为employee_firstname。变量命名后,就可以在程序中声明这个变量并且使用。变量的声明和使用03变量的赋值在使用变量之前需要给变量传入数据,这就是变量赋值。变量赋值的格式如下:变量=表达式“=”是赋值运算符,用来将右边表达式的值赋给左边的变量。例如;a=1my_name="小明"变量的声明和使用03变量的赋值【例1-10】变量赋值>>>a='ABC'>>>b=a>>>a='XYZ'>>>print(b)最后一行打印出变量b的内容到底是'ABC'还是'XYZ'呢?如果从数学意义上理解,就会错误地得出b与a的内容相同,都是'XYZ,但实际上b的内容是'ABC',一行一行地执行代码,就可以清楚知道发生了什么。变量的声明和使用03变量的赋值执行“a='ABC”",解释器创建了字符串'ABC'和变量a,并把a指向'ABC',如图1-3所示。执行“b=a”后,解释器创建了变量b,并把b指向a指向的字符串'ABC',如图1-4所示。继续执行“a='XYZ'",解释器创建了字符串'XYZ',并把a的指向改为XYZ,但b并没有更改(如图1-5所示),所以最后打印变量b的结果自然是'ABC'。变量的声明和使用03变量的赋值Python语言不需要声明变量的类型,但变量使用之前必须先赋值。理解了赋值在计算机内存中的实现,也就不难理解为什么Python语言中的数据类型是动态数据类型,变量的类型在程序运行中可以发生变化。【例1-11】动态数据类型。>>>age=18>>>age='男'>>>age'男'变量age的数据类型随着所赋值对象类型的变化而变化。另外,Python语言中表达式的值可以存放在临时空间中,通过临时变量名“_”访问。04数值类型数值类型04数值型数据类型1.整型整型,就是整数,可以是正数、零、负数,如1000、9527、-768、0。Python语言中,整数无表达范围限制,只要内存够用,无论多大的数都能精确表达。2.布尔类型布尔类型即逻辑型,表示真和假两种对立的状态。True表示真(条件满足或成立),False表示假(条件不满足或不成立)。在Python语言中,布尔类型是整型的子类,True就是1,False就是0。布尔类型还支持加减运算,1.5节将详细介绍。数值类型04数值型数据类型3.浮点型浮点型数与数学中的实数概念一致,表示带有小数的数值,如3.14、-3.14e3、314.0。其中,-3.14e3是一种科学计数法,表示-3.14×103。4.复数类型复数类型与数学中的复数概念一致,表示为“real+imagJ”,real是实数部分,imag是虚数部分,而且实部和虚部都是浮点数。虚部必须有后缀J或j。复数类型提供了一些常用属性和方法,如用.real和.imag属性可以获取实部和虚部,函数conjugate()用于求共辄复数。数值类型04数值型数据类型5.类型转换不同的数据类型可以相互转换。常用的类型转换函数有:int(),转换为整型;float(),转换为浮点型;complex(),转换为复数型。类型转换函数的使用(编码转字符函数chr()和字符转编码函数ord()在1.8节中介绍)如下。(1)int()函数作用:将一个字符串或者数字转换为整型。语法格式如下:int(obj,base=10)返回值:整型。参数说明:obj为数字或者字符串,base为进制,有效的进制基数是0~36。数值类型04数值型数据类型5.类型转换(2)float()函数作用:将一个字符串或者数字转换为浮点型。语法格式如下:float(obj)返回值:浮点型。参数说明:obj为数字或者字符串。数值类型04数值型数据类型5.类型转换(3)complex()函数作用:创建一个值为real+imagJ的复数或者把一个字符串或数字转化为复数。如果第一个参数为字符串,则不需要指定第二个参数。语法格式如下:complex(real[,imag])返回值:复数。参数说明:real为实部,imag为可选虚部,默认为0。数值类型04内置数值型函数1.进制转换函数在Python语言中,用字符串的形式表达不同进制数,规定二进制用0b引导,八进制用0o引导,十六进制用0x引导,大小写字母均可使用。如“0o711”表达八进制数711。表1-2列出了十进制数转换为其他进制数的函数。数值类型04内置数值型函数1.进制转换函数int(s,base=n)函数将其他进制数转换成十进制数。参数s是需要转换的其他进制的数字字符串,参数base为进制说明,如表1-3所示。数值类型04内置数值型函数2.常见内置函数Python解释器提供了一些内置函数,有6个函数与数值运算相关,如表1-4所示。数值类型04算术运算符Python提供了9个基本算术运算符,由Python解释器直接提供,故也称为内置算术运算符,如表1-5所示。05布尔类型布尔类型05布尔类型与整型布尔类型是整型的子类型,True用1表示,False用0表示。因此,布尔类型可以参与算术运算。【例1-21】布尔类型参与算术运算。>>>True==1True>>>False==0True>>True+12>>>False+11

#不建议使用布尔类型进行数值运算,会引起代码混乱>>>True+False1>>>isinstance(True,int)True

#判断True是香为int类型布尔类型05bool()函数布尔类型函数bool(obj)用来判断obj为真还是为假,返回True或False。以下4种情况,函数返回值为假,即0:①obj为None、False;②obj是任何数值类型的0,如0、0.0、0j;③obj为任何空的序列,如"、()、[]、;④为类定义_nonzero_或__len_方法且在返回整数零或布尔值False时。除此之外,bool(obi)都返回真。【例1-22】bool函数。>>>bool(1)

#运行结果:True>>>bool(False)

#运行结果:False>>>bool(-1)

#运行结果:True>>>bool('')

#运行结果:False>>>bool('

')

#运行结果:True,空格是字符>>>bool(None)

#运行结果:False>>>bool('False')

#运行结果:True,'False'是字符串布尔类型05基本布尔运算基本布尔运算有3种:and、or、not,优先级由高到低分别为not、and、or。(1)与、或、非运算(如表1-7所示)与运算:只有两个布尔值都为True时,计算结果才为True。或运算:只要有一个布尔值为True,计算结果就是True。非运算:把True变为False,或者把False变为True。布尔类型05布尔混合运算布尔类型还可以与其他数据类型做and、or、not运算。【例1-23】布尔混合运算。>>>a=True>>>(aand'a=T'

or'a=F')'a=T''a=T和'a=F'是字符串,字符串只要非空,都代表True。所以,表达式相当于:TrueandTrueorTrue结果肯定是True。布尔类型05布尔短路运算(1)and短路设表达式aandb,有如下短路法则:①若a是False,则根据与运算法则,整个结果必定为False,此时短路发生,提前返回表达式a的值,表达式b不再执行。②若a是True,则整个计算结果必定取决于b,因此返回表达式b的值。(2)or短路设表达式aorb,有如下短路法则:①若a是True,则根据或运算法则,整个结果必定为True,此时短路发生,提前返回表达式a的值,表达式b不再执行。②若a是False,则整个计算结果必定取决于b,因此返回表达式b的值。(3)混合运算短路Python程序在进行布尔运算时,只要能提前确定计算结果,就不会往后继续运算,直接返回结果。06比较运算符比较运算符06比较运算符Python语言提供了6个比较运算符:>、>=、<、<=、==、!=。作用:比较两个对象之间的关系,返回值为布尔类型。注意:“=”与“==”不一样,“=”用来赋值,“一”用来比较两个对象是否相等。【例1-25】比较运算。比较运算符06关系运算、逻辑运算的综合运用【例1-26】关系运算、逻辑运算的综合运用。07字符串类型字符串类型07字符串的表示和访问1.字符串的表示方法字符串可以用单引号""、双引号""、三个单引号’’’‘’’或三个双引号"""

"""括起来。作为字符串标识的引号必须是英文字符,而且要成对出现。双引号内可以包含单引号,单引号内也可以包含双引号,三引号内可以包含单引号和双引号,所包含的引号都作为普通字符使用。三引号常用于模块、类或函数的文档描述或注释。字符串类型07字符串的表示和访问2.字符串的访问字符串内的字符用索引来访问(如图1-6所示),索引常称为下标。字符串的下标可以从0开始顺序递增表示,也可以从-1开始逆序递减表示。第一个字符的索引是0,最后一个字符的索引是-1。访问字符时下标不能越界,如针对图1-6,访问a[5]、a[-6]会触发越界错误。字符串类型07字符串的表示和访问3.字符串的切片切片是访问字符串中的一部分,返回结果还是字符串。语法格式;str[起始索引:结束索引:步长]注意,切片含起始位置,但不含结束位置,这是一个“左闭右开”的区间。【例1-28】字符串的访问。字符串类型07字符串的运算和内置函数1.字符串加法运算“+”用于拼接字符串,“+=”用于将原字符串与右侧字符串拼接生成新的字符串。【例1-29】字符串加法运算。注意,迪过“+=”赋值后,字符串存放在新开辟的内存空间。用id()函数可以清楚地看到对象存放地址的更改。字符串类型07字符串的运算和内置函数2.字符串乘法运算字符串的“*”运算与数学中的乘法不同,是生成重复的字符串。同理,“*=”就是生成重复后的新字符串并与原变量绑定。【例1-30】字符串乘法运算。字符串类型07字符串的运算和内置函数3.简单字符串函数len():求字符串长度,即字符串中有多少个字符。max():求字符串中编码值最大的字符。min():求字符串中编码值最小的字符。del():删除字符串。字符串类型07字符串的运算和内置函数4.字符串成员运算in:判断字符串是否包含其中。notin:判断字符串是否不包含其中。成员运算返回逻辑值True或False。5.字符串的比较=、>、=、<、<=、!=这6个比较运算符同样适用于字符串,只是比较的是字符的编码,英文字符的编码是ASCII值。字符串类型07字符串的运算和内置函数6.转义字符转义字符即转换字符的含义,在字母前加V'来表示那些不能显示的ASCII字符。如'n',把Ⅳ'和'n'合在一起,代表一个字符,换行符。常见的转义字符如表1-8所示。字符串类型07字符串常用方法1.字符串常用方法字符串常用方法如表1-9所示。字符串类型07字符串常用方法2.字符串常用格式化方法字符串常用格式化方法如表1-10所示。字符串类型07字符串常用方法3.字符串常用统计查找方法字符串常用统计查找方法如表1-11所示。字符串类型07字符串常用方法4.字符串常用替换方法字符串常用替换方法如表1-12所示。字符串类型07格式化字符串1.%格式【例1-44】格式化字符串。name,age=‘小明',18print('我叫%s,今年%s岁。'%(name,age))运行结果:我叫小明,今年18岁。%s就是占位符,真实值“小明”和“18”会填充到占位符的地方,很像考试时的填空题,需把答案一一填入到指定位置。只是,当真实值不止一个时,使用“()”括起来。字符串类型07格式化字符串2.format()函数格式化format()函数格式化字符串的方法更方便,推荐使用。其语法格式如下:{[[fill]align][sign][#][0][width][,]I.precision][type]}.format()例如:name,age="小明',18print('我叫{},今年{}岁。'.format(name,age))运行结果:我叫小明,今年18岁。格式化参数:[[fill]align][sign][#][0][width][,][.precision][type]①fill参数,可选,空白处填充的字符(配合对齐及宽度一起使用才有效)。08身份和成员运算符身份和成员运算符08身份运算符isis的语法格式如下:aisb作用:判断两个变量引用的是否为同一个对象。返回值:布尔值,指向同一个对象时返回True,否则返回False。【例1-55】身份运算符is示例。age1=age2=18print(age1isage2)运行结果:True注意:“=”用于判断两个变量所指向的对象的数值是否相等,is用于判断两个变量所指向的是否为同一个对象。在计算机中,如果两个变量指向同一个对象,那么它们在计算机中的id地址是相同的。身份和成员运算符08身份运算符isnotisnot语法格式如下:aisnotb作用:判断两个变量所引用的是否为不同的对象。返回值:布尔类型,当变量a和b指向不同对象的时候,返回值为True,否则返回False。身份和成员运算符08id()函数在Python中,可以使用id(obj)函数获得对象obj在内存中的地址。【例1-56】id()函数示例。agel=-8age2=-8print('age1的id地址为:{'.format(id(age1)))print('age2的id地址为:{'.format(id(age2)))print('age1

温馨提示

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

评论

0/150

提交评论