版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Python财经应用:编程基础、数据分析与可视化第一章Python与语法基础中国农业大学李辉01
python编程环境02
python语法基础03
应用案例:个人预算管理与财务分析01
python编程环境02
python语法基础03
应用案例:个人预算管理与财务分析Python语法基础在财经数据分析中,Python凭借其简洁的语法和强大的数据处理能力,成为处理复杂财务数据的理想工具。变量、数据类型、运算符等基础概念是Python编程的核心。比如在量化交易或财务报表分析中,我们经常需要处理混合数据类型的场景:比如某个变量可能先存储股票代码(字符串),接着记录股价(浮点数),随后又保存交易量(整数)。Python的动态变量特性允许我们像处理Excel单元格那样自由地转换数据类型,这种灵活性在构建金融模型时尤其重要。Python语法基础——编码规范在编写代码时,遵循一定的代码编写规则和命名规范可以使代码更加规范化,并对代码的理解与维护起到至关重要的作用。Python中采用PEP8作为编码规范,其中PEP是PythonEnhancementProposal的缩写,翻译过来是Python增强建议书;而PEP8表示版本,它是Python代码的样式指南。下面给出PEP8编码规范中的一些在编程中应该严格遵守的规则。规范1不要在行尾添加分号“;”,也不要用分号将两条命令放在同一行。规范2建议每行不超过80个字符,如果超过,建议使用括号“()”将多行内容隐式地连接起来,而不推荐使用反斜杠“\”进行连接。规范3关于空行和空格的规定。使用必要的空行可以增加代码的可读性。一般在顶级定义(如函数或者类的定义)之间空两行,而在方法定义之间空一行。另外,在用于分隔某些功能的位置也可以空一行。通常情况下,运算符两侧、函数参数之间、逗号“,”的两侧建议使用空格进行分隔。编码规范(4)规范4
应该避免在循环中使用“+”和“+=”运算符累加字符串。这是因为字符串是不可变的,这样做会创建不必要的临时对象。推荐的做法是将每个子字符串加入列表,然后在循环结束后使用join()方法连接列表。(5)规范5
适当使用异常处理结构提高程序容错性,但不能过多依赖异常处理结构,适当的显式判断还是必要的。(6)规范6
命名规范在编写代码中起到很重要的作用,使用命名规范可以更加直观地了解代码所代表的含义。编码规范(7)规范7Python最具特色的就是使用缩进来表示代码块,不需要使用大括号{}。缩进的空格数是可变的(一般为4个空格),但是同一个代码块的语句必须包含相同的缩进空格数。【例1-1】某公司要新购进一台设备,单价为3000元。按照固定资产管理规定要求:如果设备单价大于1000元,输出“设备应分类为固定资产”;如果设备单价小于等于1000元,输出“设备应分类为非固定资产”。实现代码如下。#提示“请输入设备单价:”,并对输入结果转换成整数类型price=int(input("请输入设备单价:"))ifprice>1000:#if-else属于条件判断print('设备应分类为固定资产') #print()为输出函数else:print('设备应分类为非固定资产')运行结果如下。请输入设备单价:3000设备应分类为固定资产一般来说,在编写代码时尽量不要使用过长的语句,应保证一行代码不超过屏幕宽度。如果语句确实太长,Python允许在行尾使用续行符“\”表示下一行代码仍属于本条语句,或者使用圆括号把多行代码括起来表示是一条语句。编码规范(8)规范8注释是指在程序代码中对程序代码进行解释说明的文字。注释不是程序,不能被执行,只是对程序代码进行解释说明,让别人可以看懂程序代码的作用,能够大大增强程序的可读性。注释的分两类:单行注释和多行注释。单行注释只能注释一行内容,以#开头,#右边的所有文字当作说明,而不是真正要执行的程序,起辅助说明作用。单行注释语法如下:#注释内容例如:#计算月度增长率(百分比形式)monthly_growth=(current_month-last_month)/last_month*100多行注释以三对单或者双引号引起来来解释说明一段代码的作用和使用方法。多行注释可以注释多行内容,一般用在注释一段代码的情况。多行注释语法如下:"""
第一行注释
第二行注释
第三行注释"""和'''
注释1
注释2
注释3'''注意:解释器不执行任何的注释内容。多行注释用于函数/类文档说明或复杂算法解释。例如:defcalculate_roi(investment,revenue):"""计算投资回报率(ROI):paraminvestment:初始投资额:paramrevenue:收益总额:return:ROI百分比"""return(revenue-investment)/investment*100标识符与保留字1.标识符现实生活中,每种事物都有自己的名称,从而与其他事物区分开。例如,每种交通工具都用一个名称来标识。在Python语言中,同样也需要通过对程序中各个元素命名来加以区分,这种用来标识变量、函数、类等元素的符号称为标识符,通俗地讲就是名字.Python合法的标识符必须遵守以下规则:
规则1合法的标识符由一串字符组成,必须以下画线(_)或字母开头,后面接任意数量的下画线、字母(a~z,A~Z)或数字(0~9)。Python3.x支持Unicode字符,所以汉字等各种非英文字符也可以作为变量名。例如,_abs、r_l、X、var1、FirstName、科目类别等,都是合法的标识符。注意:在Python语言中允许使用汉字作为标识符,如“科目名称="银行存款",在程序运行时并不会出错误,但建议读者尽量不要使用汉字作为标识符,可以减少反复切换带来错误概率。
规则2在Python中,标识符中的字母是严格区分大小写的,两个同样的单词,如果大小写格式不一样,所代表的意义是完全不同的。例如,Sum和sum是两个不同的标识符。
规则3禁止使用Python保留字(或称关键字)。不能定义与关键字同名的标识符。关键字也称为“保留字”,是被语言保留起来具有特殊含义的词,不能再作为标识符。
规则4Python中以下画线开头的标识符有特殊意义,一般应避免使用相似的标识符。以单下画线开头的标识符(_width)表示不能直接访问的类属性,不能通过“fromxxximport*”导入。以双下画线开头的标识符(如__add)表示类的私有成员。以双下画线开头和结尾的是Python里专用的标识,例如,__init__()表示构造函数。注意:开头字符不能是数字。标识符中唯一能使用的标点符号只有下画线,不能含有其他标点符号(包括空格、括号、引号、逗号、斜线、反斜线、冒号、句号、问号等)以及@、%和$等特殊字符。例如,stu-score、FirstName、2班平均分等都是不合法的标识符。标识符与保留字
Python保留字规则【例1-2】通过keyword查看Python中的保留字。实现代码如下:importkeywordprint(keyword.kwlist)运行结果如下:['False','None','True','and','as','assert','break','class','continue','def','del','elif','else','except','finally','for','from','global','if','import','in','is','lambda','nonlocal','not','or','pass','raise','return','try','while','with','yield']Python中所有保留字是区分字母大小写的。例如,True、if是保留字,但是TURE、IF就不属于保留字。如果在开发程序时,使用Python中的保留字作为模块、类、函数或者变量等的名称,则会提示“invalidsyntax”的错误信息。2.保留字保留字(keyword),也称关键字,指被编程语言内部定义并保留使用的标识符。保留字是Python语言中已经被赋予特定意义的一些单词,在开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用。Python中的保留字可以通过“keyword.kwlist”代码查看。变量和赋值
变量和赋值在Python中,变量是程序中用于存储和引用数据的标识符。变量的值可以是任何数据类型,包括字符串、整数、浮点数、复数等。变量的动态特性使得Python在财经数据分析中具有极高的灵活性和易用性。
变量的定义Python中的变量通过赋值语句创建,无须显式声明数据类型。变量的“类型”由其存储的值决定。例如:subject_name="库存现金"#字符串类型price=8#整数类型weight=6.5#浮点数类型z=5+6j#复数类型变量可以反复赋值,且每次赋值可以改变其数据类型。这种动态特性是Python作为动态语言的重要特点之一,使得变量的使用更加灵活。变量和赋值
1)单个变量赋值:变量名=数据。例如:var="银行存款"#字符串类型var=18#整数类型var=96.5#浮点数类型var=3+4j#复数类型2)多个变量赋值:变量名1,变量名2.....变量名n=数据1,数据2......数据n。例如:subject_code,subject_name,subject_category,lending_direction,beginning_balance='2202','应付账款','负债','贷',20000print(subject_code,subject_name,subject_category,lending_direction,beginning_balance)3)多个变量赋相同值:变量名1=变量名2=...=变量名n=数据。假设我们需要初始化一个企业的多个会计科目余额为零(例如,期初余额为零的科目),可以使用Python的多变量赋值语法来简化代码。#初始化多个会计科目余额为零cash_balance=accounts_receivable=inventory_balance=accounts_payable=retained_earnings=0变量的内存引用:在Python中,变量存储的是数据的内存地址引用。当对变量进行操作时,Python解释器会根据引用找到实际的数据。这种机制使得变量的使用更加高效。变量的赋值方式:Python支持右边三种赋值方式:变量和赋值变量的命名Python中变量的命名需遵循以下规则:变量名必须是有效的标识符(字母、数字和下划线的组合,且不能以数字开头)。变量名不能是Python的保留字(如for、if等)。避免使用小写字母i和大写字母O,以免造成混淆。变量名应具有描述性,推荐使用下划线分割的命名方式(如student_age)。可以采用大驼峰(如MyName)或小驼峰(如myName)命名方式。以下是一些不合法的变量命名示例:-score,1(变量名中不能包含逗号)-6month(变量名不能以数字开头)-x$2(变量名中不能包含特殊字符)-for(Python保留字不能作为变量名)注意:变量必须先定义后使用,否则会引发NameError。Python的动态特性使得变量的类型可以随时改变,但需注意类型转换可能带来的潜在问题。变量和赋值变量值的存储Python语言中的变量存储的是其值在内存中的地址。赋值语句的执行过程是:首先把等号右侧表达式的值计算出来,然后在内存中寻找一个位置把值存放进去,最后创建变量并指向这个内存地址。每个对象由标识(identity)、类型(type)、value(值)组成。(1)标识标识用于唯一地表示一个对象,通常对应对象在计算机内存中的位置,换句话说变量是存放变量位置的标识符。使用内置函数id(obj)可以返回对象obj的标识。变量lending_direction_01赋值为“短期借款”,代码如下:lending_direction_01=”短期借款”其内存的分配情况如图所示。变量和赋值变量值的存储变量lending_direction_01赋值为“短期借款”,变量lending_direction_02赋值为“长期借款”,代码如下:lending_direction_01=”短期借款”lending_direction_02=”长期借款”其内存的分配情况如图所示。变量和赋值变量值的存储变量lending_direction_01赋值为“短期借款”,变量lending_direction_02的值等于lending_direction_01,代码如下:lending_direction_01=”短期借款”lending_direction_02=lending_direction_01其内存的分配情况如图所示。变量和赋值变量值的存储(2)类型类型用于标识对象所属的数据类型(类),数据类型用于限定对象的取值范围以及允许执行的处理操作。使用内置函数type(obj)可以返回对象obj所属的数据类型。(3)值值用于表示对象的数据类型的值。使用内置函数print(obj)可以返回对象obj的值。Python是一种动态类型的语言,也就是说,变量的类型可以随时变化。【例1-3】使用内置函数type()、id()和print()查看myvalue变量对象。实现代码如下:subject_name="应付账款"print(id(subject_name))print(type(subject_name))print(subject_name)subject_name=20000print(id(subject_name))print(type(subject_name))print(subject_name)运行结果如下:2502818342720<class'str'>应付账款2502818409680<class'int'>20000数据类型
数据类型在财经分析中的作用在财经数据分析中,数据类型的选择和处理至关重要,因为不同的数据类型决定了数据的存储方式、操作方法以及分析结果的准确性。Python作为一种强大的编程语言,提供了丰富的数据类型来满足各种数据处理需求。
Python数据类型概述在计算机程序中,数据类型用于定义数据的存储形式和操作规则。与人类能够直观地区分数字和字符不同,计算机需要明确的数据类型来正确处理数据。Python的数据类型可以分为数字型和非数字型两大类,每种类型都有其特定的用途和操作方式。数据类型1.常见的数据类型(1)数字型数据数字型数据用于存储数值信息,是财经数据分析中最常用的数据类型之一。Python支持以下几种数字型数据:整型(int):表示整数,如6。浮点型(float):表示带有小数部分的数值,如6.0。布尔型(bool):表示逻辑值,只有True和False两种状态。复数型(complex):表示复数,如6+0j。在财经分析中,整型和浮点型常用于表示金额、数量等数值数据,而布尔型则用于逻辑判断,如判断某项交易是否成功。(2)非数字型数据非数字型数据用于存储非数值信息,如文本、列表、集合等。Python支持以下几种非数字型数据:字符串(str):表示文本数据,如'三大财务报表分别为:资产负债表、利润表和现金流量表'。列表(list):表示有序的元素集合,如['资产负债表','利润表','现金流量表']。元组(tuple):表示不可变的有序元素集合,如('资产负债表','利润表','现金流量表')。字典(dict):表示键值对的集合,如{'company_name':'ABC科技有限公司'}。在财经分析中,字符串常用于存储文本信息,如公司名称或交易描述;列表和元组用于存储多个相关数据项;字典则用于存储键值对,如财务指标与其对应的数值。当Python字符串中有一个反斜杠时,表示一个转义序列的开始,称反斜杠为转义符。所谓转义字符,是指那些字符串中存在的有特殊含义的字符。数据类型1.常见的数据类型(2)非数字型数据表中列出了常用的转义字符。Python允许用r""或者r''的方式表示引号内部的字符串,默认不转义。【例1-4】转义字符的使用。实现代码如下:print('Ilove\nyou!')print(r'Ilove\nyou!')运行结果如下:Iloveyou!Ilove\nyou!适用于字符串对象的Python函数主要如下:str():将其他类型的数据转换为字符串。len():获取字符串的长度。eval():把任意字符串转换为Python表达式并计算表达式的值。列表、元组、字典、集合和字符串都是Python中常用的序列数据结构,很多复杂的程序设计都要使用这些数据结构。不同的序列对象使用不同的定界符或元素形式表示有序的序列结构支持索引访问;序列结构可变,表示其元素是可以修改的。变量和赋值
【例1-5】判断str_1对象的类型。实现代码如下:str_1='库存现金'type(str_1)isinstance(str_1,str)isinstance(str_1,int)isinstance(str_1,(int,str))#str_1类型是元组(int,str)中的某一个就返回True运行结果如下:<class'str'>TrueFalseTrue2.数据类型的判断方法对象是Python语言中最基本的概念,在Python中处理的一切都是对象,每个对象都有其数据类型,除基本数据类型外,还包括文件、可迭代对象等。不同类型的对象可以存储不同形式的数据,支持不同的操作。Python采用基于值的内存管理模式,变量中存储了值的内存地址或者引用,因此随着变量值的改变,变量的数据类型也可以动态改变,Python解释器会根据赋值结果自动推断变量类型。判断对象的类型可使用type()或isinstance()方法。type()的用法是type(object),该方法直接返回对象的类型值。isinstance()的用法是isinstance(object,class_or_tuple),其中的class是object的类型,tuple是类型构成的元组。该方法判断对象object是否为class指定的类型或tuple这个元组中的某一个对象类型,是则返回True,不是则返回False。该方法的返回值类型为布尔型。Python官方推荐使用isinstance()方法来判断数据类型,原因是它在多数情况下判断更准确。变量和赋值3.数据类型转换Python是强类型语言。当一个变量被赋值为一个对象后,这个对象的类型就固定了,不能隐式转换成另一种类型。当运算需要时,必须使用显式的变量类型转换。例如input()函数所获得的输入值总是字符串,有时需要将其转换为数值类型,方能进行算术运算。例如,score=int(input('请输入资产金额:'))变量的类型转换并不是对变量原地进行修改,而是产生一个新的预期类型的对象。Python以转换目标类型名称提供类型转换内置函数。float函数:将其他类型数据转换为浮点数。str函数:将其他类型数据转换为字符串。int函数:将其他类型数据转换为整型。round函数:将浮点型数值圆整为整型。所谓的圆整计算总是“四舍”,但并不一定总是“五入”。因为总是逢五向上圆整会带来计算概率的偏差。所以,Python采用的是“银行家圆整”:将小数部分0.5的数字圆整到最接近的偶数—被称为银行家圆整,即整数位是奇数则入、整数位是偶数则舍。因此,小数部分为.5的数字可能向下圆整,也可能向上圆整。bool函数:将其他类型数据转换为布尔类型。chr和ord函数:进行整数和字符之间的相互转换。chr()将一个整数按ASCII码转换为对应的字符,ord()是chr()的逆运算,把字符转换成对应的ASCII码或Unicode值。eval函数:将字符串中的数据转换成Python表达式原本类型。变量和赋值3.数据类型转换【例1-6】模拟超市抹零结账行为。假设孟欣怡一次购买了3斤鸡蛋(单价5.8元)、1.5斤黄瓜(单价3.2元)、苹果6斤(单价4.5元),输出抹零后的总价。要求:先将各个商品金额累加,计算出商品总金额,并转换为字符串输出,然后再应用int()函数将浮点型的变量转换为整型,从而实现抹零,并转换为字符串输出。实现代码如下:total_money=3*5.8+1.5*3.2+6*4.5#累加总计金额total_money_str=str(total_money)print('商品总金额为:',total_money,'元')pay_money=int(total_money)#进行抹零处理,int()转换为整数pay_money_str=str(pay_money)print('实收金额为:',pay_money_str,'元')运行结果如下:商品总金额为:49.2元实收金额为:49元字符串类型与数字类型的相互转化,需要注意如下问题:字符串类型要转换为数字类型。要求转换后的对象必须是数字,如果是纯粹的字符串对象则不能转换为数字。例如,字符串'应收账款'不能转换为数字,而'12'则可以。字符串类型转换为布尔型。空字符串返回False,否则返回True。基本输入和输出
【例1-7】使用input函数从键盘上接收应收账款坏账-坏账准备和其他应收账款-坏账准备金额,计算该公司的坏账准备。实现代码如下:#从键盘输入,注意接收的是字符串accounts_badDebt=input('请输入【应收账款-坏账准备】:')#从键盘输入,注意接收的是字符串other_bad_debt=input('请输入【其他应收账款-坏账准备】:')#使用eval函数将它们转换为数值后再相加bad_debt=eval(accounts_badDebt)+eval(other_bad_debt)#通过f-String形式将金额以货币形式显示print(f'该公司的坏账准备为:{bad_debt:.2f}元')运行结果如下:请输入【应收账款-坏账准备】:67498.6请输入【其他应收账款-坏账准备】:8390该公司的坏账准备为:75888.60元1.基本输入函数:input输入语句可以在程序运行时从输入设备获得数据。标准输入设备就是键盘。在Python中可以通过input函数取键盘输入数据。一般格式为:变量=input(<提示字符串>)input函数首先输出提示字符串,然后等待用户键盘输入,直到用户按回车键结束,函数最后返回用户输入的字符串(不包括最后的回车符),保存于变量中,系统继续执行input函数后面的语句。例如:money=input(‘请输入您的应收金额:’)系统会弹出字符串“请输入您的应收金额:”,等待用户输入,用户输入相应的内容并按回车键,输入内容将保存到name变量中。在Python3.x中,无论输入的是数字还是字符都将被作为字符串读取。如果想要接收数值,需要把接收到的字符串进行类型转换。例如,想要接收整型的数字并保存到变量money中,可以使用下面的代码:money=int(input("请输入您的应收金额:"))因此,如果需要将输入的字符串转换为其他类型(如整型、浮点型等),调用对应的转换函数即可。基本输入和输出
【例1-9】利用print函数输出语句示例。实现代码如下:print('资产负债表','利润表','现金流量表')print('资产负债表','利润表','现金流量表',sep=',')运行结果如下:资产负债表利润表现金流量表资产负债表,利润表,现金流量表上述两行输出是两个print函数执行的结果。我们可以看出,第一个输出项之间自动添加了空格,这是因为print函数的参数sep默认值为空格。如果希望输出项之间是逗号,则可以采用第二种输出方式。2.基本输出函数:print在Python中,使用内置的print函数可以将结果输出到IDLE或者标准控制台上。print函数的基本语法格式如下:print(<输出值1>[,<输出值2>,…,<输出值n>,sep=',',end='\n'])通过print函数可以将多个输出值转换为字符串并且输出,这些值之间以sep分隔,最后以end结束。sep默认为空格,end默认为换行。其中,输出内容可以是数字和字符串(字符串需要使用引号括起来),此类内容将直接输出,也可以是包含运算符的表达式,此类内容将计算结果输出。在Python中,默认情况下一条print函数语句输出后会自动换行,如果想要一次输出多个内容,而且不换行,可以将要输出的内容使用英文半角的逗号分隔。基本输入和输出3.字符串的格式化输出当希望按照指定的一种格式输出对应内容时,可以通过字符串格式化来完成。字符串格式化是指字符串本身通过特定的占位符确定位置信息,然后按照特定的格式将变量对象传入对应位置,形成新的字符串。字符串格式化主要有如下3种方法:(1)使用“%”格式化字符串通过format%values的形式传值,其中format是包含%规则的字符串,values是要传入的值,传值可通过位置、字典等方式实现。格式化字符串是一个输出格式的模板,模板中使用格式符作为占位符(即替换域)指明该位置上的实际值的数据格式,需要格式化的参数与模板中的格式符一一对应,执行结果就是将参数值代入格式化字符串,并按指定的格式符设置数据格式,最终得到一个新的字符串。常用的格式符及其含义如表所示。符号说明辅助功能%s格式化字符串*:定义宽度或小数位精度-:左对齐0:在数字前面填充o而非空格m.n:m是最小总位数,n是小数点后的位数%d格式化整数%f格式化浮点数字,可指定小数点后的精度%%格式化为百分号
【例1-10】使用“%”运算符设置格式输出数据。实现代码如下:year,quarter,money="2024年",3,168001.58print('%s第%d季度的银行存款余额:%.1f元'%(year,quarter,money))运行结果如下:2024年第3季度的银行存款余额:168001.6元上述print函数使用了格式化字符串,并设置了两个格式符,“%s”表示该位置是一个字符串,“%d”表示该位置是一个整数,year,quarter,money三个参数分别与%s、%d、%f相对应,即year被格式化为字符串,quarter被格式化为整数,money被格式化为一位小数的浮点数。基本输入和输出3.字符串的格式化输出(2)使用format()格式化字符串其基本规则是通过format(values)格式化,其中str是带有{}规则的字符串,values是要传入的值。使用format()格式化的规则与%相同。格式化字符串的作用也是一个输出格式的模板,模板中使用大括号“{}”作为占位符(即替换域)指明该位置上的实际值的数据格式。大括号内可以使用数字编号(从0开始)或关键字对应参数;否则,大括号的个数和位置顺序必须与参数一一对应。format()可通过多种方式灵活获取字符串对应的数值,具体使用方式如下:1)通过默认位置索引获取结果。如果后续的有序列表已经按照{}出现的顺序排列好,那么可省略其中的索引值。2)通过位置索引获取结果。位置索引就是通过{}中不同位置的索引获取对应的值。3)通过关键字获取结果。{}也支持通过关键字参数的方式获得结果,例如,{key}可以获取参数key对应的value值。【例1-11】使用format()设置格式字符串输出。实现代码如下:year,quarter,money="2024年",3,168001.58print('大括号方式:{}第{}季度的银行存款余额:{}元'.format(year,quarter,money))print('大括号+编号方式:{0}第{1}季度的银行存款余额:{2}元'.format(year,quarter,money))print('大括号+关键字方式:{a}第{b}季度的银行存款余额:{c}元'.format(a=year,b=quarter,c=money))运行结果如下:大括号方式:2024年第3季度的银行存款余额:168001.58元大括号+编号方式:2024年第3季度的银行存款余额:168001.58元大括号+关键字方式:2024年第3季度的银行存款余额:168001.58元基本输入和输出3.字符串的格式化输出format()提供了更强大的格式输出功能,在大括号内的数字格式符前面,可以加详细的格式定义。数字编号和格式定义之间用英文冒号“:”分隔,格式定义形式为:[对齐说明符][符号说明符][最小宽度][.精度][格式符]对齐说明符和符号说明符及其含义如表所示,最小宽度和精度均为整数。
【例1-12】分别对money进行左对齐、右对齐、居中三种形式输出。实现代码如下:money=18print('{0:<10.2f}\n'.format(money))print('{0:>10.2f}\n'.format(money))print('{0:^10.2f}\n'.format(money))运行结果如下:18.0018.0018.00符号描述对齐说明符<左对齐,默认用空格填充右边>右对齐^中间对齐符号说明符+总是显示符号,即数字的正负符号-负数显示-空格若是正数,前边保留空格,负数显示-基本输入和输出
year,quarter,money="2024年",3,168001.58print('year={0},money={1:.1f}'.format(year,money))#可以表示为print(f'year={year},money={money:.1f}')运行结果如下:year=2024年,money=168001.6year=2024年,money=168001.6(3)使用f-strings格式化字符串格式化的字符串常量(formattedstringliterals,f-strings)使用f或F作为前缀,表示格式化设置。f-strings方式只能用于Python3.6及其以上版本,它与format()类似,但形式更加简洁。运算符和表达式1.运算符Python是面向对象的编程语言,对象由数据和行为组成,运算符是表示对象行为的一种形式。运算符用于执行程序代码运算,会针对一个以上操作数来进行运算。Python支持算术运算符、关系运算符、逻辑运算符以及位运算符,还支持特有的运算符,如成员测试运算符、集合运算符、同一性测试运算符等。某些运算符对于不同类型数据具有不同的含义和操作,比如“+”对于数值类型和字符串类型操作就不同,前者表示相加,后者表示连接。算术运算符是处理四则运算的符号,在数字的处理中应用得最多。比较运算符,也称为关系运算符,用于对变量或表达式的结果进行大小、真假等比较,如果比较结果为真,则返回True;如果为假,则返回False。比较运算符通常用在条件语句中作为判断的依据。关系运算符可以连用。逻辑运算符是对真和假两种布尔值进行运算。逻辑运算符的运算结果为布尔值(True、False)。运算符and和or具有惰性求值的特点,连接多个表达式时只计算必须要计算的值。所谓惰性求值就是从左到右进行计算时,只要当前运算符能得到确定结果就不再计算下去。例如,如果and运算符左边的表达式值为False时,and运算的结果一定是False,所以就没必要对右边的表达式求值;只有当左边的表达式值为True时,才会对右边的表达式求值。这就叫惰性求值。成员测试符是指测试一个对象是否为另一个对象的元素,结果为布尔值(True或False)。同一性测试符是指测试是否为同一个对象或内存地址是否相同,结果为布尔值(True或False)。运算符和表达式1.运算符表中显示了7种运算符及其功能。在Python中进行数学计算时,与我们学过的数学中的运算符优先级是一致的。先乘除后加减,同级运算符是从左至右计算,可以使用括号调整计算的优先级。Python运算符的优先级顺序:从左往右看,括号优先算,先乘除后加减,再比较,后逻辑。如1+4>7+2and5+8>3+6计算次序依次是算术运算、关系运算、逻辑运算。即先进行算术运算得到5>9and13>9;再进行关系运算得到FalseandTrue;最后进行逻辑运算得到False。为了增强代码的可读性,可合理使用括号。此外,Python还支持形如3<6<9的表达式,它等价于表达式:3<6and6<9。赋值运算符主要用来为变量赋值。使用时,可以直接把基本赋值运算符“=”右边的值赋给左边的变量。右边也可以是一系列的运算表达式,此时先进行表达式运算,然后将运算结果再赋值给左边的变量。在实际开发时,经常会遇到将一个变量的值加上或者减去某个值,再赋值给该变量的情况,如sum=sum+n。对于这样的式子可以通过复合赋值运算符进行简化,简化后为sum+=n。这里的“+=”就是复合赋值运算符。运算符功能+、-、*、/、%、//、**算术运算:加、减、乘、除、取模、整除、幂=、+=、*=赋值运算符和复合赋值运算符<、<=、>、>=、!=、==关系运算:小于、小于等于、大于、大于等于、不等于、等于and、or、not逻辑运算:逻辑与、逻辑或、逻辑非&、|、^、~、<<、>>位运算:位与、位或、位异或、取反、左移位、右移位is、isnot对象同一性测试符in、notin成员测试运算符运算符和表达式2.表达式表达式是使用运算符将变量、常量、函数等运算对象按照一定的规则连接起来的式子,表达式经过运算得到一个确定的值。例如,str_number01,str_number02=str_number02,str_number01#实现两个数原地交换表达式中运算符优先级的规则为:算术运算符的优先级最高,其次是位运算符、成员测试运算符、关系运算符、逻辑运算符等。为了避免优先级错误,最好使用圆括号明确表达式的优先级,同时也能提高代码的可读性。【例1-13】运用输入输出函数和基本运算符,开发简单定期存款计算器。实现代码如下:#简单定期存款计算器print("-----定期存款本息计算器-----")#获取用户输入(字符串类型需要转换为数值)principal=float(input("请输入本金金额(元):"))#本金输入annual_rate=float(input("请输入年利率(%):"))/100#百分比转小数years=int(input("请输入存款年限:"))#整数年份#计算利息和本息合计(使用基本运算符)interest=principal*annual_rate*years#利息=本金×利率×时间total=principal+interest#本息合计#格式化输出结果(带千位分隔符)print("\n计算结果:")print(f"本金:{principal:,.2f}元")print(f"年利率:{annual_rate*100:.2f}%")#转回百分比显示print(f"存款期限:{years}年")print("━"*30)#分隔线print(f"到期利息:{interest:,.2f}元")print(f"本息合计:{total:,.2f}元")运行结果如下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GAT 760.5-2008公安信息化标准管理分类与代码 第5部分:制定修订方式代码》专题研究报告深度
- 2026年深圳中考语文压缩语段专项试卷(附答案可下载)
- 2026年深圳中考英语期末综合测评试卷(附答案可下载)
- 山东省青岛市市北区2026年九年级上学期期末考试物理试题附答案
- 禁毒相关题目及答案
- 2026年深圳中考数学圆的切线专项试卷(附答案可下载)
- 大学生信息技术培训课件
- 临终患者的心理社会支持
- 第14课《红烛》(教学设计)高二语文+拓展模块下册(高教版2023年版)
- 产科围手术期产后焦虑护理
- JGT138-2010 建筑玻璃点支承装置
- 垃圾清运服务投标方案(技术方案)
- 颅鼻眶沟通恶性肿瘤的治疗及护理
- 光速测量实验讲义
- 断桥铝合金门窗施工组织设计
- 新苏教版六年级科学上册第一单元《物质的变化》全部教案
- 四川山体滑坡地质勘察报告
- 青岛啤酒微观运营
- 工程结算书(设备及安装类)
- GB/T 19142-2016出口商品包装通则
- 高桩码头施工组织设计-图文
评论
0/150
提交评论