版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Tableau数据可视化实践Tableau公司成立于2003年,是由斯坦福大学的三位校友ChristianChabot(首席执行官)、ChrisStole(开发总监)以及PatHanrahan(首席科学家)在远离硅谷的西雅图注册成立的。Tableau可视化工具是一系列软件的总称,包括TableauDesktop、TableauPrep、TableauOnline、TableauServer、TableauPublic、TableauMobile、TableauReader等子产品。截至2023年3月,最新版本是TableauDesktop2022.4,本书是基于该版本而进行的介绍。TableauDesktop2022.4的主要新功能如下:(1)借助TableauPrep中的多行计算,您可以在准备数据的同时执行表计算。(2)“线型”提供新的样式功能,让作者能够选择任何趋势线以将其表示为实线、虚线或点线。(3)借助TableauCloud中提供的针对个人访问令牌(PAT)的额外控制功能,满足贵组织的安全要求“开始”页面TableauDesktop的开始页面主要由“连接”和“打开”2个区域组成,可以从中连接数据、访问最近使用的工作簿等。“数据源”页面在建立与数据的初始连接后,Tableau将引导我们进入“数据源”页面,也可以通过在工作簿任意位置单击“显示开始页面”按钮返回开始页面,重新连接数据源。“数据源”页面通常由3个主要区域组成:左侧窗格、画布和网格。数据类型及转换数据源中的所有字段都具有一种数据类型。数据类型反映了该字段中存储信息的种类,如整数、日期和字符串。字段的数据类型在“数据”窗格中由图标标识。TableauDesktop的主要数据类型。
运算符及优先级优先级运算符优先级运算符1–(求反)5==、>、<、>=、<=、!=2^(乘方)6NOT3*、/、%7AND4+、–8OR运算符用于执行程序代码运算,会针对一个以上操作数项目进行运算。例如,2+3的操作数是2和3,运算符是“+”。Tableau支持的运算符有算术运算符、逻辑运算符、比较运算符等。所有运算符都按特定顺序计算,如2*1+2等于4而不等于6,因为*运算符始终在+运算符之前计算。表1-1显示了计算运算符的顺序,第一行具有最高优先级,同一行中的运算符具有相同优先级,如果两个运算符具有相同优先级,则按照算式从左向右进行计算。文件类型数据可视化分析结束,我们可以使用多种不同的Tableau专用文件类型保存文件,主要有工作簿、打包工作簿、数据提取、数据源、打包数据源和书签等。工作簿(.twb):Tableau工作簿文件具有.twb文件扩展名,工作簿中含有一个或多个工作表,有零个或多个仪表板和故事。打包工作簿(.twbx):Tableau打包工作簿具有.twbx文件扩展名,打包工作簿是一个zip文件,包含一个工作簿以及任何提供支持的本地文件数据源和背景图像,适合与不能访问该数据的其他人共享。连接MicrosoftExcel在Tableau的开始页面的“连接”下面,单击“MicrosoftExcel”选项,然后选择要连接的“企业运营数据.xlsx”工作簿,单击“打开”按钮。在创建数据视图进行可视化分析之前,首先需要将Tableau连接到数据源。本章将介绍TableauDesktop支持连接到的主要数据源,例如,存储在Excel表格或文本文件中的数据,存储在企业服务器中的数据,包括关系型和非关系型数据库等。连接文本文件在“连接”下面,单击“文本文件”选项,然后选择要连接到的文本文件。连接PDF文件Tableau可以读取PDF文件中的数据。在开始页面上的“连接”下面,单击“PDF文件”选项。选择要连接到的“企业运营分析.pdf”文件,然后单击“打开”按钮。连接数据库在开始页面的“连接”下面,单击数据库类型选项,然后输入要连接的服务器的地址,选择服务器的登录方式,使用Windows身份验证还是使用特定用户名和密码。Tableau连接新数据源时会将该数据源中的每个字段分配给“数据”窗格中的“维度”或“度量”,具体情况视字段的数据类型而定。如果字段是分类等文本类型数据,Tableau会将其分配给“维度”,如果字段包含数值数据,Tableau就会将其分配给“度量”。本章将介绍Tableau的基础操作:包括工作区的操作、维度和度量及其转换、连续和离散及其转换、数据及视图的导出等内容。Tableau的工具栏包含“连接到数据”“新建工作表”和“保存”等按钮,还包含“排序”“分组”和“突出显示”等分析和导航工具。通过选择“窗口”→“显示工具栏”可隐藏或显示工具栏。工具栏及其功能“数据”窗格操作工作区左侧的“数据”窗格显示数据源中的已有字段、创建的新字段和参数等,在可视化分析过程中,需要将“数据”窗格中的相关字段拖放到功能区。“数据”窗格分为以下4个区域。(1)维度:包含诸如文本和日期等类别数据的字段。(2)度量:包含可以聚合的数值字段。(3)集:定义的数据子集。(4)参数:可替换计算字段和“筛选器”中常量值的动态占位符。分析”窗格操作根据可视化视图的不同,可以从工作区左侧显示的“分析”窗格中将常量线、平均线、含四分位点的中值、盒须图(即箱形图)等拖入数据视图。功能区和标记Tableau中的每个工作表都包含功能区和卡。例如,“标记”卡用于控制标记属性的位置,包含“颜色”“大小”“文本”“详细信息”“工具提示”控件,此外,根据分析的具体视图需要,有时还会出现“形状”和“角度”等控件。
工作表及其操作工作表是Tableau制作可视化视图的区域,在工作表中通过将字段拖放到功能区生成数据视图,这些工作表以标签的形式沿工作簿的底部显示。1.创建工作表2.复制工作表3.导出工作表4.删除工作表维度及其操作维度就是指分类数据,例如城市名称、用户性别、商品名称等。当第一次连接数据源时,Tableau会将包含离散分类信息的字段(如字符串或日期字段)分配给“数据”窗格中的“维度”,当字段从“维度”区域拖放到行或列功能区时,Tableau将创建列或行标题,例如将“支付方式”拖放到行功能区时会出现4种支付类型。度量及其操作度量就是指定量数据,例如客户的年龄、商品的销量额和利润额等。当第一次连接数据源时,Tableau会将包含数值信息的字段分配给“数据”窗格中的“度量”,当将字段从“度量”区域拖放到行或列功能区时,Tableau将创建连续轴,并创建一个默认的数据展示样式,我们可以根据需要再进行修改。连续及其操作连续是指可以包含无限数量的值,例如商品的销售额可以是一个数字区间内的任何值。如果字段包含可以加总、求平均值或其他方式聚合的数字,在第一次连接到数据源时,Tableau会假定这些值是连续的,并将该字段分配给“数据”窗格的“度量”。当字段从“度量”区域拖放到行或列功能区时,显示一系列实际值,将连续字段放到行或列功能区后,Tableau会显示一个轴,这个轴是最小值和最大值之间的度量线,如将“实际配送天数”拖放到列功能区上。离散及其操作离散是指包含有限数量的值,例如地区包含华东、华北和东北等6类。如果某个字段包含的值是名称、日期或地理位置,Tableau会在第一次连接到数据源时将该字段分配给“数据”窗格的“维度”区域,Tableau会假定这些值是离散的。当把离散字段拖放到列或行功能区时,Tableau会创建标题,如将“门店名称”拖放到行功能区上。创建字段简介在日常数据分析过程中,一般我们收集整理的数据不完全包含分析所需要的所有字段。例如,数据源可能包含带有“销售额”和“利润额”两个字段,但不包括“利润率”这个字段。如果需要每种类型商品的利润率情况,就可以使用“销售额”和“利润额”两个字段,来创建一个新的“利润率”字段。创建字段案例在分析过程中,我们往往需要从“计算字段”对话框创建新字段,或者基于所选字段创建新字段,操作步骤如下:打开创建字段的编辑器,单击“数据”窗格“维度”右侧的下拉菜单,并选择“创建计算字段”。也可以在菜单栏中选择“分析”→“创建计算字段”。维度和度量字段度都可以直接拖放到编辑器中。这里我们将“实际配送天数”和“计划配送天数”拖放到编辑器中,命名为“商品延迟天数”,右侧是可以使用的函数列表。在编辑器中,如果单击“应用”按钮将保存新创建的字段,并将其添加到“数据”窗格中,但不关闭编辑器;如果单击“确定”按钮,那么会保存新创建的字段并关闭编辑器,其中:Tableau将返回字符串或日期类型的新字段保存为维度,返回数值类型的新字段保存为度量。表计算简介在Tableau中表计算的类型主要有以下8种:差异:显示绝对变化。百分比差异:显示变化率。百分比:显示为指定数值的百分比。合计百分比:以总额百分比的形式显示值。排序:对数值进行排名。百分位:计算百分位值。汇总:显示累积总额。移动计算:消除短期波动以确定长期趋势。1.打开“表计算”对话框选择列功能区上的“总和(销售额)”字段,在下拉菜单中选择“添加表计算”选项。2.定义计算在“表计算”对话框中选择要应用的计算类型,这里选择“合计百分比”,在“表计算”对话框的下半部分定义计算依据,这里选择“表”。3.查看表计算将“门店名称”拖放到行功能区,原始度量现在标记为表计算,还可以对视图进行适当调整和美化。表计算案例假设需要分析2020年6月份不同类型商品的地区利润率,具体步骤如下:步骤1:通过计算编辑器创建一个名为“利润率”的新计算字段。“利润率”等于利润额除以销售额,公式为:利润率=SUM(利润)/SUM(销售额)。步骤2:将“订单日期”拖放到筛选器功能区中,筛选方法主要有相对日期、日期范围和计数等类型,这里我们选择日期范围下的“年/月”选项。单击“下一步”按钮,会出现“筛选器”的具体选项,包括“常规”“条件”“顶部”。其中,“常规”包括“从列表中选择”“自定义值列表”“使用全部”。步骤3:将“地区”拖放到列功能区,将“利润率”拖放到列功能区,它的名称自动更改为“聚合(利润率)”,使用预定义求和聚合,表示聚合计算,将“子类别”拖放到行功能区。还可以添加“颜色”标记对视图进行适当的美化。条形图条形图是一种把连续数据绘制成数据条的表现形式,通过比较不同组的条形长度,从而比较不同组的数据量大小,例如客户的性别、受教育程度、购买方式等。绘制条形图时,不同组之间是有空隙的,如果没有就是直方图,可分为垂直条和水平条。条形图的主要类型如下:(1)簇状条形图和三维簇状条形图:簇状条形图比较各个类别的值。簇状条形图通常垂直轴显示类别,三维簇状条形图以三维格式显示水平矩形。(2)堆积条形图和三维堆积条形图:堆积条形图显示单个项目与整体之间的关系。三维堆积条形图以三维格式显示水平矩形,而不以三维格式显示数据。(3)百分比堆积条形图和三维百分比堆积条形图:通常用于比较各个类别的每一数值所占总数值的百分比大小。例如,要创建一个不同子类别商品的利润额条形图,具体步骤如下:连接数据源后,将度量下的“利润额”字段拖放到列功能区,维度下的“子类别”字段拖放到行功能区,Tableau会自动生成条形图,显示商品在各个子类别上的利润额。然后将“利润额”字段拖入“颜色”和“标签”标记,设置图形颜色,并添加视图标题等。饼形图饼形图(即饼图)用于展示数据系列中各项与总和的比例,图中的数据点显示为占总体的百分比,每个数据系列具有唯一的颜色或图案,并且用图例表示。饼图的主要类型如下:(1)三维饼图:以三维格式显示每一数值相对于总数值的大小。(2)复合饼图:将数值从主饼图中提取并组合到第二个饼形图或堆积条形图的饼图。(3)分离型饼图:显示每一数值相对于总数值的大小,同时强调每个数值。例如,要创建一个不同地区的销售额饼图,具体步骤如下:将度量下的“销售额”字段拖放到行功能区,将“地区”字段拖放到列功能区,会自动生成柱形图。单击“智能显示”中的饼图视图,它显示每个地区在总销售额中的占比。为了使图形更加直观,我们还需要进一步美化。单击“颜色”按钮,对各个地区的颜色进行编辑。单击“大小”标记后,拖动滑块可以放大或缩小饼图,还可以将“地区”和“销售额”拖入“标签”标记给每组加上标签等。直方图直方图是一种统计报告图,由一系列高度不等的纵向条纹或线段表示数据分布的情况,一般用横轴表示数据类型,纵轴表示分布情况。直方图的主要类型如下:(1)标准型直方图:图形呈现中间高、两边低,左右近似对称。(2)孤岛型直方图:图形的左侧或右侧出现孤立的小岛。(3)双峰型直方图:图形中出现两个山峰。(4)折齿型直方图:图形呈现凹凸不平的形状,(5)陡壁型直方图:图形像高山一样陡壁,向一边倾斜。(6)偏态型直方图:图形的顶峰有时偏向左侧、有时偏向右侧。(7)平顶型直方图:图形没有突出的顶峰,呈平顶型。例如,要创建一个显示不同订单金额区间的直方图,具体步骤如下:在度量中选择“销售额”字段,将其拖放到行功能区,还需要单击“智能显示”中的直方图视图,用于创建直方图。显示企业在各个销售额区间的订单次数。将“支付方式”字段拖入“筛选器”功能区中,例如选择子类别类型为“支付宝”。将“销售额”字段拖入“颜色”和“标签”标记,并为视图添加标题等,现在可以看出使用支付宝这种支付方式的订单销售额分布情况。为了能够更清晰的查看销售额分布情况,还可以将横轴的坐标刻度进行固定,这里设置为0到15000(即0K到15K)。折线图折线图是用直线将各个数据点连接起来而组成的图形,以折线方式显示数据的变化趋势。折线图可以显示随时间而变化的连续数据,因此非常适合显示相等时间间隔的数据趋势。在折线图中,类别数据沿水平轴均匀分布,值数据沿纵轴均匀分布。数据分析中常常会用到折线图和面积图,看起来很相似,可以完成同一类的分析,但是他们却是不能互换的,正确使用折线图的几点注意事项:(1)折线图的横坐标只能是时间,如果变成了省份等分类变量,就没有趋势可言。(2)折线图展示的是一定日期内的数值趋势,而面积图展示的是总值趋势。例如,要创建一个显示不同订单日期的销售额折线图,具体步骤如下:将“订单日期”拖放到列功能区,将“销售额”拖放到行功能区。为了观察订单按月份的趋势,可以单击列功能区中的“年(订单日期)”,然后选择“月2015年5月”选项。我们还可以通过“标记”下的“颜色”“大小”和“标签”等对视图进行美化,并给视图添加标题。气泡图气泡图可用于展示三个变量之间的关系绘制时将一个变量放在横轴,另一个变量放在纵轴,而第三个变量则用气泡的大小来表示。气泡图与散点图类似,不同之处在于:气泡图允许在图中额外加入一个表示气泡大小的变量。例如,要创建一个不同省市销售额大小的气泡图,具体步骤如下:将度量下的“销售额”字段拖放到列功能区,将维度下的“省市”字段拖放到行功能区,拖放完成后,Tableau会自动生成条形图。通过Tableau右上方的“智能显示”调整样式,选择“气泡图”选项。然后将“销售额”字段拖放到“颜色”标记,为视图添加标题,进一步编辑颜色和美化视图。树状图树状图通过在嵌套的矩形中显示数据,使用维度定义树状图的结构,使用度量定义各个矩形的大小或颜色。可以将度量放在“大小”和“颜色”标记上,在“颜色”标记上可以包括多个维度,添加维度只会将视图分为更多的较小矩形。例如:要创建不同类型商品的利润额树状图,具体步骤如下:将“子类别”拖放到列功能区,将“利润额”拖放到行功能区,当列功能区上有一个维度且行功能区上有一个度量时,Tableau会显示一个默认图表,单击工具栏上的“智能显示”按钮,然后选择“树状图”视图类型。将“商品类别”拖放到标记卡的“颜色”上,视图将被分为三个独立的区域,“商品类别”将确定矩形的颜色。将“销售额”拖放到标记卡的“标签”上,并为视图添加标题等。散点图散点图表示一个变量随另一个变量变化的大致趋势,据此判断两变量之间是否存在某种关联,从而选择合适的函数对数据进行拟合。散点图的主要类型如下:(1)散点图矩阵:用于同时绘制多个变量之间的两两相关性的散点图。(2)三维散点图:由3个变量确定的三维空间中研究变量之间的关系。例如,要创建订单的实际配送天数和计划配送天数的散点图,具体步骤如下:将“实际配送天数”拖放到行功能区,将“计划配送天数”拖放到列功能区,同时取消菜单栏“分析”下的“聚合度量”选项。将“配送延迟天数”拖放到“颜色”和“形状”标记上,并为视图添加标题等,从视图可以看出商品的配送延迟天数分布情况。箱形图箱形图又称为箱线图或盒须图,是一种用作显示一组数据分散情况资料的统计图。箱形图主要用于反映原始数据分布的特征,还可以进行多组数据分布特征的比较等。箱线图的绘制方法是:先将数据进行排序,找出一组数据的上边缘、下边缘、中位数和两个四分位数,然后连接两个四分位数画出箱体,再将上边缘和下边缘与箱体相连接,中位数在箱体中间。例如,要创建不同类型商品的折扣箱形图,具体步骤如下:将“商品类别”和“地区”拖放到列功能区,将“折扣”拖放到行功能区,Tableau将创建一个条形图。单击工具栏中的“智能显示”按钮,然后选择“盒须图”视图类型。将“折扣”拖放到“标签”标记,并为视图添加标题等,从视图可以看出不同类型商品的折扣分布情况。环形图环形图是由两个及其以上大小不一的饼形图叠加而成,挖去中间的部分所构成的图形,环形图与饼形图类似,但又有区别,环形图中间有一个“空洞”。例如,要创建不同地区退单量的环形图,具体步骤如下:将度量中的“记录数”拖放到行功能区,重复两次操作,并在标记卡上选择“饼图”。将视图显示方式调整为适应“整个视图”,选择第一个饼图,单击“大小”标记,修改饼图的大小。在行功能区,将两个记录数的聚合计算类型由“总和”修改为“平均值”。在第一个度量上,将“地区”字段拖放到“颜色”标记,“利润额”字段拖放到“角度”标记,并设置快速表计算类型为“合计百分比”。在第二个度量上,鼠标右击纵坐标轴,选择“双轴”选项。然后鼠标右击纵坐标轴,选择“同步轴”选项。再右击纵坐标轴,选择“编辑轴”选项,设置轴的范围,使得圆环图置于视图的中间位置,选择“固定”选项,并输入初始值,固定开始为0.8,固定结束为1.2。然后使用“大小”标记适当调整两个饼形图的大小,使其更加美观。设置标签,在第一个度量上,将“地区”和“是否退单”拖放到“标签”标记,并设置“是否退单”的快速表计算类型为“合计百分比”。设置第二个饼图(内部小的饼图)的颜色,选择第二个饼图,然后选择“颜色”标记,选择颜色类型为“无”,最后,为视图添加标题等,使其更加美观。倾斜图门店名称2018年排名2019年排名定远路店15海恒店26金寨店38燎原店41临泉路52庐江路69人民路店74杨店店87众兴店93倾斜图可以展示单个指标在不同时期的变化情况,既能展示值的大小变化,又能展示排名变化等。例如,我们需要绘制企业各个门店在2018年和2019年销售业绩排名的倾斜图。数据包含门店名称、2018年排名、2019年排名三个字段。绘制倾斜图之前,首先需要对基础数据进行整理,创建“排名变化”新字段,即计算“2018年排名”与“2019年排名”的差值。
注意:由于“2018年排名”和“2019年排名”都为非聚合字段,因此在公式中需要对字段进行聚合处理,如添加SUM函数,才能让两个字段进行计算。要创建的斜线图,其横轴是“2018年排名”和“2019年排名”两个字段,纵轴是排名,相对前面介绍的视图,绘制过程比较复杂,具体操作步骤如下:将维度下的“度量名称”和度量下的“度量值”分别拖放到列功能区和行功能区。
在左下角“度量值”区域保留“2018年排名”和“2019年排名”两个度量值,删除其他选项,标记类型选择“线”。将“排名变化”字段拖放到“大小”标记,将“门店名称”拖放到“标签”标记。单击标记卡中的“标签”,修改标签的对齐和标签标记选项。倒转坐标轴,在纵轴上通过鼠标右键进入“编辑轴”页面,将纵坐标轴设置为“倒序”,使得排名按照从上往下的顺序,体现球队排名从高到低。将“度量值”拖放到“标签”标记,单击“标签”进入其设置页面,将标签设置为“<度量值>.<门店名称>”,在视图中将按照设置好的格式进行显示。对创建的斜线图进行美化,包括添加视图标题、调整“度量值”的数字格式、去除纵坐标轴标题、添加线条颜色等。2023Python数据可视化实践9.1认识与安装Python除了可以解释执行源码之外,Python程序还支持伪编译为字节码来提高加载速度,也支持使用py2exe、pyinstaller、cx_Freeze、py2app或其他类似工具将Python程序及其所有依赖库打包成为各种平台上的可执行文件,后者也是保护源码和知识产权的常用方式。Python支持命令式编程和函数式编程两种模式,完全支持面向对象程序设计,语法简洁清晰,功能强大且易学易用,最重要的是拥有大量的几乎支持所有领域应用开发的成熟扩展库,表现出了极强的普适性和通用性。SignatureDateIDLESignature
安装扩展库标准的Python安装包只包含了内置模块和标准库,没有包含任何扩展库,开发人员可以根据实际需要再安装和使用合适的扩展库。pip命令示例说明pipfreeze列出已安装模块及其版本号pipinstallSomePackage[==version]在线安装SomePackage模块,可以使用方括号内的形式指定扩展库版本pipinstallSomePackage.whl通过whl文件离线安装扩展库pipinstall--upgradeSomePackage升级SomePackage模块pipuninstallSomePackage卸载SomePackage模块Signature
安装扩展库在Windows平台上,如果在线安装扩展库失败,可以从/~gohlke/pythonlibs/下载扩展库编译好的.whl文件(一定要选择正确版本,并且不要修改下载的文件名),然后在命令提示符环境中使用pip命令进行离线安装。例如:注意,如果计算机上安装了多个版本的Python开发环境,在一个版本下安装的扩展库无法在另一个版本中使用。最好切换至相应版本Python安装目录的scripts文件夹中,然后在Shift+鼠标右键弹出的菜单中选择“在此处打开命令提示符窗口”(Win7)或“在此处打开PowerShell窗口”(Win10),进入命令提示符环境执行pip命令(如果使用PowerShell的话需要在pip命令前加上./),如果要离线安装扩展库的话,最好也把.whl文件下载到相应版本的scripts文件夹中。pipinstallpandas-0.24.0-cp37-cp37m-win_amd64.whlPython编码规范在程序设计中,变量名、函数名和类名往往统称为标识符。在为标识符起名字时,应做到“见名知义”,并遵守下面的规范。必须以英文字母、汉字或下划线开头。虽然Python3.x支持使用汉字作为标识符,但一般并不建议这样做。名字中可以包含汉字、英文字母、数字和下画线,不能有空格或任何标点符号。不能使用关键字,例如yield、lambda、def、else、for、break、if、while、try、return这样的变量名都是非法的。对英文字母的大小写敏感,例如student和Student是不同的变量。不建议使用系统内置的模块名、类型名或函数名以及已导入的模块名及其成员名作变量名或者自定义函数名,例如type、max、min、len、list这样的变量名都是不建议作为变量名的,也不建议使用math、random、datetime、re或其他内置模块和标准库的名字作为变量名或者自定义函数名。标识符命名Python编码规范对关键代码和重要的业务逻辑代码进行必要的注释,方便代码的阅读和维护。在Python中有两种常用的注释形式:#和三引号。井号#用于单行注释,表示本行中#符号之后的内容不作为代码运行;三引号常用于大段说明性文本的注释,也可以用于界定包含换行符的长字符串。注释圆括号除了用来表示多行代码为一条语句,还常用来修改表达式计算顺序或者增加代码可读性避免歧义。圆括号
标准库、扩展库对象的导入与使用Python所有内置对象不需要做任何的导入操作就可以直接使用,但标准库对象必须先导入才能使用,扩展库则需要正确安装之后才能导入和使用其中的对象。作为建议,在编写代码时,一般先导入标准库对象再导入扩展库对象。在程序中只导入确实需要使用的标准库和扩展库对象,确定用不到的没有必要进行导入,这样可以适当提高代码加载和运行速度,并能减小打包后的可执行文件体积。import模块名[as别名]importmathimportrandomimportposixpathaspathprint(math.sqrt(16)) #计算并输出16的平方根print(math.cos(math.pi/4)) #计算余弦值print(random.choices('abcd',k=8)) #从字符串'abcd'随机选择8个字符 #允许重复print(path.isfile(r'C:\Windows\notepad.exe’)) #测试指定路径是否为文件from模块名import对象名[as别名]frommathimportpiasPIfromos.pathimportgetsizefromrandomimportchoicer=3print(round(PI*r*r,2))#计算半径为3的圆面积print(getsize(r'C:\Windows\notepad.exe'))#计算文件大小,单位为字节print(choice('Python'))#从字符串中随机选择一个字符from模块名import*fromitertoolsimport*characters='1234'foritemincombinations(characters,3):#从4个字符中任选3个的组合
print(item,end='')#end=''表示输出后不换行print('\n'+'='*20)#行号后输出20个等于号foriteminpermutations(characters,3):#从4个字符中任选3个的排列
print(item,end='')常用内置数据类型对象类型类型名称示例简要说明数字int、float、complex8888888888888888888889.8,3.14,6.626e-34,5+6j,5j数字大小没有限制,且内置支持复数及其运算字符串str'Readabilitycounts.'、"I'maPythonteacher."、'''Tomsai,"let'sgo."'''、r'C:\Windows\notepad.exe'使用单引号、双引号、三引号作为定界符,不同定界符之间可以互相嵌套;前面加字母r或R表示原始字符串,任何字符都不进行转义字节串bytesb'helloworld'以字母b引导列表list[79,89,99]['a',{3},(1,2),['c',2],{65:'A'}]所有元素放在一对方括号中,元素之间使用逗号分隔,其中的元素可以是任意类型元组tuple(1,0,0)、(0,)所有元素放在一对圆括号中,元素之间使用逗号分隔,元组中只有一个元素时后面的逗号不能省略常用内置数据类型对象类型类型名称示例简要说明字典dict{'red':(1,0,0),'green':(0,1,0),'blue':(0,0,1)}所有元素放在一对大括号中,元素之间使用逗号分隔,元素形式为“键:值”,其中“键”不允许重复并且必须为不可变类型,“值”可以是任意类型的数据集合set{'bread','beer','orange'}所有元素放在一对大括号中,元素之间使用逗号分隔,元素不允许重复且必须为不可变类型布尔型boolTrue,False逻辑值,首字母必须大写空类型NoneTypeNone空值,首字母必须大写常用内置数据类型在Python中变量不直接存储值,而是存储值的内存地址或者引用,这样的内存管理方式与很多编程语言不同,也是变量类型随时可以改变的原因。虽然Python变量的类型是随时可以发生变化的,但每个变量在任意时刻的类型都是确定的。从这个角度来讲,Python属于强类型编程语言。在Python中,不需要事先声明变量名及其类型,使用赋值语句可以直接创建任意类型的变量,变量的类型取决于等号右侧表达式值的类型。赋值语句的执行过程是:首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量并指向这个内存地址。对于不再使用的变量,可以使用del语句将其删除。
整数、实数、复数importmathprint(math.factorial(32))#计算32的阶乘print(0.4-0.3==0.1)#实数之间尽量避免直接比较大小print(math.isclose(0.4-0.3,0.1))#测试两个实数是否足够接近num=7squreRoot=num**0.5#计算平方根print(squreRoot**2==num)print(math.isclose(squreRoot**2,num))
整数、实数、复数c=3+4j#Python内置支持复数及其运算print(c+c)#复数相加print(c**2)#幂运算print(c.real)#查看复数的实部print(c.imag)#查看复数的虚部print(3+4j.imag)#相当于3+(4j).imagprint(c.conjugate())#查看共轭复数print(abs(c))#计算复数的模
列表、元组、字典、集合#创建列表对象x_list=[1,2,3]#创建元组对象x_tuple=(1,2,3)#创建字典对象,元素形式为“键:值”x_dict={'a':97,'b':98,'c':99}#创建集合对象x_set={1,2,3}#使用下标访问列表中指定位置的元素,元素下标从0开始print(x_list[1])
列表、元组、字典、集合#元组也支持使用序号作为下标,1表示第二个元素的下标print(x_tuple[1])#访问字典中特定“键”对应的“值”,字典对象的下标是“键”print(x_dict['a'])#查看列表长度,也就是其中元素的个数print(len(x_list))#查看元素2在元组中首次出现的位置print(x_tuple.index(2))#查看字典中哪些“键”对应的“值”为98forkey,valueinx_dict.items():ifvalue==98:print(key)#查看集合中元素的最大值print(max(x_set))
字符串text='''Beautifulisbetterthanugly.Explicitisbetterthanimplicit.Simpleisbetterthancomplex.Complexisbetterthancomplicated.Flatisbetterthannested.Sparseisbetterthandense.Readabilitycounts.'''print(len(text))#字符串长度,即所有字符的数量print(text.count('is'))#字符串中单词is出现的次数print('beautiful'intext)#测试字符串中是否包含单词beautifulprint('='*20)#字符串重复print('Good'+'Morning')#字符串连接运算符与表达式运算符功能说明+算术加法,列表、元组、字符串合并与连接,正号-算术减法,集合差集,相反数*算术乘法,序列重复/真除法//求整商%求余数**幂运算<、<=、>、>=、==、!=(值)大小比较,集合的包含关系比较and、or、not逻辑与、逻辑或、逻辑非in成员测试is测试两个对象是否为同一个对象的引用|、^、&、<<、>>、~位或、位异或、位与、左移位、右移位、位求反&、|、^集合交集、并集、对称差集算术运算符+运算符除了用于算术加法以外,还可以用于列表、元组、字符串的连接。(1)+运算符print(3+5)print(3.4+4.5)print((3+4j)+(5+6j))print('abc'+'def')print([1,2]+[3,4])print((1,2)+(3,))
算术运算符-运算符除了用于整数、实数、复数之间的算术减法和相反数之外,还可以计算集合的差集。需要注意的是,在进行实数之间的运算时,有可能会出现误差。(2)-运算符print(7.9-4.5)#注意,结果有误差print(5-3)num=3print(-num)print(--num)#注意,这里的--是两个负号,负负得正print(-(-num))#与上一行代码含义相同print({1,2,3}-{3,4,5})#计算差集print({3,4,5}-{1,2,3})算术运算符*运算符除了表示整数、实数、复数之间的算术乘法,还可用于列表、元组、字符串这几个类型的对象与整数的乘法,表示序列元素的重复,生成新的列表、元组或字符串。(3)*运算符print(33333*55555)print((3+4j)*(5+6j))print('重要的事情说三遍!'*3)print([0]*5)print((0,)*3)
算术运算符在Python中分别表示真除法和求整商。在使用时,要特别注意整除运算符//“向下取整”的特点。例如,-17/4的结果是-4.25,在数轴上小于-4.25的最大整数是-5,所以-17//4的结果是-5。(4)运算符/和//print(17/4)print(17//4)print((-17)/4)print((-17)//4)
算术运算符%运算符可以用于求余数运算,还可以用于字符串格式化。在计算余数时,结果与%右侧的运算数符号一致。(5)%运算符print(365%7)print(365%2)print('%c,%c,%c'%(65,97,48))#把65、97、48格式化为字符算术运算符**运算符表示幂运算。使用时应注意,该运算符具有右结合性,也就是说,如果有两个连续的**运算符,那么先计算右边的再计算左边的,除非使用圆括号明确修改表达式的计算顺序。(6)**运算符print(2**4)print(3**3**3)print(3**(3**3))#与上一行代码含义相同print((3**3)**3)#使用圆括号修改计算顺序print(9**0.5)#计算9的平方根print((-1)**0.5)#对复数计算平方根得到复数
关系运算符print(3+2<7+8)#关系运算符优先级低于算术运算符print(3<5>2)#等价于3<5and5>2print(3==3<5)#等价于3==3and3<5print('12345'>'23456')#第一个字符'1'<'2',直接得出结论print('abcd'>'Abcd')#第一个字符'a'>'A',直接得出结论print([85,92,73,84]<[91,82,73])#第一个数字85<91,直接得出结论print([180,90,101]>[180,90,99])#前两个数字相等,第三个数字101>99print({1,2,3,4}>{3,4,5})#第一个集合不是第二个集合的超集print({1,2,3,4}<={3,4,5})#第一个集合不是第二个集合的子集print([1,2,3,4]>[1,2,3])#前三个元素相等
#并且第一个列表有多余的元素print(60in[70,60,50,80])print('abc'in'a1b2c3dfg')print([3]in[[3],[4],[5]])print('3'inmap(str,range(5)))print(5inrange(5))成员测试运算符集合运算符A={35,45,55,65,75}B={65,75,85,95}print(A|B)print(A&B)print(A-B)print(B-A)print(A^B)逻辑运算符print(3inrange(5)and'abc'in'abcdefg')print(3-3or5-2)print(not5)print(not[])选择结构——条件表达式在Python中,几乎所有合法表达式都可以作为条件表达式。条件表达式的值等价于True时表示条件成立,等价于False时表示条件不成立。条件表达式的值只要不是False、0(或0.0、0j等)、空值None、空列表、空元组、空集合、空字典、空字符串、空range对象或其他空迭代对象,Python解释器均认为与True等价(注意,等价和相等是有区别的)。单分支选择结构例生成包含两个或三个汉字的人名。fromrandomimportchoice,randomname=choice('董孙李周赵钱王')ifrandom()>0.5:#random()函数返回[0,1)区间上的随机数
name+=choice('项目大理欢乐杰')name+=choice('家南北学工农彬')print(name)
双分支选择结构例首先生成[1,100]区间上的一个随机数,然后根据随机数的范围生成变
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 暖通防垢技术方法
- 2026年厨师职业技能鉴定中式烹饪技艺与菜点创新实操考试题
- 2026年心理咨询技能心理健康教师能力评估试题
- 2026年会计从业资格预测模拟试题库
- 2026年国际经济贸易实务知识测试题集
- 2026年金融风险管理风险评估方法练习题
- 煤矿基建领导带班制度
- 2026年全科医师资格认证考试练习题疾病诊断与治疗方案
- 2026年游戏行业专业试题集游戏资产在拍卖市场的价值评估
- 2026年会计从业资格考试题库财务报表分析题目
- 义务教育均衡发展迎检路线及解说词2
- 大型船舶拆除方案范本
- 小作坊卫生规范制度
- 案件不网上公开申请书
- 贸易安全培训讲义课件
- GB/T 13609-2025天然气气体取样
- 教育资源分享平台管理框架模板
- 园林环卫安全培训内容课件
- 神经刺激治疗患者知情同意书模板
- 软件系统上线测试与验收报告
- (2025年标准)圈内认主协议书
评论
0/150
提交评论