版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第三章算法的程序实现1.Python是一种面向对象、解释型的计算机程序设计高级语言,其语法简洁清晰,方便对数据进行组织和处理使用Python语言编程解决问题时,需要严格遵守Python语言的语法规则,并选择合理的程序运行环境运行程序。用于编写Python程序的IDE较多,如IDLE、Spyder、Wing、PyCharm等。数据按照其本身特征可以分为若干种不同的类型,常见的Python基本数据类型如图3.1所示图3.1Python的基本运算包括算术运算(图3.2)、关系运算(图3.3)和逻辑运算(图3.4)三大类。Python中的算术运算存在着优先级顺序,优先程度最高级别为1,级别数字越大,优先级越低。在同一个表达式中,如果有一个及以上的运算符,那么先执行优先级高的运算,同优先级的基本运算按照自左向右的顺序执行图3.2关系运算符中in"运算符用来检查一个值是否包含在指定的序列中,例如“a”in“aaa”为True,”b”in“aaa”为false。注意in运算符要求符号左右两边都是字符型。例如3in333左右两边都是数值型,就会报错图3.3(关系运算符)逻辑运算符经常用于描述复杂情况的判断。图3.4(逻辑运算符)程序设计时,有些数据是未知或可变的,为了更灵活地使用这些数据,可以使用变量来存储。为了能对变量进行访问,需要对变量进行命名。变量名作用c、cnt、count统计个数cur当前f、flag标识i,j循环变量n、num数量p位置(当前)pre上一个q位置(上一个)r、res结果s、str字符串t、temp临时变量Python变量命名要求:1.不能是数字开头、2.不能是系统关键字、3.不能重复、4.不能有特殊字符(下划线_除外)。Python变量命名规范:在正常开发中,我们对变量命名一般有两种方法,一种是匈牙利命名法(将单词中的元音字母去除)例如count简写成cnt,另一种是驼峰规则(首字母大写)例如用户数量UserCount在实际解题中,部分题目也会使用拼音首字母(例如用户数量:yhsl)或者拼音首字母+匈牙利命名法实现(例如用户数量:yhcnt)常见变量名详见上表字符串(String)和列表(List):字符串、列表中的元素都是通过索引来定位的。如图3.5所示,第一个元素的索引是0,第二个元素的索引是1,以此类推不断递增(图3.5)。图3.5字符串或列表中的元素可以通过索引进行访问,如图3.6所示:图3.6字典和列表类似,可包含多个元素。字典中的每个元素包含两部分内容:键和值。键通常用字符串或数值来表示,值可以是任意类型的数据。键和值两者一一对应,且每个键只能对应一个值。键和值在字典中以成对的形式出现,并以如下方式标记:d={keyl:valuel,key2:value2,…}。键-值对用冒号分隔,各个对之间用逗号分隔,所有这些都包括在花括号“{}"中。字典中的元素是没有顺序的,引用元素时以键为索引。注释:注释就是对代码的解释和说明,其目的是让人们能够更加轻松地了解代码。注释是编写程序时,写程序的人给一个语句、程序段、函数等的解释或提示,能提高程序代码的可读性。注释只是为了提高可读性,不会被计算机编译。Python中注释标识符为#,例图3.7图3.7常见内置函数见下表(下表中s:字符串,f:实数,i:整数,[]:数组)函数名样例备注函数名样例备注Int(s)Int(“3”)将String型整数转为Int型Len([])Len(“1”)字符串数组的长度Int(f)Int(3.9)取整Round(f,1)Round(2.1,1)四舍五入保留n位Float(s)Float(“3.9”)将String型实数转为Float型Max([])Max([1,2,3])求数组中的最大值Float(i)Float(3)将int型实数转为Float型Min([])Min([1,2,3])求数组中的最小值Str(f)Str(3.9)将Float型实数转为String型Sort([])Sort([1,2,3])对数组进行排序Str(i)Str(3)将Int型整数转为String型Abs(i)Abs(1)取绝对值Ord(s)Ord(“A”)字符转为ASC码Print()Print(“A”)输出函数,Chr(i)Chr(65)ASC码转为字符Input()Intpu()输入函数,返回字符串数据结构字典的内置函数(表3.1)假设有一个字典型变量dic={"书名":"满分计划","作者":"陶小波"}方法名示例说明cleardic.clear清空字典变量getdic.get(“书名”)根据key得到值updatedic.update({“页数”:”100”})往字典内添加一项/dic[“书名”]根据key得到值/dic[“书名”]=”必考满分”如果字典中有该Key,则会更新对应的Value值,即dic={"书名":"必考满分","作者":"陶小波"}/dic[“版本”]=1如果字典中有没有该Key,则会增加对应的键值对,即dic={"书名":"必考满分","作者":"陶小波",“版本”:1}popdic.pop(“书名”)传入键删除。表3.1数据结构列表的内置函数(表3.2)假设有一个列表型变量ls=["满分计划",1234567,true]方法名示例说明结果appendls.append(“陶”)向列表中追加一项ls=["满分计划",1234567,true,”陶”]countls.count(“满分计划”)统计列表中某项的数量1indexls.index(‘满分计划’)指定内容在列表中的位置0popls.pop(1)删除指定项ls=["满分计划",true,”陶”]sortls.sort()排序,默认升序insertls.insert(1,"张")插入到指定位置['满分计划','张',1234567,True]表3.2数据类型字符串的内置函数假设有字符串s=”thisisningboiszhenhai”方法名示例说明结果splits.split(“”)根据指定符号分割,如不传入参数,即s.split()等价于s.split(“”)['this','is','ningbo','is','zhenhai']uppers.upper()将所有字母转换为大写THISISNINGBOISZHENHAIlowers.lower()将所有字母转换为小写thisisningboiszhenhaicounts.count(“is”)获取指定字符在字符串中出现的次数3strips.strip()去掉字符串中最后的\n(回车)thisisningboiszhenhai分支结构:If语句常见有4种结构。详见下表if条件:ifx==1:执行代码print(“1”)说明:只有一个分支的情况,条件满足执行代码if条件:ifx==1:代码1print(“1”)else:else:代码2print(“2”)说明:有两个分支的情况,条件满足执行代码1条件不满足执行代码2if条件1:ifx==1:代码1print(“1”)elif条件2:elifx==2:代码2print(“2”)说明:有两个分支的情况,条件1满足执行代码1条件2满足执行代码2if条件1:ifx==1:代码1print(“1”)elif条件2:elifx==2:代码2print(“2”)else:else:代码3print(“3”)说明:有两个分支的情况,条件1满足执行代码1条件2满足执行代码2,两个都不满足执行代码3循环结构for循环格式:for变量名inrange(初始值,终止值,步长):其中循环范围为[初始值,终止值)。当步长为1的时候可以不写例如求10!x=1Foriinrange(2,11):x=x*ifor循环(遍历)格式:for变量名in变量:其中变量需要是数组、字符串等例如:x=”123”Foriinx:Print(i)结果:123while循环格式while循环条件:条件满足进入循环,条件不满足退出循环例如求10!x=1cnt=1Whilecnt!=10:x=x*cntcnt=cnt+1其他循环结构其他写法(for):foriinrange(10):print("a")没有break,for循环结束后else:会执行else之后的代码print("b")即print(“b”)foriinrange(10):print("a")有break,for循环结束后break不会执行else之后的代码else:print("b")字符串和列表取值范围:假设有字符串s=”满分计划是由陶小波编写的”。代码结果说明s[0]“满”取字符串/列表的第一个s[0:2]“满分”从字符串第0个取到第1个(注意:[0,2],左边是闭区间,右边是开区间)s[0:]“满分计划是由陶小波编写的”取字符串/列表的所有值s[0::]“满分计划是由陶小波编写的”取字符串/列表的所有值s[::1]“满分计划是由陶小波编写的”取字符串/列表的所有值s[::1]“的写编波小陶由是划计分满”取反字符串s[::2]“满计是陶波写”间隔两位取值表3.3部分特殊代码列表代码等价代码说明a=b=0a=0b=0定义变量a,b=0,1a=0b=1定义变量a,b=b,aa=a+bb=aba=aba,b两变量值交换ls=input().split(",")k=[int(i)foriinls]/将字符串型的列表转换为数值型,并赋值给kPrint("%.2f"%123.45678)/浮点数四舍五入输出,2f表示保留两位小数Print("%.2d"%1)/按格式输出,2d表示两位,位数不足,值前面补0Print(num,end="")end="",表示将print()函数的结束值设置为一个空格,这样下一次对print()的调用结果将会从空格右边开始。(即不换行)Python自定义函数1)函数代码块以
def
关键词开头,后接函数标识符名称和圆括号()。2)任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。3)函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。4)函数内容以冒号起始,并且缩进。5)return[表达式]
结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None样例如下表所示def方法名(参数列表):return结果自定义函数格式defpra(x):Ifx%2==0:returnTrueelse:returnFalse自定义函数样例Python第三方库导入方法。导入方法1Import库名导入整个库导入方法2Import库名as别名导入整个库,并定义别名导入方法3From库名import方法名导入库中的某些方法常见Python第三方库库名备注Random随机数Math数学包Pandas数据分析Matplotlib绘图工具Python文件读写。其中open函数需要传入两个参数,第一个是文件路径,第二个是方法其中r:表示读入,w:表示覆盖写入,a+:表示追加写入。假设有1.txt文件#一次性输出所有值f=open("1.txt","r")print(f.read())#f.read():#读取全部f.close()#关闭文件流#覆盖写入值f=open("1.txt","w")print(f.write("11111"))#f.write()#写入全部f.close()#关闭文件流#循环输出每一行f=open("1.txt","r")Forlineinf.readlines():Print(line.strip())#循环输出每一行,并去掉末尾\nf.close()#关闭文件流#追加值f=open("1.txt","a+")print(f.write("11111"))#f.write()#写入全部f.close()#关闭文件流随机数(Random)方法(下表中的Ls为:Ls=[1,2,3,4])方法名说明使用样例randint生成指定区间内的随机数整数random.randint(1,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丰台区危化品货代合同模板
- 企业短期借款合同范例
- 旅游供应商合同范例
- 双减政策下校外培训机构治理长效机制研究
- SPA行业经济效益和社会效益分析
- 互联网监管和网络道德建设-试题和答案
- 2024正规劳动合同范本正规劳动合同模板
- 2024企业并购合同
- 2024建设工程造价咨询合同(示范文本)
- 2024关于工程承包合同
- 海南省海口市2023-2024学年九年级上学期期末语文试题B卷(解析版)
- 2024年度生产设备操作安全协议
- 第5课用发展的观点看问题2023-2024学年中职高教版2023哲学与人生
- 2021大学生个人职业生涯规划书6篇
- 《心灵的色彩》课件-2024-2025学年人美版(2024)初中美术七年级上册
- 2020年江苏徐州中考满分作文《当你需要时有我》4
- 设备技术员年终工作总结
- 2023电化学储能电站消防安全标准铅炭电池(铅酸电池)
- 2024年比特币投资项目发展计划
- 农业行业:农业众筹模式推广方案
- 成人手术后疼痛评估与护理-中华护理学会团体标准2023 2
评论
0/150
提交评论