一些关于Python的小心得

一门语言的编程习惯往往都是由用户来确立的,而一种好的编程习惯无疑会使编程效率大大提高

强烈推荐Effective Python 这本书


以下是自己整理的一些小心得


1、遵循PEP8风格指南

python中的空白会影响代码的含义,因此,希望:

(1)、使用空格来表示缩进,而非是占位符tab。

(2)、和语法相关的每一层缩进都用4个空格来表示。

(3)、对于占据多行的长表达式来说,除却首行之外的其余各行都应该在通常的缩进级别智商再加四个字符。

(4)、变量赋值,赋值符号左右各写上一个字符,例如:a = 'string'。

(5)、函数与类用两空行隔开,同一类下,各方法用一个空行隔开。


2、关于for循环,建议使用enumerate()函数:

url_lsit = ['http://top.le.com/filmhp.html','http://top.le.com/mfilmhp.html','http://top.le.com/comichp.html']
for index, url in enumerate(url_list):
    print index
    print url


3、关于yield:

我们首先来看一段代码:

def f(urls):
    for index,letter in enumerate(urls):
        yield letter,index

if __name__ == '__main__':
    b = f(url_list)
    print list(b)
    print list(b)

我们会发现在第二次输出list的时候,会是一个空的列表,然而程序却没有报错,说得粗糙一点,就是说yield出来的东西只能用一次。迭代器只产生一轮结果


4、关于时间戳大于10个字符长度的时候

s = 1492052776760
if isinstance(s,long):
    if len(str(s)) > 10:
        s = float(str(s)[:10])
    elif len(str(s))<10:
        s = float(str(s)+"0"*(10-len(s)))
    else:
        s = s
    print  time.strftime("%Y-%m-%d %H:%M:%S", time.localtime( float(s) ) )
else:
    print  ""


5、在汉字转码拼音使用u'***'的时候,关于变量赋值:

# -*- coding: utf-8 -*-
from xpinyin import Pinyin
from Pinyin2Hanzi import DefaultHmmParams
from Pinyin2Hanzi import viterbi

p = Pinyin()
title = '鹿晗'
print p.get_pinyin(u'%s'%(title)).replace('-','')
name_list = p.get_pinyin(u'%s'%(title)).split('-')
print name_list

6、将多个字符串转换为list:

# -*- coding: utf-8 -*-
import re
# #辅助函数:将多个字符串转换为list,例如:
#       a = '''
#           兰雄传媒有限公司                  ============>  ['兰雄传媒有限公司','北京东方天星文化传媒有限公司']
#           北京东方天星文化传媒有限公司
#           '''
def str_to_list(a):
    input = re.sub('\n+',',',a)
    input = re.sub(' +','',input)
    input = list(set(input.split(',')[1:-1]))
    print input,len(input),type(input)
    return input
注意,字符串中间是没有逗号的。













评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值