美文网首页Python
Python入门基础笔记

Python入门基础笔记

作者: 046ef6b0df68 | 来源:发表于2018-09-04 19:46 被阅读12次

    文|Seraph

    一 前言

    1. 运行速度的瓶颈往往不在于使用python语言开发,而在于数据库的操作和网络调用。
    2. Python源码不能加密
    3. 很多库对python3.3的支持不是很好,所以常用Python2.7开发

    二 Python变量和数据类型

    1. print会依次打印每个字符,遇到逗号“,”会输出一个空格
      print 'xx','xx'

    2. '#' 注释

    3. 变量本身类型不固定的语言称之为动态语言,与之对应的是静态语言。
      Python是动态语言,C++、JAVA是静态语言。

    4. 赋值(引用赋值)

    a = 'ABC'
    b = a
    a = 'XYZ'
    

    执行a = 'ABC',解释器创建了字符串 'ABC'和变量 a,并把a指向 'ABC':

    image

    执行b = a,解释器创建了变量 b,并把b指向 a 指向的字符串'ABC':

    image

    执行a = 'XYZ',解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b并没有更改:

    image

    所以,最后打印变量b的结果自然是'ABC'了。

    1. raw字符串,不需要转义,但不能表示多行字符串,也不能表示包含',"的字符串
      ''r'(_)/ (_)/'``

    2. 多行字符串使用

    '''xxx
    xxx
    xxx'''
    
    1. Unicode字符串
      u'''中文'''
      如果中文字符串在Python环境下遇到UnicodeDecodeError,则在文件开头加上如下注释:
      # -- coding: UTF-8 --

    2. Python 把 0、空字符串、None看成False

    a = True
    print a and 'a=T' or 'a=F'
    

    打印出:a=T

    三 List列表

    1. list是数学意义上的集合,是按照顺序排列的,Python是动态语言,所以list中包含的元素不要求都必须同一种类型。
    2. list倒序访问,可以从-1开始表示倒序第一个
    3. 添加新元素list.append('xx'),插入新元素list.insert(n, 'xx')。
    4. 删除元素 list.pop('xx'),返回值为删除的元素,也可按索引删除list.pop(n)。 连续删除时,需要注意索引每次删除,后续的索引会向前移动。

    四 Tuple元组

    1. tuple和list非常类似,但是tuple一旦创建完毕,就不能修改了。
      t = ('Adam', 'Lisa', 'Bart')
    2. tuple单个元素创建时,需要在后面添加‘,’,才能表示一个正确的tuple
      t = (1,)
    3. tuple所谓的“不变”是说,tuple的每个元素,指向永远不变。而指向的对象(如list)本身是可以变的。
      t = ('a', 'b', ['A', 'B'])

    五 缩进

    1. Python代码的缩进规则:具有相同缩进的代码被视为代码块,4个空格,不要使用tab。
    2. Python交互环境中,退出缩进需要多敲一行回车。

    六 控制语句

    1. if
    if age >= 18:
        print 'adult'
    elif age >= 6:
        print 'teenager'
    elif age >= 3:
        print 'kid'
    else:
        print 'baby'
    

    注意:这一系列条件判断从上至下依次判断,如果某个判断为True,执行完对应的代码块,后面的条件判断就直接忽略,不再执行。

    1. for
    L = ['Adam', 'Lisa', 'Bart']
    for name in L:
        print name
    
    1. while
    while x < N:
        print x
        x = x + 1
    

    七 dict

    1. 键值对key:value
    d = {
        'Adam': 95,
        'Lisa': 85,
        'Bart': 59
    }
    
    1. 访问
    print d['Adam']
    

    如果key不存在,dict会直接报错:KeyError
    避免KeyError的办法:

    if 'Paul' in d:
        print d['Paul']
    
    print d.get('Paul')
    #get方法,在key不存在的时候,返回None
    
    1. 特点
      查找速度快,占用内存大,key不可变且不能重复,key-value序对没有顺序

    八 set

    1. 创建,调用set(),并传入一个list
      s = set(['A', 'B', 'C'])
    2. 访问
      'Bart' in s
    3. 添加、删除
    s.add(x)
    s.remove(x)
    #删除时,需现判断,否则不存在会报错
    
    1. 特点
      查找速度更快,key不可变且不能重复,无序

    九 函数

    1. 函数就是最基本的一种代码抽象的方式
    2. xrange(1, 101)生成1到100的list
    3. Python的函数返回多值其实就是返回一个tuple
    4. 使用递归函数需要注意防止栈溢出,递归调用次数过多,会导致溢出

    十 list切片

    1. 序号从m到n(注意切片不包含n
      L[m:n]
    2. 从头到尾
      L[:]
    3. 从m到n,隔k-1
      L[m:n:k]
    4. 多次切片
      L[m1:n1][m2:n2]

    十一 迭代

    1. 迭代与按下标访问数组最大的不同是,后者是一种具体的迭代实现方式,而前者只关心迭代结果。
    2. 迭代是取出元素本身,而不是元素的索引,如想在for循环中拿到索引,可以使用enumerate(),其功能是自动把每个元素变成(index,element)这样的tuple
    L = ['Adam', 'Lisa', 'Bart', 'Paul']
    for index, name in enumerate(L):
    print index, '-', name
    
    1. zip()函数可以把两个 list 变成一个 list:
    zip([10, 20, 30], ['A', 'B', 'C'])
    # 结果:[(10, 'A'), (20, 'B'), (30, 'C')]
    
    1. 迭代dict的value的方法:values(),itervalues()
      两者差别,values()方法实际是把一个dict转换成了包含value的list
      itervalues()方法不会转换,它会在迭代过程中依次从dict中取出dict,所以更省内存

    2. 求列表长度
      len(d)

    3. 迭代dict的key和value:items(),iteritems()

    十二 生成列表

    1 列表生成式

    [x * x for x in range(1, 11)]
    # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
    

    2 复杂生成式
    字符串可以通过%进行格式化,用指定的参数代替%s,字符串的join()方法可以把一个list拼接成一个字符串

    tds = ['<tr><td>%s</td><td>%s</td></tr>' % (name, score) for name, score in d.iteritems()]
    print '<table>'
    print '<tr><th>Name</th><th>Score</th><tr>'
    print '\n'.join(tds)
    print '</table>'
    

    3 条件过滤

    [x * x for x in range(1, 11) if x % 2 == 0]
    #[4, 16, 36, 64, 100]
    

    4 多层表达式

     [m + n for m in 'ABC' for n in '123']
    #['A1', 'A2', 'A3', 'B1', 'B2', 'B3', 'C1', 'C2', 'C3']
    

    十三 其它

    1 判断变量是否是字符串:isinstance(x, str)
    2 返回大写字符串:upper()

    相关文章

      网友评论

        本文标题:Python入门基础笔记

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