中国人民大学《python程序设计》课件-第2章-Python语法基础_第1页
中国人民大学《python程序设计》课件-第2章-Python语法基础_第2页
中国人民大学《python程序设计》课件-第2章-Python语法基础_第3页
中国人民大学《python程序设计》课件-第2章-Python语法基础_第4页
中国人民大学《python程序设计》课件-第2章-Python语法基础_第5页
已阅读5页,还剩72页未读, 继续免费阅读

下载本文档

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

文档简介

第2章Python语法基础·变量和变量类型·

标识符和关键字·简单数值类型·运算符了解了解掌握掌握

学习目标了解Python中的关键字12掌握Python的变量和变量类型掌握Python中的标识符,可以识别合法的标识符34了解Python不同运算符的使用01基本语法02变量和数据类型03标识符和关键字目录页04简单数值类型05运算符06位运算07运算符优先级08输入与输出过渡页01基本语法02变量和数据类型03标识符和关键字04简单数值类型05运算符06位运算07运算符优先级01基本语法08输入与输出注释Python中的单行注释以#开头!

#第一个注释print(“Hello,Python!”)

#第二个注释注释多行注释可以使用三引号作为开头和结束符号

"""print(value,...,sep='',end='\n',file=sys.stdout,flush=False)

"""行与缩进python最具特色的就是使用缩进来表示代码块ifTrue: print("True")else: print("False”) print("False”)ifTrue: print("True")else: print("False")

print(”hello”)语句换行Python通常是一行写完一条语句,但如果语句很长,我们需要换行,这时可以使用圆括号来实现。

string=(“Python是一种面向对象、解释型计算机程序设计语言,”

“由GuidovanRossum于1989年底发明。”

“第一个公开发行版发行于1991年,”

“源代码同样遵循GPL(GNUGeneralPublicLicense)协议。”)语句换行需要注意的是,在[],{},或()中的语句,不需要使用圆括号进行换行。total=['item_one','item_two','item_three','item_four','item_five']过渡页01基本语法02变量和数据类型03标识符和关键字04简单数值类型05运算符06位运算07运算符优先级02变量和数据类型2.1数据类型第二章数据类型、运算符及表达式在程序执行过程中,其值不发生改变的量称为常量。常量分为直接常量和符号常量。直接常量(字面常量)包括以下几种:(1)整型常量:12、0、-3;(2)实型常量:4.6、-1.23;(3)字符常量:‘a’、‘b’。符号常量是指用标识符代表一个常量。需要注意的是,Python没有真正意义上的符号常量。但是有时候会需要用到符号常量。一般是在import语句下面用大写字母作为常量名,如:NUMBER=100。但这并不意味着这个值不可以被改变。2.2变量和常量2.1数据类型第二章数据类型、运算符及表达式习惯上符号常量的标识符用大写字母,变量标识符用小写字母,以示区别。使用符号常量的好处是能做到“一改全改”。即如果该常量被使用了很多次也只需在最开始的地方改变其初值即可。值可以改变的量称为变量。一个变量应该有一个名字,在内存中占据一定的存储单元。在Python中,对一个变量赋值之前并不需要对其定义或声明,它会在第一次赋值时自动生成。在使用一个变量之前需要先对其进行赋值。变量命名规则如下:(1)变量名必须以字母或下划线开头,后面可以跟任意数量的字母、下划线和数字。变量名中只能有字母、下划线和数字;(2)区分大小写,如Python和python是不同的;(3)变量名不能使用保留字。2.2变量和常量变量和赋值超市购物现实生活中,大家去超市买东西的时候,往往都需要一个菜篮子,用来进行存储物品,等到所有的物品都购买完成后,在收银台进行结账即可。

Python中的变量用来存储数据,变量可以理解为去超市购物的菜篮子,其类型和值在赋值的那一刻被初始化。

