类别归档:Python

Python is a programming language that lets you work quickly and integrate systems more effectively.

RSS feed of Python

Python Requests实现短网址还原

利用python-requests(http://www.python-requests.org/),只需数行代码即可实现短网址还原。

通过HTTP HEAD请求,从返回响应的头信息(headers)中取出Location字段即为短网址对应的原始网址。

Python代码:

import requests
def revertShortLink(url):
    res = requests.head(url)
    return res.headers.get('location')

代码测试:

print revertShortLink('http://t.cn/RVMAn7W')

返回结果:

http://bookshadow.com/weblog/2016/10 ...

继续阅读

利用matplotlib绘制约数个数统计图

利用Python计算1000以内自然数的约数个数,然后通过matplotlib绘制统计图。

下图为约数个数的散点图及其分布情况的条形图。

Python代码:

import collections
import matplotlib.pyplot as plt

def countDivisors(num):
    ans = 1
    x = 2
    while x * x <= num:
        cnt = 1
        while num % x == 0:
            cnt += 1
            num /= x
        ans *= cnt
        x += 1
    return ans * (1 ...

继续阅读

Python计算约数个数

方法I 从1到n枚举,判断是否可以整除

时间复杂度 O(n)

Python代码:

def countDivisors(num):
    return sum(num % i == 0 for i in range(1, num + 1))

方法II 从1到sqrt(n)枚举,判断是否可以整除

时间复杂度 O( sqrt(n) )

Python代码:

def countDivisors(num):
    cnt = 0
    sqrt = int(num ...

继续阅读

利用matplotlib绘制Logistic曲线

标准Logistic函数为:

f(x) = 1 / ( 1 + exp(-x) )

其导函数为:

f'(x) = f(x) * ( 1 - f(x) )

下面使用matplotlib绘制逻辑斯蒂函数及其导函数的曲线。

Python代码:

import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(-10, 10, 1000)
b = 1.0 / (1.0  + np.exp(-a ...

继续阅读

递归计算Ramanujan无穷根式

拉马努金无穷根式是印度数学家拉马努金(Srinivasa Ramanujan)于20世纪初提出的。

f(x) = sqrt(1 + (x + 1) * f(x + 1))

上面的函数是一个递归式,下面用Python编程计算该函数的值。

Python代码:

import math
class Ramanujan(object):
    def sum(self, d, md):
        if d > md:
            return 0
        return math.sqrt(1 + (d + 1) * self ...

继续阅读