关于Python学习,说点个人意见。
看了很多朋友在一起讨论Python的优雅(这个偶也看到了),不过好像都不在大项目中使用,感觉遗憾呀。
前几天我说过,我们项目经理在新加坡的一个“支持视频的在线游戏”项目中,用Python做了服务器,速度要求高的核心部分用C做扩展。
今天看到了他们那个服务器的Python源码,一看吓一跳。
大家讨论的Python代码的优雅,在他们这个项目中完全看不到,满眼的C、C++风格的Python代码,丑死~跟蔡学镛那段代码差不多。
不过让我感慨良多啊,人家只要会一些语法就用它来做项目,我们呢?很多人学得很深入了,结果却总说它不适合拿来做大项目。我们在等什么啊?
人家学东西是拿来用的,我们是拿来看的。
说完了。下面把昨天 xyzxyz1111(如是我闻) 老兄回答我的一个问题贴上来,大家共赏:
问题是,如何做到下面这个功能?
a='abcdefg'
for x,y,z in a:
print x,y,z
要求打印出:
a b c
d e f
g None None
xyzxyz1111(如是我闻) 给我的回复:
class ItemIter:
def __init__(self, l, n = 3):
if type(l) in (type(''), type(u'')):
self.lElement = [c for c in l]
else:
self.lElement = l
self.number = n
def __iter__(self):
if self.number <= 1:
return self.lElement.__iter__()
else:
self.idx = - self.number
return self
def next(self):
self.idx += self.number
lRet = self.lElement[self.idx:self.idx+self.number]
if len(lRet) == 0:
raise StopIteration()
lRet += [None for x in range(self.number-len(lRet)) ]
return lRet
a='abcdefg'
for x,y,z in ItemIter(a, 3):
print x,y,z
他这个类很好哦,个数不限,还可以这么用:
a='abcdefg'
for x,y,z,w in ItemIter(a, 4):
print x,y,z,w
还是咱中国人聪明呀,问了个老外他没回答出来。。KKKK偷笑。。老外看了这代码说“太棒了”。知道这老外为什么说中文吗?因为他是新加坡人。KKKK
前几天我说过,我们项目经理在新加坡的一个“支持视频的在线游戏”项目中,用Python做了服务器,速度要求高的核心部分用C做扩展。
今天看到了他们那个服务器的Python源码,一看吓一跳。
大家讨论的Python代码的优雅,在他们这个项目中完全看不到,满眼的C、C++风格的Python代码,丑死~跟蔡学镛那段代码差不多。
不过让我感慨良多啊,人家只要会一些语法就用它来做项目,我们呢?很多人学得很深入了,结果却总说它不适合拿来做大项目。我们在等什么啊?
人家学东西是拿来用的,我们是拿来看的。
说完了。下面把昨天 xyzxyz1111(如是我闻) 老兄回答我的一个问题贴上来,大家共赏:
问题是,如何做到下面这个功能?
a='abcdefg'
for x,y,z in a:
print x,y,z
要求打印出:
a b c
d e f
g None None
xyzxyz1111(如是我闻) 给我的回复:
class ItemIter:
def __init__(self, l, n = 3):
if type(l) in (type(''), type(u'')):
self.lElement = [c for c in l]
else:
self.lElement = l
self.number = n
def __iter__(self):
if self.number <= 1:
return self.lElement.__iter__()
else:
self.idx = - self.number
return self
def next(self):
self.idx += self.number
lRet = self.lElement[self.idx:self.idx+self.number]
if len(lRet) == 0:
raise StopIteration()
lRet += [None for x in range(self.number-len(lRet)) ]
return lRet
a='abcdefg'
for x,y,z in ItemIter(a, 3):
print x,y,z
他这个类很好哦,个数不限,还可以这么用:
a='abcdefg'
for x,y,z,w in ItemIter(a, 4):
print x,y,z,w
还是咱中国人聪明呀,问了个老外他没回答出来。。KKKK偷笑。。老外看了这代码说“太棒了”。知道这老外为什么说中文吗?因为他是新加坡人。KKKK
...全文
相关推荐
Python-QQ说说被点赞自动留言脚本
QQ说说被点赞,自动留言脚本
python学习个人归纳总结
学习归纳总结:python学习个人归纳总结,后续还有各种字符串操作函数
Python量化交易学习笔记(20)——保护点卖出策略
本文主要记录保护点卖出策略,给买入的股票设立保护点,随着股票收盘价的提升,保护点不断提高,股价一旦跌破保护点,即卖出股票。 示例的买入条件为,5日线金叉60日线,且股价进行小幅回踩(较金叉日收盘价下跌1%)。卖出条件为,股价跌破保护点。保护点首先设置为买入当天收盘价减去一个资金回撤值(率),示例把回撤率设置为5%。后续如果股票的收盘价上升,则用新的收盘价更新保护点,如果股票的收盘价下跌,则保留原有保护点。回测初始资金100000元,单笔操作单位1000股,佣金千分之一,回测时间自2018年1月1日至2020年3月20日。 策略核心代码位于策略类的next方法中: def next(se
验证码去干扰线和噪点的python源码
验证码识别,需要先处理验证码 。本文件是讲验证码去除噪点和干扰线的python源码 欢迎大家提意见
python实现自动点赞
1.思路 通过pyautogui可以实现鼠标点击、滚动鼠标、截屏等操作。由此功能实现打开页面,进行点赞。 aircv可以从大图像获得小图像的位置,利用pyautogui截屏得到的图片,可以在页面获取到每一个