变量和赋值num1=100num2=87result=num1+num2num1和num2变量就好比一个小菜篮子,它们分别存储的数据是100和87。result变量存储的数据是num1和num2这两个“菜篮子”中的数据累计之和。变量数值2.1数据类型第二章数据类型、运算符及表达式of3115下面的例子是将“helloworld”这个字符串赋给了变量a,然后再将a打印出来。>>>a='helloworld'>>>print(a)helloworld >>>当一个变量不再使用的时候,可以使用del命令将其删除。删除之后要想使用该变量名需要重新赋值,如下:>>>a='abc'>>>print(a)abc>>>dela2.2变量和常量2.1数据类型第二章数据类型、运算符及表达式变量只是对象的引用值。在Python中对象有类型但变量没有类型,也就是说,不需要为一个变量声明类型而可以直接赋值创建各种类型的对象变量,也可以将不同的对象赋给同一个变量。>>>a='thisisastring'>>>print(a)thisisastring>>>a=123456>>>print(a)123456>>>a=['a','b','c','d']>>>print(a)['a','b','c','d']>>>2.2变量和常量变量的类型数字类型布尔类型字符串类型列表类型元组类型字典类型整型浮点型复数布尔类型数据类型

变量的类型表2.1Python内置对象对象类型示例简要说明数字1,1.2,1.1e4数字的长度无限制字符串“abc”,’a’,’123’一般使用单引号和双引号作为界定符,三引号一般做多行注释使用列表[1,2,3],[‘1’,’2’,’3’]元素存放在一组方括号中,用逗号隔开字典{name:Jack,age:20}元素存放在一组大括号中,元素为“键:值”形式元组(2,1,3)元素放在小括号中,且元组中的元素值不可更改文件f=open(‘file_name.txt’,’r’)open是Python内置函数,用来以指定模式打开文件集合{1,2,3}元素放在大括号中,且元素不可重复布尔型True,False

空类型None

编程单元函数和类在Python中,函数和类都属于可调用对象过渡页01基本语法02变量和数据类型03标识符和关键字04简单数值类型05运算符06位运算07运算符优先级03标识符和关键字标识符现实生活中,人们常用一些名称来标记事物,例如,现实生活中每种水果都有一个名称来标识。水果名称标识符若希望在程序中表示一些事物,需要开发人员自定义一些符号和名称,这些符号和名称叫做标识符。

标示符由字母、下划线和数字组成,且数字不能开头。Python中的标识符是区分大小写的。python中(用户)的标示符不能使用关键字

命名规则标识符为了规范命名标识符,关于标识符的命名提以下建议:见名知意不建议使用驼峰式标识符关于Python标识符有如下几点说明:(1)以下划线开头的标识符是有特殊意义的。(2)以单下划线开头的标识符(_xxx)代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“fromxxximport*”而导入。(3)以双下划线开头的标识符(__xxx)代表类的私有成员。(4)以双下划线开头和结尾的标识符(__xxx__)代表Python里特殊方法专用的标识,如__init__()代表类的构造函数。(5)在对变量进行命名时应尽量避免使用上述样式。关键字除此之外,还有一些字符串是Python规定的具有特殊意义的,称为保留字或关键字,用户定义的标识符不能与之相同。关键字指的是系统保留的、具有特殊功能的标识符。

>>>help()

#进入帮助系统help>keywords#查看所有的关键字列表help>return

#查看return这个关键字的说明help>quit

