-
Python利用带权重随机数解决抽奖和游戏爆装备问题
所属栏目:[Python] 日期:2020-12-16 热度:164
关于带权随机数 为了帮助理解,先来看三类随机问题的对比: 1.已有n条记录,从中选取m条记录,选取出来的记录前后顺序不管。 实现思路:按行遍历所有记录,约隔n/m条取一个数据即可 2.在1类情况下,还要求选取出来的m条记录是随机排序的 实现思路: 给n条记[详细]
-
详解Python中 __get__和__getattr__和__getattribute__的区别
所属栏目:[Python] 日期:2020-12-16 热度:98
引子 假设我们有个类A,其中a是A的实例 a.x时发生了什么属性的lookup顺序如下: 如果重载了__getattribute__,则调用. a.__dict__,实例中是不允许有descriptor的,所以不会遇到descriptor A.__dict__,也即a.__class__.__dict__ .如果遇到了descriptor,优先调用de[详细]
-
浅谈Python中chr、unichr、ord字符函数之间的对比
所属栏目:[Python] 日期:2020-12-16 热度:98
ord是unicode ordinal的缩写,即编号 chr是character的缩写,即字符 ord和chr是互相对应转换的. 但是由于chr局限于ascii,长度只有256,于是又多了个unichr. c = u'康'cu'u5eb7'ord(c)24747chr(24247)ValueError: chr() arg not in range(256)unichr(24247)u'u[详细]
-
Python构造自定义方法来美化字典结构输出的示例
所属栏目:[Python] 日期:2020-12-16 热度:190
示例: 复制代码 代码如下: d = { "root": { "folder2": { "item2": None,"item1": None },"folder1": { "subfolder1": { "item2": None,"subfolder2": { "item3": None } } } } 美观输出是: 观察一下特点: 1.同一level的key左对齐,即indent相同。 2.在,号[详细]
-
Python中的多行注释文档编写风格汇总
所属栏目:[Python] 日期:2020-12-16 热度:139
什么是docstring 在软件工程中,其实编码所占的部分是非常小的,大多是其它的事情,比如写文档。文档是沟通的工具。 在Python中,比较推崇在代码中写文档,代码即文档,比较方便,容易维护,直观,一致。 代码写完,文档也出来了。其实Markdown也差不多这种[详细]
-
最大K个数问题的Python版解法总结
所属栏目:[Python] 日期:2020-12-16 热度:116
TopK问题,即寻找最大的K个数,这个问题非常常见,比如从1千万搜索记录中找出最热门的10个关键词. 方法一: 先排序,然后截取前k个数. 时间复杂度:O(n*logn)+O(k)=O(n*logn)。 这种方式比较简单粗暴,提一下便是。 方法二:最大堆 我们可以创建一个大小为K的数据[详细]
-
实例讲解Python中global语句下全局变量的值的修改
所属栏目:[Python] 日期:2020-12-16 热度:84
Python的全局变量:int string, list, dic(map) 如果存在global就能够修改它的值。而不管这个global是否是存在于if中,也不管这个if是否能够执行到。 但是,如果没有 if bGlobal: global g_strVal; int string 将会报错。而list dic(map)是ok的。 #!/usr/b[详细]
-
从局部变量和全局变量开始全面解析Python中变量的作用域
所属栏目:[Python] 日期:2020-12-16 热度:71
理解全局变量和局部变量 1.定义的函数内部的变量名如果是第一次出现, 且在=符号前,那么就可以认为是被定义为局部变量。在这种情况下,不论全局变量中是否用到该变量名,函数中使用的都是局部变量。例如: num = 100 def func(): num = 123 print num func([详细]
-
python运行时间的几种方法
所属栏目:[Python] 日期:2020-12-16 热度:184
最早见过手写的,类似于下面这种: import datetime def time_1(): begin = datetime.datetime.now() sum = 0 for i in xrange(10000000): sum = sum + i end = datetime.datetime.now() return end-beginprint time_1() 输出如下: Python python time_1.py[详细]
-
浅谈python为什么不需要三目运算符和switch
所属栏目:[Python] 日期:2020-12-16 热度:178
对于三目运算符(ternary operator),python可以用conditional expressions来替代 如对于x51:0可以用下面的方式来实现 1if x5else 0 注: conditional expressions是在python 2.5之前引入的,所以以上代码仅适用于2.5以及之后的版本 对于2.5之前的版本,可以用下[详细]
-
Python中使用装饰器来优化尾递归的示例
所属栏目:[Python] 日期:2020-12-16 热度:83
尾递归简介 尾递归是函数返回最后一个操作是递归调用,则该函数是尾递归。 递归是线性的比如factorial函数每一次调用都会创建一个新的栈(last-in-first-out)通过不断的压栈,来创建递归,很容易导致栈的溢出。而尾递归则使用当前栈通过数据覆盖来优化递归函数[详细]
-
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
所属栏目:[Python] 日期:2020-12-16 热度:129
项目运行环境 阿里云(单核CPU,1G内存,Ubuntu 14.04 x64 带宽1Mbps),具体购买和ssh连接阿里云本文不做描述。 实用工具 首先进入阿里云后先要升级下apt-get,并下载所需软件 sudo apt-get updatesudo apt-get install vim git wget tmux 我还会使用zsh和oh-my-z[详细]
-
python3实现暴力穷举博客园密码
所属栏目:[Python] 日期:2020-12-16 热度:79
我之前想写路由器的密码暴力破解器,我手上只有极路由,发现极路由有安全限制,只能允许连续10密码错误,所以我改拿博客园练手。 博客园的博客有个功能是给博文设置一个密码,输入正确的密码才能看到文章的内容。经过测试发现这个密码验证功能,既没有验证码[详细]
-
python3 实现的人人影视网站自动签到
所属栏目:[Python] 日期:2020-12-16 热度:68
这是一个自动化程度较高的程序,运行本程序后会从chrome中读取cookies用于登录人人影视签到, 并且会自动添加一个windows 任务计划,这个任务计划每天下午两点会执行本程序进行签到。 sys.executable == 'C:Python34pythonw.exe' 使用pythonw 执行.py 不[详细]
-
python3实现读取chrome浏览器cookie
所属栏目:[Python] 日期:2020-12-16 热度:180
好几年前我在做一些自动化的脚本时,脑子里也闪过这样的想法:能不能直接把浏览器的cookies取出来用呢? 直到昨天看到代码《python模拟发送动弹》,想起来当年我也曾经有类似的想法没能完成,那就优先拿这个练手,之后的代码也会用这个功能。 直接从浏览器中[详细]
-
qpython3 读取安卓lastpass Cookies
所属栏目:[Python] 日期:2020-12-16 热度:160
之前我的博客写了python读取windows chrome Cookies,沿着同样的思路,这次本来想尝试读取安卓chrome Cookies, 但是可能是chrome的sqlite3版本比较高失败了,so改成读取lastpass 的Cookies。 背景介绍: qpython3 是一个基于sl4a实现的能让python3跑在安卓手[详细]
-
浅谈Python的异常处理
所属栏目:[Python] 日期:2020-12-16 热度:79
Python的异常处理能力是很强大的,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。所有异常都是基类Exception的成员。所有异常都从基类Exception继承,而且都在exceptions模块中定义。Python自动将所有异常名称放在内建命名空间中,[详细]
-
python3 与python2 异常处理的区别与联系
所属栏目:[Python] 日期:2020-12-16 热度:194
在python2.x中 ,异常是这样的处理的,异常基类后面加一个逗号“ ,” 然后跟着异常类型 import traceback try: 1/0except Exception,err: print err 在python3.x中,异常是这样处理的,基类通过关键 词"as" 连接异常类型 import traceback try: 1/0except E[详细]
-
浅谈python抛出异常、自定义异常, 传递异常
所属栏目:[Python] 日期:2020-12-16 热度:151
一. 抛出异常 Python用异常对象(exception object)表示异常情况,遇到错误后,会引发异常。如果异常对象并未被处理或捕捉,程序就会用所谓的回溯(Traceback,一种错误信息)终止执行。 raise 语句 Python中的raise 关键字用于引发一个异常,基本上和C#和Java中[详细]
-
python3.5使用tkinter制作记事本
所属栏目:[Python] 日期:2020-12-16 热度:193
tkinter是Python下面向tk的图形界面接口库,可以方便地进行图形界面设计和交互操作编程。tkinter的优点是简单易用、与Python的结合度好。tkinter在Python 3.x下默认集成,不需要额外的安装操作;不足之处为缺少合适的可视化界面设计工具,需要通过代码来完成[详细]
-
Python的包管理器pip更换软件源的方法详解
所属栏目:[Python] 日期:2020-12-16 热度:124
pip镜像源 在国内如果不使用 VPN 是没办法好好使用 pip 命令安装任何 Python 包的。所以另一个选择就是使用国内各大厂的开源镜像源。 目前国内靠谱的 pip 镜像源有: 清华: https://pypi.tuna.tsinghua.edu.cn/simple 豆瓣: http://pypi.douban.com/simple/[详细]
-
实例讲解Python编程中@property装饰器的用法
所属栏目:[Python] 日期:2020-12-16 热度:125
取值和赋值 class Actress(): def __init__(self): self.name = 'TianXin' self.age = 5 类Actress中有两个成员变量name和age。在外部对类的成员变量的操作,主要包括取值和赋值。简单的取值操作是x=object.var,简单的赋值操作是object.var=value。 actress[详细]
-
Python中Iterator迭代器的使用杂谈
所属栏目:[Python] 日期:2020-12-16 热度:173
迭代器是一种支持next()操作的对象。它包含一组元素,当执行next()操作时,返回其中一个元素;当所有元素都被返回后,生成一个StopIteration异常。 a=[1,2,3]ia=iter(a)next(ia)1next(ia)2next(ia)3next(ia)Traceback (most recent call last): File "stdin"[详细]
-
深入学习Python中的装饰器使用
所属栏目:[Python] 日期:2020-12-16 热度:180
装饰器 vs 装饰器模式 首先,大家需要明白的是使用装饰器这个词可能会有不少让大家担忧的地方,因为它很容易和设计模式这本书里面的装饰器模式发生混淆。曾经一度考虑给这个新的功能取一些其它的术语名称,但是装饰器最终还是胜出了。 的确,你可以使用pytho[详细]
-
Python编程中装饰器的使用示例解析
所属栏目:[Python] 日期:2020-12-16 热度:149
装饰函数和方法 我们先定义两个简单的数学函数,一个用来计算平方和,一个用来计算平方差: # get square sumdef square_sum(a,b): return a**2 + b**2# get square diffdef square_diff(a,b): return a**2 - b**2print(square_sum(3,4))print(square_diff(3[详细]