zoukankan      html  css  js  c++  java
  • python备忘录

    本文主要是记录一下python,比较详尽的python学习资料:

    Python学习笔记_王纯业 http://pan.baidu.com/s/1eQrDEYA

    部分有详细的博文链接

    1.字符串

    切片 s[a:b] :返回的是 [a,b)的子串

    长度: len(s)

    字符串的替换方法有两种:

    last_date = “1/2/3”   目标为"123"

    之一:repalce

    date =last_date.replace('/','')

    之二:re

    p = re.compile("/")

    date = p.sub('', last_date)

    注意事项是:

    一定不要转义,否则函数不会生效。

    2.日期

    from datetime import date

    import datetime

    定义时间年月日:d = date(yyyy,mm,dd)

    多少天之后:d += datetime.timedelta(days=10)

    格式控制:d.strftime('%Y:%m:%d')

    两个日期相隔多少天:abs( (d1-d2).days )

    3.文件操作方式

    fin = open('data.txt')

    读取一行:fin.readline()

    4.文件格式编码问题:

    fin = open('词典.txt','rb')
    t = fin.read()
    txt = t.decode("gb2312", "ignore")
    fin.close()

    fin = open('训练语料库.txt',encoding='UTF-8') #UTF8读取,因为涉及到编码解码问题
    txt = fin.read()
    fin.close()

    5.切片

    字符串、列表、元组在python中都符合“序列”这一特征,只要符合这一特征的变量我们都可以用切片(slice)去存取它们的任意部分。我们可以把序列想像成一个队列,我可能需要前面三位、后面三位、或从第三位后的四位、或隔一个取一个等,我们用切片操作符来实现上述要求。

    切片操作符在python中的原型是
    [start:stop:step]

    即:[开始索引:结束索引:步长值]

    开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1

    结束索引:切片操作符将取到该索引为止,不包含该索引的值。

    步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0

    li = [1,2,3,4,5,6,7]
    
    print li[1:]           #输出[2,3,4,5,6,7],省略终止索引,表示取起始索引之后的所有值,
    等效于li[1:len(li)]
    
    print li[:3]           #输出[1,2,3],省略起始索引,表示从0开始取,等效于li[0:3]
    
    print li[:]            #输出[1,2,3,4,5,6,7],省略起始索引、终止索引、步长值表示取全部,
    等效于li[0:len(li):1]
    
    print li[::]           #输出[1,2,3,4,5,6,7],省略起始索引、终止索引、步长值表示取全部,
    等效于li[0:len(li):1]
    
    print li[::-1]        #输出[7,6,5,4,3,2,1],省略起始索引、终止索引,步长值为-1,表示反向获取
    

      

    6. map介绍:第一个参数接收一个函数名,第二个参数接收一个可迭代对象

    lt = [1, 2, 3, 4, 5, 6]
    def add(num):
        return num + 1
    rs = map(add, lt)
    print rs #[2,3,4,5,6,7]

    7. ZIP介绍:

    x = [1, 2, 3, 4, 5 ]
    y = [6, 7, 8, 9, 10]
    print zip(x, y)  # [(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]

    8. 跨平台操作的文件路径:

    linux: /home/XXX

    windows: C:Windows

    可见在不同的平台上文件路径使用的文件分隔符不一样。

    在python中,我们可以使用os.path.sep作为文件分隔符。

    a+os.path.sep+b+os.path.sep+c

    a+os.path.sep+b+os.path.sep+c 我们也可以写成 os.path.join(a,b,c) 。类似的操作还有:os.path.split();

    9.Python中__init__方法注意点

    Linux下命令:
    from os import system
    cmd = 'ls'
    s = system(cmd)
    print str(s)
     
    10. 如果想输出转义字符串的原始字符串(转义字符非转义,对字符串不进行转义),我们可以用repr方式:
    repr('dsa
    res')的输出方式是:
    'dsa
    res'
    
    普通的为:
    dsa
    res

    11. Python中所有对象都是指针,对象的拷贝不能直接使用=号进行拷贝,应该使用copy.deepcopy() 

     
    12.安装setuptools: https://pypi.python.org/pypi/setuptools#windows-simplified
     安装pip:https://pypi.python.org/pypi/pip#downloads
     
  • 相关阅读:
    NOIP201208同余方程
    NOIP模拟赛 最佳组合
    NOIP模拟赛 拓展
    CF1253E Antenna Coverage(DP)
    LOJ6033「雅礼集训 2017 Day2」棋盘游戏 (博弈论,二分图,匈牙利算法)
    CF582E Boolean Function(DP,状态压缩,FMT)
    CF750G New Year and Binary Tree Paths(DP)
    Codeforces Round 596 题解
    AGC008E Next or Nextnext(组合计数,神奇思路)
    ARC082E ConvexScore(神奇思路)
  • 原文地址:https://www.cnblogs.com/yejinru/p/3475137.html
Copyright © 2011-2022 走看看