#退出帮助系统关键字常见的保留字如下所示:False class finallyisreturnNonecontinuelambdaTrue def fromnonlocalwhileanddelglobalnot with…aselifif oryieldtryassertElseimportpassbreak exceptinraisefor下面是一部分保留字的含义。if:条件判断语句。for:用于遍历迭代器每个元素。try:与except,finally配合使用处理在程序运行中出现的异常情况。关键字需要注意的是,保留字并不是一成不变的,随着Python版本的变迁,有些字符串会加入到保留字中。除了关键字外,还有转义字符串,转义字符串就是在一些字符或字符串前加“\”,用来表示一些无法显示的字符,比如换行符。表2.2是一些转义字符串。表2.2常用的转义字符及其含义关键字表2.2常用的转义字符及其含义过渡页01基本语法02变量和数据类型03标识符和关键字04简单数值类型05运算符06位运算07运算符优先级04简单数值类型整型整型就是整常数。在Python3.X版本中,一般整数和长整数类型已经合二为一了。所以,现在Python里的整型精度是无限的,如下:>>>2**1001267650600228229401496703205376>>>Python不仅支持十进制整型,也支持十六进制、八进制以及二进制的整型。十六进制的数以0x或者0X开头,后面跟一个16进制的数,由0~9以及a~f组成。分别代表0~15。其中,a~f不区分大小写。八进制的数以0o或者0O(数字0加字母o或O)开头,后面跟一个八进制的数,由0~7组成。二进制的数以0b或者0B开头,后面跟一个二进制的数,由0、1组成。整型Python的整型可以表示的范围是有限的,它和系统的最大整型一致,例如,32位机器上的整型是32位,可以表示的数的范围是-231~231-1。64位机上的整型是64位的,可以表示的数的范围是-263~263-1。2.1数据类型第二章数据类型、运算符及表达式31Python提供了内置函数hex(a)、oct(a)、bin(a),可以将一个十进制数a分别转换成十六进制、八进制及二进制的字符串,如下:>>>a=100>>>hex(a)'0x64'>>>oct(a)'0o144'>>>bin(a)'0b1100100'>>>2.4.1整型2.1数据类型第二章数据类型、运算符及表达式此外int(string,b)函数可以将一个字符串按照给定的进制转换成数字,如下:>>>string='100'>>>print(int(string,2))4>>>print(int(string,8))64>>>print(int(string,10))100>>>print(int(string,16))256>>>2.4.1整型浮点型浮点数即带有小数部分的数字。在Python里,浮点数分为两类,一种是普通的由数字和小数点组成的,如1.0、2.3等。还有这是由科学计数法表示的浮点数。由数字,小数点以及科学计数标志e或E组成,如:2.1e10这表示2.1ⅹ1010。需要注意的是,虽然2.1e10的结果是一个整数,但2.1e10属于浮点数,2e10也同样属于浮点数,如下:>>>type(2e5)<class'float'>>>>注:type函数可以显示当前对象的数据类型。浮点型Python的浮点型遵循的是IEEE754双精度标准,每个浮点数占8个字节,能表示的数的范围是-1.8308~1.8308

浮点型有一种特殊的浮点数是小数对象,与普通浮点数相比,小数对象有固定的位数和小数点,也就是说,小数是有固定精度的浮点数。小数对象与其他数据类型不同,小数对象需要导入一个decimal模块后调用函数才能创建。#创建小数对象>>>fromdecimalimportDecimal>>>a=Decimal('0.1')>>>print(a)0.1>>>type(a)<class'decimal.Decimal'>需要注意的是,小数对象只能与小数对象和整数进行运算,如果和普通浮点数进行运算的话会出现语法报错。浮点型例子:>>>fromdecimalimportDecimal>>>a=Decimal('0.10')>>>b=Decimal('0.20')>>>print(a/b)0.5>>>c=0.2>>>print(a/c)Traceback(mostrecentcalllast):File"<pyshell#154>",line1,in<module>print(a/c)TypeError:unsupportedoperandtype(s)for/:'decimal.Decimal'and'float'浮点型还可以通过这个模块来设置全局精度,如下:>>>fromdecimalimportDecimal>>>fromdecimalimportgetcontext>>>getcontext().prec=4#设置精度>>>print(1/3)0.3333333333333333>>>a=Decimal('0.1')>>>b=Decimal('0.3')>>>print(a/b)0.3333>>>但该方法只对小数对象有用,而且如果小数部分的精度不够,也不会补0。浮点型下面的例子只是设置精度:>>>fromdecimalimportDecimal>>>fromdecimalimportgetcontext>>>getcontext().prec=4#设置全局精度>>>a=decimal.Decimal('0.1')>>>b=decimal.Decimal('0.3')>>>print(a/b)0.3333>>>withdecimal.localcontext()aslocal:#设置局部精度

