- 博客(20)
- 资源 (3)
- 收藏
- 关注
原创 python的面向对象系统中object和type之间的关系
Python中所有东西都是对象,比较特殊的是:object和type是python中的两个源对象,它们是互相依赖对方来定义,不能分割来说,就如同讨论“先有鸡还是现有蛋”,一样让人蛋疼。先介绍有两个黑魔法在后面要用到:obj.__bases__ 指这个对象的父类,就是说从谁继承来的。obj.__class__ 指这个对象的类型,类的类型是typePython的面向对象系统有两条线索。...
2018-09-07 11:43:17
616
原创 Python os.walk 遍历指定深度的方法
用os.walk可以遍历多层目录,但是有时需要只遍历指定层数目录。比如,要获取某个目录的1级和2级子目录。可以用下面的方法。# -*- coding: UTF-8 -*-# Python 3.6import osdef get_sub_dirs(root_path): root_depth = len(root_path.split(os.path.sep)) c
2018-02-03 00:05:30
10953
1
原创 Python 求最小公倍数和最大公约数的递归写法
# 最小公倍数def lcm(a, b, c=1): if a * c % b != 0: return lcm(a, b, c+1) else: return a*ctest_cases = [(4, 8), (35, 42), (5, 7), (20, 10)]for case in tes
2017-12-22 17:31:12
3275
2
原创 蓝桥杯--数字排列的Python解法
今有7对数字:两个1,两个2,两个3,...两个7,把它们排成一行。要求,两个1间有1个其它数字,两个2间有2个其它数字,以此类推,两个7之间有7个其它数字。如下就是一个符合要求的排列:17126425374635当然,如果把它倒过来,也是符合要求的。请你找出另一种符合要求的排列法,并且这个排列法是以74开头的。注意:只填写这个14位的整数,不能填写任何多余的内
2017-12-06 17:17:00
2553
原创 Python如何导入非.py扩展名的第三方模块文件。
例如:我一个模块文件,扩展名是txt,放在硬盘上任意一个目录。要导入怎么办?我测试的结果是导入不用.py或.so扩展名字的模块文件会非常麻烦。唯一可行的方法是这下面这样。>>> print(open('d:/Temp/my_module.txt').read())def foo(): print('foo') >>> import importlib.u
2017-11-30 10:36:36
3292
1
原创 Python eval 函数的滥用
有这样一个问题大概意思就是定义一个函数,清理一个嵌套list中的字符串数据,按照对应可以解析的数据类型进行转换。正常情况下,大多数人的方法可能是用 try int,float, 加 if 判断,但是写起相当麻烦这里用eval函数实现起来却非常省事。def clean_data(data): for sub_list in data: for
2017-11-02 22:46:30
2212
原创 约瑟夫环问题用Python的解法
约瑟夫环(约瑟夫问题)是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。一排人,编号从1开始到17.所有人按序围成一个圈,从编号1开始,挨个报数,从1开始,报到3则出局,然后再次从1开始报数,直到只剩下一个人,请问最后留
2017-11-01 22:31:54
2352
1
原创 《程序员面试题精选》05.输出一个字符串的所有子串
题目:给定一个字符串,输出其所有子字符串,例如给定字符串abc,则输出 :a,b,c,d,ab,bc,cd,abc,bcd,abcd。用递归的思路就是先找所有以a开头的子串,然后再找以b开头的子串,直到d。其实用python解决非常省事,见下面的代码。注意python有默认递归1k层的限制,换成递推的写法也可以。#!/usr/bin/env python# -*- coding: utf-8 ...
2017-10-31 10:27:38
1246
原创 python重复list中元素中的字母次数
例如实现以下的情况:words = ['hello', 'exercise', 'with', 'words']repeat_letter(words, [4, 2, 10, -2], 3)#得到 ['helloooo', 'exeeeercise', 'with', 'wordddds']def repeat_letter(words, positions
2017-10-19 15:45:11
812
原创 写一个函数,检测输入的数字旋转180度后是否相等,比如619旋转后还是619.
用递归的方法很容易实现:#coding=utf-8def turnover(n): if len(n) == 0: return True elif len(n) == 1: return n in '018' elif (n[0]==n[-1] and n[0] in '018') \ or n[0]+n[
2017-10-12 23:34:40
1475
1
原创 Python中sum函数的详细用法说明
#!/usr/bin/env python# -*- coding: utf-8 -*-# sum的最常见用法计算一个序列的累加和print(sum([1, 2, 3]))# 6# # sum 函数原型是 sum(iterable, start), 还可以给个初始值print(sum([1, 2, 3], 10))# 16# 另外一个比较Hack一些的用法, 展开2层的嵌套列
2017-09-28 09:39:16
14526
原创 全面深入彻底理解Python切片操作【原创】
全面深入彻底理解Python切片操作【原创】我们基本上都知道Python的序列对象都是可以用索引号来引用的元素的,索引号可以是正数由0开始从左向右,也可以是负数由-1开始从右向左。在Python中对于具有序列结构的数据来说都可以使用切片操作,需注意的是序列对象某个索引位置返回的是一个元素,而切片操作返回是和被切片对象相同类型对象的副本。如下面的例子,虽然都是一个元素,但是对
2017-08-31 00:17:20
54087
4
原创 Python函数式编程解决单词中字符频统计问题
就是输入一个单词比如“science”,最后返还的结果是[ 'c','e'], 2/7。大意就是在这个单词中一共有两个字母重复的频率最高,分别是c和e,这个highest relative frequency是2/7>>> func=lambda w: '{0},{1[0]}/{2}'.format(*zip(*filter(lambda x:x[1]>1, __import__('c
2017-08-29 00:39:03
510
原创 python实现对指定字符串补足固定长度倍数分组输出
# 把一个字符串按给定长度拆分; # 长度不是给定长度整数倍的字符串在后面补数字0。from textwrap import wrapwidth = 8text = 'urivthvtlqqerctlxmjvkgvfclaaduwmaadedpadanl'print '\n'.join(wrap(text + '0'*(width-len(text) % width), w
2017-08-05 22:36:39
1793
原创 如何把一个8位的时间类型字符串(“2017-08-04”)存进一个定长为3的byte数组中
如何把一个8位的时间类型字符串(“2017-08-04”)存进一个定长为3的byte数组中?大概的思路是这样的3个byte共24bit日 1-31,用 5 bit月 1-12 用 4 bit年 0000-9999 用剩下 15 bitimport textwrap date = '2017-08-04'date_element = map(int, date.spl
2017-08-04 18:46:57
576
原创 Python 将一个正整数分解质因数
遇到一个Python编程联系题目:将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。#!/usr/bin/env python# -*- coding: utf-8 -*-def div_func(n): result = [] while True: for i in xrange(2, int(n**0.5) + 1):
2017-01-03 00:23:02
8585
AJAX校内数码相册
2014-08-27
敏捷软件开发
2014-08-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人