wangjinlong's blog


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

python中的时间操作

发表于 2015-06-24

###参考文章

  • datetime<->timestamp

    一.time模块
    time模块提供各种操作时间的函数
    一般有两种表示时间的方式:
    第一种: 是时间戳的方式(相对于1970.1.1 00:00:00以秒计算的偏移量),时间戳是惟一的
    第二种: 以数组的形式表示即(struct_time),共有九个元素,分别表示,同一个时间戳的struct_time会因为时区不同而不同

    二.datetime模块
    Python提供了多个内置模块用于操作日期时间,像calendar,time,datetime。time模块。
    相比于time模块,datetime模块的接口则更直观、更容易调用。
    datetime模块定义了下面这几个类:
    datetime.date:表示日期的类。常用的属性有year, month, day;
    datetime.time:表示时间的类。常用的属性有hour, minute, second, microsecond;
    datetime.datetime:表示日期时间。
    datetime.timedelta:表示时间间隔,即两个时间点之间的长度。
    datetime.tzinfo:与时区有关的相关信息。
    datetime中,表示日期时间的是一个datetime对象
    datetime中提供了strftime方法,可以将一个datetime型日期转换成字符串:

凑个热闹,翻转二叉树

发表于 2015-06-14

挖个坑

按数据比例改变颜色的算法

发表于 2015-06-14

事情是这样,当我看到悦跑圈分享链接时,地图中路线根据速度改变画线的颜色时,顿时眼前一亮。
Image

其实想一下这个算法还是比较清晰的,只需根据不同的速度来调整RGB的值即可。

function Color(Speed) {
    var result = "rgb(0,0,0)", difference;
    if (Speed < AMinSpeed) { result = "rgb(255,0,0)"; }
    if (AMinSpeed<=Speed && Speed <=AverSpeed) {
        difference = parseInt(255 - (AverSpeed - Speed) / (AverSpeed - AMinSpeed) * 255);
        result = "rgb(255," + difference + ",0)";
    };
    if (Speed > AMaxSpeed) { result = "rgb(0,255,0)"; };
    if (AverSpeed<=Speed && Speed <=AMaxSpeed) {
        difference = parseInt(255 - (Speed - AverSpeed) / (AMaxSpeed - AverSpeed) * 255);
        result = "rgb(" + difference + ",255,0)";
    };
    return result;
};

大概总结公式就是:

avg = 平均值
max = 最大值
min = 最小值
c = 常数
x = 当前变量
if x > avg:
  res = c-(x-avg)/(max-avg)*c
if x < avg:
  res = c-(avg-x)/(avg-min)*c

这个公式似曾相识,可惜我数学已经还给了老师。

关于Oauth和开放平台的设计与实现

发表于 2015-06-11

####参考文章

  • 撰写合格的REST API
  • Implementing a Python OAuth 2.0 Provider
  • 理解HTTP幂等性

####整体架构

  • 整体使用pyoauth2 这个库,具体使用方法见参考文章2.
    通过阅读这个库的源码,学会了python也可以实现类似java的
    抽象类
    example:

    class Interface(object):
      def __init__(self):
          pass
    
      def toImpl(self):
          raise NotImplementedError("must has a sub class")
    
    class Sub(Interface):
      def toImpl(self):
          print 'impl ok!'
    
    if __name__ == "__main__":
      b = Sub()
      b.toImpl()
    
  • 需要持久化4张数据表,参考文章中使用了redis,但是我认为在实践中这些数据
    还是需要持久化的数据库中的。
    image

  • 做到使用标准的RESTful接口

####Oauth的安全型设计和接口的验证设计
TO BE CONTINUE…

关于二叉树的算法题目

发表于 2015-06-10

####python的二叉树结构
class Tree(object):
def init(self, data=None, left=None, right=None):
self.data = data
self.left = left
self.right = right

####构造一棵二叉树
image

####3种遍历方式
def preTraverse(root):
if root == None:
return
print root.data
preTraverse(root.left)
preTraverse(root.right)

def middleTraverse(root):
  if root == None:
      return
  middleTraverse(root.left)
  print root.data
  middleTraverse(root.right)

def afterTraverse(root):
  if root == None:
      return
  afterTraverse(root.left)
  afterTraverse(root.right)
  print root.data

if __name__ == "__main__":
  root = Tree("A",Tree("B", Tree("D"),Tree("E")), Tree("C", Tree("F"), Tree("G")))
  print '-------pre--------'
  preTraverse(root)
  print '-------middle-----'
  middleTraverse(root)
  print '-------end--------'
  afterTraverse(root)

新博客的第一篇文章

发表于 2015-06-09

这是搭建的github博客,以后将在这里记录关于技术的东西。


其实一直想养成自己写技术博客的习惯,之前用过博客园和csdn,但是都没有坚持下来,
希望这次在github上,能搞坚持下去。当然这个blog可能不仅限于技术上的记录,
还会有生活中的一些点滴。


为什么要搭建这个blog呢?主要是想对自己平时的技术上的一些问题有一些积累。
把所有看到的,学到的都动手搞一把,加强自己的动手的能力。所以逼着自己把github
和这个blog用起来,我相信一段时间之后,自己一定会有更快的提高!


ps:可能最近工作要变动,希望一切都顺利!

1…34
jinlong

jinlong

Simple is better than complex

36 日志
1 分类
15 标签
GitHub E-Mail
Links
  • Title
© 2021 jinlong
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4