资源简介 单元2 基本数据类型与运算符应用课程名称 Python程序设计任务驱动式教程 章名 基本数据类型与运算符应用教学内容 基本数据类型与运算符应用 课时 4项目性质 □演示性 □验证性 □设计性 √综合性授课班级 授课日期 授课地点教学目标 了解Python的编码规范、Python标识符的命名规则等知识 掌握Python 3的数据类型 掌握Python的算术运算符及其应用 掌握Python的赋值运算符与变量 掌握Python 3的日期时间函数教学内容 Python 3的数据类型 Python的算术运算符及其应用 Python的赋值运算符与变量 Python 3的日期时间函数教学重点 Python 3的数据类型、Python的算术运算符、Python的赋值运算符与变量教学难点 Python 3的数据类型、Python的算术运算符、Python的赋值运算符与变量教学准备 装有Python的计算机 教学课件PPT 教材:《Python程序设计任务驱动式教程(微课版)》作业设计12教学过程教学环节 教学内容与过程 (教学内容、教学方法、组织形式、教学手段)课前组织 做好上课前的各项准备工作(打开计算机、打开课件、打开软件、打开授课计划、教案等),吸引学生注意力。课程说明 【课前说明】 分别从编码规范、Python标识符的命名规则等知识点进行初步的了解。 【目的】 使学生从了解本节课的学习目标、学习重点、考评方式等方面明确课程学习的要求和目标。课程内容描述 2.1 Python 3的数据类型 2.1.1 Python 3基本数据类型 Python 3中有6个标准的数据类型:数值(number)、字符串(string)、列表(list)、元组(tuple)、集合(set)、字典(dictionary)。本单元主要讲解数值类型,其他5种数据类型将在单元4讲解。 Python 3的6个标准数据类型中,不可变数据类型有3个,包括数值、字符串、元组;可变数据类型有3个,包括列表、字典、集合。 (1)数值 Python 3中数值有4种类型:整数(int),如3;浮点数(float),如1.23、3E-2;复数(complex),如1 + 2j、1.1 + 2.2j;布尔值(bool),如True。 (2)字符串 Python中单引号和双引号的使用方法完全相同,使用三引号(“'''”或“"""”)可以指定一个多行字符串。Python没有单独的字符类型,一个字符就是长度为1的字符串。 以下都是正确的字符串表示方式。 word = '字符串' sentence = "这是一个句子。" paragraph = """这是一个段落, 可以由多行组成""" 反斜杠“\”可以用来转义字符,通过在字符串前加r或R可以让反斜杠不发生转义。例如,r"this is a line with \n",则\n会显示,并不是换行。Python允许处理Unicode字符串,在字符串前加u或U即可,例如,u"this is an unicode string"。 字符串可以根据输入的内容自动转换,例如"this " "is " "string"会被自动转换为this is string。字符串可以用运算符“+”连接在一起,用运算符“*”重复显示。 2.1.2 Python 3的数值类型 1.整数 整数可以是正整数、负整数和0,不带小数点。Python 3中整数是没有限制大小的。Python 3只有一种整数类型,并没有Python 2中的long类型。 整数可以使用十进制、十六进制、八进制和二进制来表示。 例如: >>>a,b,c=10,100,-786 #十进制 >>>a,b,c 运行结果如下。 (10, 100, -786) >>>number = 0xA0F #十六进制数以0x或0X开头,由0~9、A~F组成 >>>number 运行结果如下。 2575 >>>number=0o37 #八进制数以0o或0O开头,由0~7组成 >>> number 运行结果如下。 31 2.浮点数 浮点数由整数部分与小数部分组成,也可以使用科学记数法表示,例如:0.5、1.414、1.732、3.1415926、5e2。 3.复数 Python还支持复数,复数由实数部分和虚数部分构成,虚数部分使用j或J表示。复数可以用a + bj或者complex(a,b)表示,实部a和虚部b都是浮点数,例如2.31+6.98j。 4.布尔值 在Python 2中是没有布尔值的,它用数字0表示False,用1表示True。Python 3中,把True和False定义成了关键字,但它们的值还是1和0,可以和数字相加。 2.1.3 Python 3数据类型的判断 1.使用函数type()判断变量所指的对象类型 函数type()可以用来判断变量所指的对象类型,例如: >>>a, b, c, d = 20, 5.6, 4+3j, True >>>print(type(a), type(b), type(c), type(d)) 运行结果如下。 2.使用函数isinstance()判断变量所指的对象类型 函数isinstance()也可以用来判断变量所指的对象类型,例如: >>>x = 123 >>>isinstance(x, int) 运行结果如下。 True 2.1.4 Python数据类型的转换 编写Python程序时,我们需要对数据类型进行转换。对数据类型的转换,只需要将数据类型作为函数名即可。下表所示的内置函数可以进行数据类型之间的转换,这些函数会返回一个新的对象,表示转换的值。 Python常用数据类型转换函数 序号语法格式说明1int(x[,base])将x转换为一个整数2float(x)将x转换为一个浮点数3complex(real[,imag])创建一个复数4complex(x)将x转换为一个复数,实数部分为x,虚数部分为05complex(x,y)将x和y转换为一个复数,实数部分为x,虚数部分为y。x和y是数字表达式6str(x)将对象x转换为字符串7repr(x)将对象x转换为表达式字符串8eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象9tuple(s)将序列s转换为一个元组10list(s)将序列s转换为一个列表11set(s)转换为可变集合12dict(d)创建一个字典,d必须是一个(key,value)元组序列13frozenset(s)转换为不可变集合14chr(x)将一个整数转换为一个字符15ord(x)将一个字符转换为它对应的整数值16hex(x)将一个整数转换为一个十六进制字符串17oct(x)将一个整数转换为一个八进制字符串2.2 Python的算术运算符及其应用 运算符是一些特殊的符号,主要用于数学计算、比较运算和逻辑运算等。Python支持算术运算符、赋值运算符、比较(关系)运算符、逻辑运算符、位运算符、成员运算符、身份运算符。使用运算符将不同类型的数据按照一定的规则连接起来的算式,称为表达式。例如,使用算术运算符连接的算式称为算术表达式,使用比较(关系)运算符连接的算式称为比较(关系)表达式,使用逻辑运算符连接的算式称为逻辑表达式。 比较(关系)表达式和逻辑表达式通常作为选择结构和循环结构的条件表达式,位运算符将在第2单元学习、比较(关系)运算符、逻辑运算符以及对应的表达式将在单元3讲解,本节重点讲解算术运算符和算术表达式。 2.2.1 Python算术运算符和运算优先级 1.Python的算术运算符 Python的算术运算符及其实例如表所示。 Python的算术运算符及其实例 运算符名称说明实例输出结果+加两个数相加21+1031-减得到负数或是一个数减去另一个数21-1011*乘两个数相乘或是返回一个被重复若干次的字符串21*10210/除x除以y21/102.1%取余返回除法的余数,如果除数(第2个操作数)是负数,那么结果也是一个负值21%10121%(-10)-9**幂返回x的y次幂21**2441//取整除返回商的整数部分21//21021.0//2.010.0-21//2-112.Python算术运算符的运算优先级 Python算术运算符的运算优先级按由高到低顺序排列如下。 第1级:**。 第2级:*、/、%、//。 第3级:+、-。 同级运算符从左至右计算,可以使用“()”调整运算的优先级,加“()”的部分优先运算。 2.2.2 Python算术表达式 Python的算术表达式由数值类型数据与算术运算符组成,括号可以用来进行运算分组。 1.包含单一算术运算符的算术表达式 包含单一算术运算符的算术表达式的实例如下。 >>>5 + 4 #加法 9 >>>4.3 – 2 #减法 2.3 >>>3 * 7 #乘法 21 >>>2 / 4 #除法,得到一个浮点数 0.5 >>>8 / 5 #总是返回一个浮点数 1.6 >>>17 % 3 #返回除法的余数 2 Python可以使用“**”运算符来进行幂运算,例如: >>>5 ** 2 #5的平方 25 >>>2 ** 5 #2的5次方 32 浮点数得到Python完全的支持,不同类型的数值混合运算时,Python会把整数转换为浮点数。 2.包含多种算术运算符的算术表达式 >>>5 * 3 + 2 17 >>>50 - 5*6 20 >>>(50 - 5*6) / 4 5.0 >>>3 * 3.75 / 1.5 7.5 3.数值的除法与取整除 数值的除法包含两个运算符。“/”返回一个浮点数。如果只想得到整数的结果,丢弃可能的分数部分,可以使用“//”取整除,返回一个整数。 除法与取整除的实例如下。 >>>7.0 / 2 3.5 >>>17 / 3 #整数除法返回浮点数 5.666666666666667 >>>17 // 3 #整数除法返回向下取整后的结果 5 >>>2 // 4 #得到一个整数 0 例如: >>>7//2 3 >>>7.0//2 3.0 >>>7//2.0 3.0 2.3 Python的赋值运算符与变量 2.3.1 Python的赋值运算符 Python的赋值运算符如表所示,表中变量x的初始值为0。 Python的赋值运算符 运算符描述实例等效形式变量x的值=简单赋值运算符x=21+10将21+10的运算结果赋值给x31+=加法赋值运算符x+=10x=x+1041-=减法赋值运算符x-=10x=x-1031*=乘法赋值运算符x*=10x=x*10310/=除法赋值运算符x/=10x=x/1031.0%=取余赋值运算符x%=10x=x%101.0**=幂赋值运算符x**=10x=x**101.0//=取整除赋值运算符x//=10x=x//100.02.3.2 变量定义和赋值 Python中的变量不需要声明变量名及其类型。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,变量本身没有类型的概念,我们所说的“类型”是变量所指的内存中对象的类型。 1.变量赋值的基本语法格式 简单赋值运算符用于给变量赋值,变量赋值的基本语法格式如下。 <变量名>=<变量值> 简单赋值运算符左边是一个变量名,右边是存储在变量中的值。变量命名应遵循Python一般标识符的命名规则,变量值可以是任意类型的数据。 变量赋值之后,Python解释器不会显示任何结果。例如: >>>width = 20 >>>height = 5*9 >>>width * height 900 2.定义变量 程序中当变量被指定一个值时,对应变量就会被创建。例如: >>>var1 = 6 >>>var2 = 10.5 >>>print("var1=",var1) >>>print("var2=",var2) 运行结果如下。 var1= 6 var2= 10.5 【实例2-1】演示定义变量与赋值 实例2-1的代码如下所示。 number = 100 # 整数变量 distance = 1000.0 # 浮点数变量 name = "LiMing" # 字符串变量 print (number) print (distance) print (name) 实例2-1运行结果如下。 100 1000.0 LiMing 变量在使用前必须先“定义”(赋予变量一个值),否则会出现错误。 >>> n #尝试访问一个未定义的变量 运行结果如下。 Traceback (most recent call last): File "", line 1, in NameError: name 'n' is not defined 3.变量指向不同类型的对象 Python是一种动态类型的语言,变量所指向对象的类型可以随时变化。一个变量可以通过赋值指向不同类型的对象。 【实例2-2】演示变量指向不同类型的对象 实例2-2的代码如下所示。 x="李明" print(type(x)) print(id(x)) x=21 print(type(x)) print(id(x)) 实例2-2的运行结果如下。 2448125806896 140722800285984 从以上代码示例可以看出,变量x名称为x,变量x首先赋值的数据类型为字符串,然后赋值的数据类型为整数,并不是变量x的数据类型改变了,而是先后指向不同的内存空间。这就意味着如果改变变量的值,将重新分配内存空间。 Python中,使用内置函数id()返回变量所指的内存空间的地址值。 在Python中,允许多个不同变量名的变量指向同一个内存空间,例如: >>>x=100 >>>y=100 >>>print("变量x指向的内存空间的地址为:",id(x)) >>> print("变量y指向的内存空间的地址为:",id(y)) 运行结果如下。 变量x指向的内存空间的地址为:140727202538240 变量y指向的内存空间的地址为:140727202538240 从以上的运行结果可以看出,两个变量x、y先后赋相同的整数值,指向内存空间的地址值相同。 4.为多个变量赋值 Python允许同时为多个变量赋值。 例如: >>>a = b = c = 1 以上语句,创建一个整数对象,值为1,从后向前赋值,3个变量被赋予相同的数值。 也可以为多个对象指定多个变量。 例如: >>>a, b, x = 1, 2, "LiMing" 以上语句,两个整数值1和2赋值给变量a和b,字符串"LiMing"赋值给变量x。 5.变量“_”的赋值 在IDLE交互模式中,一个下画线“_”表示解释器中最后一次显示的内容或最后一次语句正确执行的输出结果,这样在把Python程序作为一个桌面计算器使用时,使后续计算更方便,例如: >>>tax = 12.5 / 100 >>>price = 100.50 >>>price * tax 12.5625 >>>price + _ 113.0625 >>>round(_, 2) 113.06 这里的变量“_”可以视为只读变量,不要显式地给它赋值,这样将会创建一个具有相同名称的独立的本地变量,并且会屏蔽这个内置变量的功能。 Python还有常量的概念,所谓常量就是程序运行过程中值不会发生改变的量,例如数学运算中的圆周率。在Python中,没有提供定义常量的保留字。 2.3.3 使用del语句删除对象引用 del语句的语法如下。 del var1[,var2[,var3[...,varN]]] 可以通过使用del语句删除单个或多个对象。例如: >>>var=2 >>>del var >>>print("var=",var) 运行结果如下。 Traceback (most recent call last): File "", line 1, in NameError: name 'var' is not defined >>>var1=6 >>>print("var1=",var1) 运行结果如下。 var1= 6 【任务2-1】计算并输出购买商品的实付总额与平均价格等数据 【任务描述】 (1)在PyCharm集成开发环境中创建项目Unit02。 (2)在项目Unit02中创建Python程序文件2-1.py。 (3)在Python程序文件2-1.py中输入代码实现以下功能:计算购买商品的总数量、购买商品应支付的总金额、优惠金额、实际支付金额、商品平均购买价格。输出商品总额、商品优惠、实付总额和平均价格数据。 (4)在PyCharm集成开发环境中运行程序文件2-1.py,输出商品总额、商品优惠、实付总额、平均价格数据。 【任务实施】 1.创建PyCharm项目Unit02 成功启动PyCharm后,在其主窗口选择【File】菜单,在弹出的下拉菜单中选择【New Project】,打开【Create Project】对话框,在该对话框的“Location”文本框中输入“D:\PycharmProject\Unit02”,在【Create Project】对话框中单击【Create】按钮,完成PyCharm项目Unit02的创建。 2.创建Python程序文件2-1.py 在PyCharm主窗口右键单击已建好的PyCharm项目“Unit02”,在弹出的快捷菜单中选择【New】-【Python File】。在打开的【New Python file】对话框中输入文件名“2-1”,然后双击“Python file”选项,完成Python程序文件的新建任务。同时PyCharm主窗口显示程序文件2-1.py的代码编辑窗口,在该程序文件的代码编辑窗口自动添加了模板内容。 3.编写Python程序代码 在新建文件2-1.py的代码编辑窗口已有模板注释内容下面输入程序代码,程序文件2-1.py的代码如电子活页2-2所示。 单击工具栏中的【保存】按钮,保存程序文件2-1.py。 4.运行Python程序 在PyCharm主窗口选择【Run】菜单,在弹出的下拉菜单中选择【Run】。在弹出的【Run】对话框中选择“2-1”选项,程序文件2-1.py开始运行。 程序文件2-1.py的运行结果如下。 商品总额: 104.5 商品优惠:- 40.0 实付总额: 64.5 平均价格: 52.25 2.4 Python 3的日期时间函数 Python提供了time、datetime和calendar模块用于格式化日期和时间。Python程序能用很多方式处理日期和时间,转换日期格式是一种常见的功能。 2.4.1 时间元组 gmtime()、localtime()、strptime()都是以时间元组(struct_time)的形式返回,很多Python函数使用一个元组组合起来的9组数字处理时间,也就是struct_time元组,其9组数字的含义和取值如表所示。 struct_time元组的9组数字的含义和取值 序号含义取值14位数的年份0000~99992月1~123日1~31续表 序号含义取值4小时0~235分钟0~596秒0~617星期几0~6(0表示周一)8一年的第几日1~366(366表示闰年)9夏令时标识1(夏令时)、0(非夏令时)、-1(不确定)struct_time元组的结构属性如表所示。 struct_time元组的结构属性 序号属性名称属性取值1tm_year0000~99992tm_mon1~123tm_mday1~314tm_hour0~235tm_min0~596tm_sec0~617tm_wday0~6(0表示周一)8tm_yday1~366(366表示闰年)9tm_isdst1(夏令时)、0(非夏令时)、-1(不确定),默认为-12.4.2 time模块 time模块提供各种与日期时间相关的功能,用于获取和转换时间。与日期时间相关的模块有time、datetime、calendar。 Python的time模块下有很多函数可以转换常见日期格式,例如,函数time.time()用于获取当前时间戳,每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。时间戳是以秒为单位的浮点数。 例如: >>>import time #引入time模块 >>>ticks=time.time() >>>print("当前时间戳为:",ticks) 运行结果如下。 当前时间戳为:1585817589.8098445 时间戳适用于做日期运算,但是1970年1月1日之前的日期无法以此表示。 1.time模块包含的内置函数 time模块包含的内置函数如电子活页2-3所示,既有进行时间处理的函数,也有转换时间格式的函数。 2.获取当前时间 从返回浮点数的时间戳方式向时间元组转换,只要将浮点数传递给如localtime()之类的函数即可。 例如: >>>import time >>>localtime=time.localtime(time.time()) >>>print("本地时间为:",localtime) 运行结果如下。 本地时间为:time.struct_time(tm_year=2020, tm_mon=4, tm_mday=2, tm_hour=17, tm_min=5,tm_sec=38, tm_wday=3, tm_yday=93, tm_isdst=0) 3.获取格式化的时间 非常简单的获取可读的格式化时间的函数是asctime()。 例如: >>>import time >>>localtime=time.asctime(time.localtime(time.time())) >>print("本地时间为:",localtime) 运行结果如下。 本地时间为: Thu Apr 2 17:07:41 2020 4.格式化日期数据 可以使用time模块的strftime()函数来格式化日期数据,其基本格式如下。 time.strftime(fmt[,tupletimet]) 把一个代表时间的元组或者struct_time元组(例如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果tupletime未指定,将传入time.localtime(),如果元组中任意一个元素取值超出允许范围,将会抛出ValueError异常。 【实例2-3】演示格式化日期数据 实例2-3的代码如下所示。 import time #格式化成2020-04-0217:10:32形式 print(time.strftime("%Y-%m-%d%H:%M:%S",time.localtime())) #格式化成ThuApr0217:11:232020形式 print(time.strftime("%a%b%d%H:%M:%S%Y",time.localtime())) #将格式字符串转换为时间戳 t="SatMar2822:24:242016" print(time.mktime(time.strptime(t,"%a%b%d%H:%M:%S%Y"))) 实例2-3的运行结果如下。 2020-04-3009:24:26 ThuApr3009:24:262020 1459175064.0 Python的format日期时间格式符如电子活页2-4所示。 2.4.3 datetime模块 datetime模块提供了处理日期和时间的类,既有简单的方式,又有复杂的方式。它虽然支持日期和时间算法,但其实现的重点是为输出格式化和其他操作提供高效的属性提取功能。 1.datetime模块中定义的类 datetime模块中定义的类如表所示。 datetime模块中定义的类 序号类名称说明1datetime.date表示日期,常用的属性有year、month和day2datetime.time表示时间,常用的属性有hour、minute、second、microsecond3datetime.datetime表示日期时间4datetime.timedelta表示两个date、time、datetime实例之间的时间间隔,分辨率(最小单位)可达到微秒5datetime.tzinfo时区相关信息对象的抽象基类。它们由datetime和time类使用,以提供自定义时间的调整。6datetime.timezonePython 3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量这些类的对象都是不可变的。 2.datetime模块中定义的常量 datetime模块中定义的常量如表所示。 datetime模块中定义的常量 序号常量名称说明1datetime.MINYEARdatetime.date或datetime.datetime对象所允许的年份的最小值,值为12datetime.MAXYEARdatetime.date或datetime.datetime对象所允许的年份的最大值,值为9999【任务2-2】输出当前日期和时间 【任务描述】 (1)在项目Unit02中创建Python程序文件2-2.py。 (2)在Python程序文件2-2.py中输入代码实现以下功能:输出当前日期,获取当前时间的小时数、分钟数、秒数,输出当前时间。 (3)在PyCharm集成开发环境中运行程序文件2-2.py,输出当前日期、当前时间数据。 【任务实施】 1.创建Python程序文件2-2.py 在PyCharm主窗口右键单击已建好的PyCharm项目“Unit02”,在弹出的快捷菜单中选择【New】-【Python File】。在打开的【New Python file】对话框中输入文件名“2-2”,然后双击“Python file”选项,完成Python程序文件的新建任务。同时PyCharm主窗口显示程序文件2-2.py的代码编辑窗口,在该程序文件的代码编辑窗口自动添加了模板内容。 2.编写Python程序代码 在新建文件2-2.py的代码编辑窗口已有模板注释内容下面输入程序代码,程序文件2-2.py的代码如电子活页2-5所示。 3.运行Python程序 在PyCharm主窗口选择【Run】菜单,在弹出的下拉菜单中选择【Run】。在弹出的【Run】对话框中选择“2-2”选项,程序文件2-2.py开始运行。 程序文件2-2.py的运行结果如下。 当前日期: 2020年04月02日 当前时间: 17 时 23 分 1 秒 【任务2-3】计算与输出购买商品的实付总额等数据 【任务描述】 (1)在项目Unit02中创建Python程序文件2-3.py。 (2)在Python程序文件2-3.py中输入代码实现以下功能:计算并输出购买商品的总金额、运费、返现金额、折扣率、商品优惠金额、实付总额。 (3)在PyCharm集成开发环境中运行程序文件2-3.py,输出总商品金额、运费、返现、折扣率、商品优惠、实付总额数据。 【任务实施】 1.创建Python程序文件2-3.py 在PyCharm主窗口右键单击已建好的PyCharm项目“Unit02”,在弹出的快捷菜单中选择【New】-【Python File】。在打开的【New Python file】对话框中输入文件名“2-3”,然后双击“Python file”选项,完成Python程序文件的新建任务。同时PyCharm主窗口显示程序文件2-3.py的代码编辑窗口,在该程序文件的代码编辑窗口自动添加了模板内容。 2.编写Python程序代码 在新建文件2-3.py的代码编辑窗口已有模板注释内容下面输入程序代码,程序文件2-3.py的代码如电子活页2-6所示。 3.运行Python程序 在PyCharm主窗口选择【Run】菜单,在弹出的下拉菜单中选择【Run】。在弹出的【Run】对话框中选择“2-3”选项,程序文件2-3.py开始运行。 程序文件2-3.py的运行结果如下。 请输入购买数量:3 3件商品,总商品金额: 275.40 运费: 15.00 返现:- 150.00 折扣率:- 91.98% 商品优惠:- 15.00 实付总额: 125.40总结评价 本单元主要学习Python 3的数据类型、Python的算术运算符及其应用、Python的赋值运算符与变量、Python 3的日期时间函数。 展开更多...... 收起↑ 资源预览