Experience
案例一、水果问题
有三筐水果,一筐装的全是苹果,第二筐装的全是橘子,第三筐是苹果和橘子,这三筐水果的标签都是错的,在这三筐水果中拿出一个水果就能分辨出这三筐水果各装得是什么?
# 拿那个标有【混合】的,拿一个: # 拿出橘子,则标有【混合】的是橘子,标有【苹果】的是混合(因为这筐只可能是橘子或混合,又因前面已经断定了橘子,所以标有苹果的不可能是橘子了。最后只能是混合!),标有【橘子】的是苹果; # 拿出苹果,则标有【混合】的是苹果,标有【苹果】的是混合,标有【橘子】的是苹果。
案例二、sql多个字段去重返回all字段
# 多个字段去重-返回all字段
SELECT
*
FROM demo d1
WHERE
id = (
SELECT max(d2.id) FROM demo d2
WHERE
d2.NAME = d1.NAME
and d2.age=d1.age
and d2.address=d1.address
-- 。。。更多字段
)
案例三、列表里的字典排序问题
# 按照薪水salary排序降序 l=[ {"name": "Elton", "salary": 15000}, {"name": "boss", "salary": 30000}, {"name": "Alex", "salary": 20000}, ] l.sort(key=lambda x:x["salary"], reverse=True) print("l", l)
# sorted方法
# new_l = sorted(l, key=lambda x:x["salary"], reverse=True)
案例四、rabbitmq消息队列-消费者宕机reload
import os
import signal
# 用心跳监控tcp连接是否丢失
# 重启过程:关闭一个进程,比如QQ,或者message-server
o1 = os.popen("ps ax | grep QQ | grep -v grep")
try:
for i in o1:
print i.split()[0]
os.kill(int(i.split()[0]), signal.SIGUSR1)
print "end"
except Exception , e:
print u"error:>>>",e
# reload rabbitmq
mq_conn = connection.MQConnection.get_connection(self.db)
mq_conn.ack(ch, method)
案例五、linux文件求某一列的平均值
格式:操作时间 状态码 耗时 求平均耗时-linux命令实现
wangcheng@Elton-MacBook-Pro demo % wangcheng@Elton-MacBook-Pro demo % wangcheng@Elton-MacBook-Pro demo % cat a.txt 2020-07-21 22:05:00 200OK 25.2ms 2020-07-21 22:05:00 200OK 25.2ms 2020-07-21 22:05:00 200OK 5.2ms 2020-07-21 22:05:00 200OK 5.2ms 2020-07-21 22:05:00 200OK 15.2ms 2020-07-21 22:05:00 200OK 35.2ms wangcheng@Elton-MacBook-Pro demo % cat a.txt|awk '{print $4}'| awk '{sum +=$1};{count +=NF}END {print sum/count}' 18.5333 wangcheng@Elton-MacBook-Pro demo % wangcheng@Elton-MacBook-Pro demo %