收藏 分销(赏)

Python笔记(DOC).doc

上传人:快乐****生活 文档编号:4894689 上传时间:2024-10-17 格式:DOC 页数:19 大小:510.55KB
下载 相关 举报
Python笔记(DOC).doc_第1页
第1页 / 共19页
Python笔记(DOC).doc_第2页
第2页 / 共19页
点击查看更多>>
资源描述
笔记 简介:面向对象、解释型语言,特点:语法简洁而清晰、丰富和强大的类库、能够轻松的联结其他语言,用于三种场合:shell实现工具(不适合)、控制语言(将其他程序编写的库,通过Python调用,作为一种胶水语言)、框架,解释器:字节码(bytecode) Python的实现:原始的实现方式(CPython)、用于与java语言集成的实现(Jython)、用于与.net框架集成的实现(IronPython) Python程序分为:模块、语句、表达式、对象 1) 程序有模块构成 2) 模块包含语句 3) 语句包含表达式 4) 表达式建立并处理对象 面向过程:以指令为中心,由指令处理数据,如何组织代码解决问题 面向对象:以数据为中心,所有的处理代码都围绕数据展开,如何组织数据结构(或者如何设计数据结构组织数据,并提供对此类数据允许处理操作) 数据结构:Python最基本的数据结构是序列,序列中每一个元素都被分配一个序号(索引),从0开始,Python中包含6种内建的数据序列:列表、元组、字符串、Unicode字符串、buffer对象和xrange对象、缓冲区。例如,list[a,b]:从索引a开始到b-1结束,索引位置从0开始 基本数据类型: 1) Integral:整型(不可变)和boolean 2) 浮点型:浮点数和复数和十进制数字 3) 字符串:不区分单引号和双引号(不可变) 4) 序列类型:列表[可变]:可直接修改内容,id不会改变,但是变得是变量名的引用、元组(不可变)。实质上,列表和元组并不真正存储数据,而是存放对象引用 调用方法type可知道变量的类型,例如,type(num) 1. 运算符 1) 算术运算符:加减乘除、取余、取商、幂计算 注意:/与//的区别:在类型是float与double类型时,/是全计算,//是取商(与java不一样);不能使用++,---操作 2) 逻辑运算符:与and 或 or非 not,is(判断is左右两边引用是否相等) 3) 比较运算符:大于、小于、不等于、等于 4) 赋值运算符:=、+=、-= 5) 优先级:幂、乘除、取余、取商、加减、比较 2. 基本语法 赋值:x=2 输出:print ‘hello’ 3. 布尔类型 在进行运算时,True 就表示1,False表示0,none表示0 例如,print True+1输出1;print False*3输出0 4. 算法的三大结构:顺序、判断、循环 5. Python的控制流语句 :if、while、for…in、try if语句 例子, a =3 b = 2 c =1 if a>b: t = b b = a a = t if a>c: t = c c = a a = t if b>c: t = c c = b b = t print a,b,c while循环:break:跳出当前循环 彻底终止循环;continue:continue之后的代码不执行,然后继续下一次的循环 注意:a 如果小于0的时候FALSE,终止while循环 for 循环:for 变量名 in 范围: print 变量名 例如:list=[‘1’,’2’,’1’,’2’] 习题:1).使用for循环实现1到1000的数字之和; 2).统计字符串str='idfalksdjfldkjieakdsfnakdsfreikndkfnaskfdeuwhfrkdnfaksdnfkasdhfurehfkndfkasyurplldsnkjdlfkajdfjldskjflsadjfldskjfirejfakdsflsajfdlkasjdflkjadjfalkjfkasdjfiajefoijaewlkjflksadjfklajdfklajlfdjaldfjalksjfladjfldfjsadkfjsalkjflafjaljflasdj'中a到z的个数。 3).PokerGame中的买牌 def buynewpoker(): color= ['红桃','黑桃','梅花','方片'] value=['A','1','2','3','4','5','6','7','8','9','10','J','Q','K'] wangpai=['大王','小王'] list=[] list.append(wangpai[0]) list.append(wangpai[1]) for i in range(len(value)): for j in range(len(color)): list.append(color[j]+value[i]) return list 4).洗牌 import random def washpoker(list): reslist=[] count=0 while count<len(list): a=random.randint(0,53) if list[a] not in reslist : reslist.append(list[a]) count+=1 for m in reslist: print m return reslist washpoker(list) 5) .摸牌 def grouppoker(list): obj=[] list1=[] list2=[] list3=[] list4=[] for i in range(17): list1.append(list[3*i]) list2.append(list[3*i+1]) list3.append(list[3*i+2]) for j in range(51,54): list4.append(list[j]) obj=[list1,list2,list3,list4] for m in range(len(obj)): for j in range(len(obj[m])): print obj[m][j] print "-------------" return grouppoker(washpoker(list)) 6) 叫牌: 1. 将摸好的牌随机分给三个玩家 2. 叫地主:传过来的玩家名字,将底牌分配给他 7)1000以内的完数 count=0 for i in range(2,1001): sum=0 for j in range(1,i): if i%j==0: sum +=j if i==sum: count+=1 print count 8)1,2,3,4组成不重复且数字也不重复的三位数 count=0 for i in range(1,5): for j in range(1,5): for k in range(1,5): if i!=j and i!=k and j!=k: count+=1 print i,j,k print count 6. 输入与输出:input()/raw_input()与print语句 格式化输出:print ‘String %format1 %format2 ’ %(variable1,variable,…)例如,num = 7.9 print ‘the num is %f’ %num/print ‘the num is %d’ %num 7.常用函数: dir([obj]):显示对象属性,如果没有提供参数,那么显示全局变量的名字 help([obj]):显示对象文档 len(obj):返回对象长度 range():返回一个整数列表,从0开始 range(a,b):返回从a开始到b-1的列表,range(a,b,c):c是步长 int(obj):转成int类型 str(obj):转成字符串类型 type(obj):返回对象类型 append(obj):给列表添加一个元素 extend([obj]):参数中的列表添加到自身列表的末尾 insert(a,b):从索引值为a的位置添加一个元素b,所以list.insert(0,x)相当于list.append() remove(x):删除列表中第一个值为x的函数,如果没有,那么这个函数就会执行报错。 pop(i):删除列表指定位置的元素并返回它。i表示这个参数是可选的,如果不输入,将删除最后一个元素并返回 index(x):返回第一次出现x元素的索引值 count(x):统计元素x的个数 reverse():反转列表中的元素 random.randint: random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b random.uniform: random.uniform的函数原型为:random.uniform(a, b),用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: a <= n <= b。如果 a <b, 则 b <= n <= a。 random.random random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0 in 或者 not in 在python中可以通过in和not in关键字来判读一个list中是否包含一个元素,例如, theList = ['a','b','c'] if 'a' in theList: print 'a in the list' 练习: 1.List=['a','c','s','a','a','m','n','c','d','r','y','t','f','u','r','e','z','h','v','v','d','v','n','q'] 1)列表不适用reverse函数 实现反转 2)列表使用reverse函数进行反转后 倒序(从z开始到a)统计 列表中各个字母数量总数如 z 15……………… a 12 3)按照统计的大小输出 答:1)list =['a','c','s','a','a','m','n','c','d','r','y','t','f','u','r','e','z','h','v','v','d','v','n','q'] for i in range(1,len(list)+1): print list[-i] list =['a','c','s','a','a','m','n','c','d','r','y','t','f','u','r','e','z','h','v','v','d','v','n','q'] #for i in range(1,len(list)+1): # print list[-i] list.reverse() test=['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] test.reverse() for j in test: print j,list.count(j) 3)list=['a','c','s','a','a','m','n','c','d','r','y','t','f','u','r','e','z','h','v','v','d','v','n','q'] countnum=[] for i in range(97,123): #print list.count(chr(i)) countnum.append(list.count(chr(i))) print countnum orderchr=[] for i in range(max(countnum)+1): for j in range(97,123): if list.count(chr(j))==max(countnum)-i:#根据统计进行字母排序 orderchr.append(chr(j)) print orderchr 2.冒泡排序 def maopao(list): temp=0 for i in range(0,len(list)-1): for j in range(0,len(list)-1-i): if list[j]>list[j+1]: temp = list[j+1] list[j+1]=list[j] list[j]=temp return list 8.python语句和语法 标识符:大小写敏感 Python关键字列表和iskeyword() 错误:expected an indented block;解决:首行缩进4个字符 9.模块 debugger:pdb允许断点调试,检查堆栈,还支持事后调试 logger:loggging分紧急、错误、警告、信息、调试五级日志 10.对象 三个特征:身份(对象的内存地址)、类型(type()查看对象类型)、值(数据项) 所有的对象都有boolean值 对象身份的比较: is/is not 用来比较两个别名是否引用同一个对象 内建模块:dir(__builtins__):两个下划线 help(关键字),例如help(str) 在方法体中使用space空格键控制代码对齐 callable()可用于测试函数是否可调用 自动载入内置模块:import,导入一个模块后,可以使用模块名.方法名的形式,避免与内置模块中的方法冲突 不支持的类型有:char、byte、pointer 11.数字 1)支持的数字类型:整型、长整型、布尔类型、双精度浮点型、十进制浮点型和复数 2)整型: 布尔类型:True和False 标准整数类型:0x:十六进制;无前缀:十进制;0:八进制;0b:二进制 3)双精度浮点数: 4)复数 5)布尔数: 是整型的子类,但是不能被继承而生成它的子类,对于值为0的任何数字或空集(list、tuple、dict)中值都是false,数学运算中,True==1,False==0 12.序列:列表、元组和字符串 12.1适用操作符: 成员关系操作符:in、not in 连接操作符:+ 重复操作符:*….sequence* int 切片操作(利用子序列结合三种操作方式,可以非常灵活的控制序列): 1)索引取值[] 2)索引范围取值[start,end] 3)步长切片[::step] 12.2常用一些方法 List.Extend、list.insert 12.3类型转换: 12.4格式化输出 字典:’%(key)format’ %dict 注意:要输出带有小数位的,一定要注意是print ’%1.4f’ %(1.0/3),里面的数一定要有一个是带有小数位的---可能和版本有关 12.5传参 可变参数:*为位置可变,可以将序列参数转变成每个元素作为单独参数,**为关键字可变,可以将字典转换乘关键字参数 13映射和集合类型 13.1字典 字典的键必须是可哈希的,判断又没有key用in或not in 13.2元组删除 13.3比较 标准类型操作符:<,>等比较操作符可以使用,实际上还是调用了cmp方法,该方法中首先比较字典长度,比较键的大小,最后比较值得大小;查找用dict[],成员关系用in,not in 14.文件和输入输出 14.1文件:是连续的字节序列; 14.2 文件的操作: file_object =open(filename,access=’r’,buffering=-1)权限:r,w,a表示读取,写入,追加,+代表可读可写;buffering表示缓冲区大小,0表示不缓冲,1表示只缓冲一行数据,其他大于1的值表示使用定值作为缓冲区大小,不提供该参数或者给定负值代表使用系统默认的缓冲机制 file()与open()类似,但是一般推荐用open,除非处理特定的文件,使用file()内建函数 使用U模式打开时,换行符通常会被替换为newline(\n) read(size=-1):读取字节到字符串中,最多读取给定数目个字节,不指定size参数,或者size为负数,文件会被读到末尾; readlines(size=-1):参数size类似read,指定其他值的size,读取size个字节 close() 15.Python过程式编程: 15.1语句与语法 注释、续行(单一语句换行\ or ’’’)、代码组(缩进相同为同一代码块)、模块(导入时要放在特定路径下) 15.2标识符 第一个字符只能是字母或下划线,余下的字符可以是字母、数字、下划线,区分大小写;注:不能使用关键字,尽量避免内建模块中的关键字 15.2基本风格 注释、文档、缩进(4个字符)、标识符名称 15.3命名惯例 15.4主程序 注意:所有的模块都有能力执行代码;最高级别的语句(没有缩进的语句)在模块被导入的时候都会被执行,无论是否需要,因此妥当的做法是除了那些真正需要执行的代码,所有的功能代码都通过函数建立,所以仅在主程序模块中编写大量的顶级可执行代码,被导入的模块只应该存在较少的顶级执行代码
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服