美文网首页
Python的小技巧

Python的小技巧

作者: klory | 来源:发表于2018-05-09 23:56 被阅读12次
    • 循环和条件语句都要有:
    • 标准的条件结构:
    if xxx...:
        blabla
    elif xxx...:
        blabla...
    else:
        blabla...
    
    • python 有一些关键字和C不一样,比如说and, or, not, in之类的

    • lendel不是list和dic的方法

    • join是string的方法,因为返回的是一个string

    • () - 元组

    • [] - 数组

    • {} - 字典

    • print可以这样用print(string, number)

    • **是python中的幂操作符

    • string不可变,listdict可变

    • string可以使用*+

    • list可以使*+

    • 这样也可以强势插入(尽管推荐使用insert和append函数):

    alist = ['a', 'd', 'f']
    alist[1:1] = ['b', 'c']  # [`a`, 'b', 'c', 'd', 'f']
    print alist
    alist[4:4] = ['e']  # [`a`, 'b', 'c', 'e', 'd', 'f']
    print alist
    
    • variable refers to object.
    • 不可变的类型,比如string,被python优化为相同的string指向同一地址。但对于不可变的类型比如list和dic则指向不同的地址。
    a = 'banana'
    b = 'banana'
    print(a==b) #True
    print(a is b)   #True
    print("next part...\n")
    
    aList = ['1', 1]
    bList = ['1', 1]
    print(aList == aList)   #True
    print(aList is bList)   #False
    bList[1] = 'haha'
    print(aList)    #['1', 1]
    print('next part...\n')
    
    • alias操作的意思是起个别名,这个对于mutable的数据类型尤其需要注意,python会默认将他们优化为 指向相同的内存地址。
    alist = [4,2,8,6,5]
    blist = alist
    print(alist == blist)   #True
    print(alist is blist)   #True
    blist[3] = 999
    print(alist)    #[4, 2, 8, 999, 5],这里改的是blist,alist也跟着变了
    
    # 如果要深拷贝数组:
    blist = alist[:]
    print(alist == blist)   #True
    print(alist is blist)   #False
    
    # 字典的话请使用内部函数copy
    acopy = opposites.copy()
    acopy['right'] = 'left'  # does not change opposites
    
    • for可以遍历item也可以遍历index:

      • 遍历item:for item in alist:
      • 遍历index:for i in range(len(list)):
    • 最简单的文件操作方式:

    filename= "yourfile.txt"
    fileref = open(filename,"r")
    for lin in fileref: # 比readlines要好,因为不需要一次读取整个文件
        ## operations on lin
    fileref.close() 
    
    • dic在赋值的时候,如果key不存在,会立刻创建一个key而不会有runtime error。

    • 函数参数的默认值是在定义(define)的时候决定的,而不是在调用(invoke/call)的时候。比如说:

    value = 10
    def f(x = value):
      print("x is:", x)
    
    value = 1
    f() # x is 10
    
    • 函数参数的默认值如果是可变对象的话,这个对象会在每次调用的时候共享。比如说:
    def f(a, L=[]):
            L.append(a)
            return L
        
    print f(1)
    print f(2)
    print f(3)
    print f(4, ["Hello"])
    print f(5, ["Hello"])
    
    • 单元素tuple的声明需要在最后加上逗号,否则会被看作基本类型
    t = (5,)
    print type(t)
    
    x = (5)
    print type(x)
    

    相关文章

      网友评论

          本文标题:Python的小技巧

          本文链接:https://www.haomeiwen.com/subject/ellybttx.html