Mar
5
1. Python的除法
线上有一个简单的函数,运行一年多了,作用是把"分"表示的字符串转成"元":
看起来也的确是没有什么问题,但是就这么简单的一点代码,它还是错了,原因是fen_to_yuan("-270")居然返回了"-3.30"!坑爹啊。简单测试一下,原来是这样:
所以只好蛋疼地修改成这样:
2. 线上有一个脚本,要得到上个月的月份,bash的实现就是
看起来也的确是没有什么问题,但是就这么简单的一点代码,它还是错了,原因是对于10月31号居然返回了10!坑爹啊。简单测试一下,原来是这样:
也就是说,先把月份减一,然后检查日期,超过当前月,再向上修正月份,再向上修正年份。
所以只好蛋疼地修改成这样:
#update: @whusnoopy补充说 向后查看1个月也会有这样的情况,总之记得用月来算是有坑的,千万注意。
3. crontab的小坑
crontab默认是不会读取.bashrc,需要自己去source一下.bashrc,并且不支持像bash一样用反引号来启动一个子命令(这个结论是错的,是因为%前面忘了加斜杠)。这个不展开细说了,有兴趣的试试吧。
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
线上有一个简单的函数,运行一年多了,作用是把"分"表示的字符串转成"元":
def fen_to_yuan(str_fen):
fen = int(str_fen)
return '%d.%02d' % (int(fen / 100) , fen % 100)
fen = int(str_fen)
return '%d.%02d' % (int(fen / 100) , fen % 100)
看起来也的确是没有什么问题,但是就这么简单的一点代码,它还是错了,原因是fen_to_yuan("-270")居然返回了"-3.30"!坑爹啊。简单测试一下,原来是这样:
引用
>>> -270/100
-3
>>> -270%100
30
-3
>>> -270%100
30
所以只好蛋疼地修改成这样:
def fen_to_yuan(str_fen):
fen = int(str_fen)
sign, fen = fen < 0 and ('-', -fen) or ('', fen)
return sign + '%d.%02d' % (int(fen / 100) , fen % 100)
fen = int(str_fen)
sign, fen = fen < 0 and ('-', -fen) or ('', fen)
return sign + '%d.%02d' % (int(fen / 100) , fen % 100)
2. 线上有一个脚本,要得到上个月的月份,bash的实现就是
引用
date -d "-1 month $date" +%m
看起来也的确是没有什么问题,但是就这么简单的一点代码,它还是错了,原因是对于10月31号居然返回了10!坑爹啊。简单测试一下,原来是这样:
引用
$ date -d "-1 month 20121031" +%Y-%m-%d
20121001
$ date -d "-1 month 20130331" +%Y-%m-%d
20130303
20121001
$ date -d "-1 month 20130331" +%Y-%m-%d
20130303
也就是说,先把月份减一,然后检查日期,超过当前月,再向上修正月份,再向上修正年份。
所以只好蛋疼地修改成这样:
引用
date -d "-1 month ${date:0:6}01" +%m
#update: @whusnoopy补充说 向后查看1个月也会有这样的情况,总之记得用月来算是有坑的,千万注意。
3. crontab的小坑
crontab默认是不会读取.bashrc,需要自己去source一下.bashrc,
欢迎扫码关注:
转载请注明出自 ,如是转载文则注明原出处,谢谢:)
RSS订阅地址: https://www.felix021.com/blog/feed.php 。
ctqmumu
2013-11-20 13:27
查看上下月这种操作... 我都是用python在做...
Dumbear
2013-3-6 16:01
我ca……真的好坑!
xayljq
2013-3-5 21:10
一直觉得Python的除法很奇葩
snoopy
2013-3-5 17:34
第二个问题刚去看了下, 果然是大坑... 而且向后查看一月也会坑 // 第三个问题, 一般 crontab 里都还是用 .sh 吧, 然后 .sh 里负责 source 并 cd 到工作目录下
felix021 回复于 2013-3-5 20:36
嗯 第三个是以前遇到过 后来学乖了 只是这里顺便记录一下。
分页: 1/1 1