local.prec=1 print(a/b)0.3关于with…as…语句,后面会做介绍。浮点型由于用来存储数值的空间有限,浮点数缺乏精确性。例如,以下语句的计算结果应该得到0,但结果却不是0。虽然很接近0,但没有足够的位数去实现这样的精度。>>>print(0.1+0.1+0.1+0.1-0.3-0.1)2.7755575615628914e-17>>>不过使用小数对象就可以改正了。用户可以通过decimal模块中的Decimal构造函数创建一个小数对象,传人的字符串就是小数。当不同精度的小数对象在表达式中混用时,Python会自动升级成位数最多的小数。浮点型如果想将一个浮点数按照四舍五入的方法保留位数的话,还可以使用round()函数。round()函数很简单,就是对浮点数进行近似取值,保留一定位数的小数。>>>a=0.334>>>b=0.335>>>print(round(a,2))0.33>>>print(round(b,2))0.34但因为在机器中浮点数不一定能精确表达,所以round函数可能会出错,如下:>>>print(round(2.675,2))2.67>>>浮点型可以看到,结果应该为2.68但实际是2.67,这并不是一个bug。在机器中浮点数不一定能精确表达,因为换算成一串1和0后可能是无限位的,机器已经做出了截断处理。那么在机器中保存的2.675这个数字就比实际数字要小那么一点点。这一点点就导致了它离2.67要更近一点点,所以保留两位小数时就近似到了2.67。所以,如果对精确度要求很高的话,应该尽量避开使用round()函数,而使用decimal模块。2.1数据类型第二章数据类型、运算符及表达式Python3.0引入了分数这一数据类型。和小数对象相同,要创建分数对象,需要引入一个模块Fraction,如下所示:>>>fromfractionsimportFraction>>>x=Fraction(1,3)>>>y=Fraction(1,2)>>>print(x)1/3>>>print(y)1/2>>>type(x)<class'fractions.Fraction'>>>>分数2.1数据类型第二章数据类型、运算符及表达式可以传入两个参数即分子和分母来创建分数,也可以使用下面的方法:>>>fromfractionsimportFraction>>>print(Fraction(0.5))1/2>>>可以通过from_float函数和float函数实现分数和浮点数的转换。>>>fromfractionsimportFraction>>>a=2.5>>>b=Fraction.from_float(2.5)>>>print(b)5/2>>>print(float(b))2.5分数2.1数据类型第二章数据类型、运算符及表达式此外,Fraction对象有两个属性numerator和denominator,分别代表了分子和分母,如下:>>>fromfractionsimportFraction>>>a=Fraction(5/10)>>>print(a)1/2>>>print(a.numerator)1>>>print(a.denominator)2>>>分数2.1数据类型第二章数据类型、运算符及表达式除了上面这些以外,fraction模块提供了一个gcd函数,可以迅速找到两个数的最大公约数。>>>fromfractionsimportgcd>>>print(gcd(256,16))16>>>分数第二章数据类型、运算符及表达式在Python里,有一种特殊的数据类型叫布尔型(bool),该类型只有两种取值:True和False,分别代表真和假。实际上,可以把True和False看成是Python内置的变量名,值分别为1和0。因为实际上True的值就是1,而False则为0,如图所示。在有了bool数据类型之后,可以用True或False更清楚、准确地设置标志位,例如flag=False,使标志位的含义更加清晰;也可以用于条件语句,如无限循环语句whileTrue:。布尔类型布尔类型布尔型其实是整型的子类型。布尔型数据只有两个取值:True和False,分别对应整型的1和0。布尔类型NoneFalse(布尔型)0(整型0)0L(长整型0)0.0(浮点型0)0.0+0.0j(复数0)“”(空字符串)[](空列表)()(空元组){}(空字典)以下对象的布尔值都是False:第二章数据类型、运算符及表达式Python除了与大多数程序设计语言一样,把整数0当成False,整数1代表True,也把任意的非空数据结构看作True,把任意的空数据结构看作False。也就是说Python的每个对象都有一个属性代表该对象是True还是False。每个对象不是True就是False。数字非0即为True,其他对象非空即为True,如下:>>>bool(0)False>>>bool(10)True>>>list_a=[]>>>print(bool(list_a))False布尔类型2.1数据类型第二章数据类型、运算符及表达式>>>str1=''>>>print(bool(str1))False>>>str1='123'>>>print(bool(str1))True>>>print(bool(None))False>>>这也表示了每个对象都可以作为循环结构或选择结构的条件表达式,如if1:或while0:是合法的,这一部分会在后面谈到。布尔类型Python里还有一个特殊的对象,即空值,该对象只有一个值用None表示,None并不等于0或其他一些空的数据类型。而是一个特殊的值。代表什么也没有。另外None的布尔值为False。布尔类型复数类型复数类型,用于表示数学中的复数,例如,5+3j。(1)复数由实数部分和虚数部分构成,表示为:real+imagj或real+imagJ(2)复数的实数real和虚数imag都是浮点型两大特点数字类型转换函数说明int(x[,base])

将x转换为一个整数float(x)

将x转换到一个浮点数complex(real[,imag])

创建一个复数过渡页01基本语法02变量和数据类型03标识符和关键字04简单数值类型05运算符06位运算07运算符优先级05运算符运算符Python运算符包括赋值运算符、算术运算符、关系运算符、逻辑运算符、位运算符、成员运算符和身份运算符等,分别简要介绍如下:(1)算术运算符:用于各类数值运算。包括加(+)、减(-)、乘(*)、除(/)、求余(或称模运算,%)、幂运算(**)和整除运算(//)。(2)关系运算符:用于比较运算。包括大于(>)、小于(<)、等于(==)、大于等于(>=)、小于等于(<=)和不等于(!=)。(3)逻辑运算符:用于逻辑运算。包括逻辑与(and)、逻辑或(or)、逻辑非(not)。(4)位操作运算符:参与运算的量,按二进制位进行运算。包括按位与(&)、按位或(|)、按位非(~)、按位异或(^)、左移(<<)、右移(>>)

运算符(5)赋值运算符:用于赋值运算,分为简单赋值(=)、复合算术赋值(+=,-=,*=,/=,%=,**=,//=)。(6)身份运算符:包括is和isnot。(7)成员运算符:包括in和notin。表达式就是数据通过运算符以一定规则连接起来的式子。下面会分别介绍各种类型的运算符及使用方法。

算术运算符运算符相关说明+加:两个对象相加-减:得到负数或一个数减去另一个数*乘:两个数相乘或是返回一个被重复若干次的字符串/除:x除以y%取余:返回除法的余数**幂:返回x的y次幂

//取整除:返回商的整数部分赋值运算符赋值运算符只有一个,即=,它的作用是把等号右边的值赋给左边。

例如,x=1为多个变量赋同一个值:x=y=z=1将多个值赋值给多个变量

a,b=1,2

两种不同的温度体系:摄氏度:以1标准大气压下水的结冰点为0度,沸点为100度,将温度进行等分刻画华氏度:以1标准大气压下水的结冰点为32度,沸点为212度,将温度进行等分刻画使用IPO编程方法实现需求:写一个程序,输入华氏温度,自动转换成摄氏温度输入:华氏温度值(纯数字,由键盘输入)处理:根据输入值将其转换成摄氏温度输出:输出带单位的摄氏温度值实例温度转换实例使用IPO编程方法实现代码文件名称注释函数定义数据结构—变量内置输入函数算法内置输出函数>>>a=1>>>b=2>>>print(a+b)3>>>print(a*b)2>>>string='hello'>>>string1='world'>>>print(string+string1)helloworld>>>print(string*3)hellohellohello>>>可以看出,当执行运算的对象数据类型不同时,运算符的作用也不尽相同。算术运算符和算术表达式复合赋值运算符运算符相关说明实例+=加法赋值运算符c+=a等效于c=c+a

-=减法赋值运算符

c-=a等效于c=c-a

*=乘法赋值运算符

c*=a等效于c=c*a

/=除法赋值运算符

c/=a等效于c=c/a

%=取模赋值运算符

c%=a等效于c=c%a

**=幂赋值运算符

c**=a等效于c=c**a

//=取整除赋值运算符

c//=a等效于c=c//a

比较运算符运算符相关说明==检查两个操作数的值是否相当!=检查两个操作数的值是否相等>检查左操作数的值是否大于右操作数的值<

温馨提示

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

评论

0/150

提交评论