python 小知识点


********************运算符********************************
1. '=' 和 '=='问题
   *在c中,在if语句中把'=='写成'='不会报错,
      如:if c == 1 写成 if c = 1
      避免方法: if 1 == c,如果写成 if 1 = c编译器会报错
   *在python中,不会出现这种情况,
      因为:python不允许if条件中赋值
      所以: if c = 1就会报错
   *******快速交换字符******
      如:交换x,y,z三个数
      x,y,z = z,x,y

2. python中and和or,and,or,not优先级
   优先级:not > and > or
   and:返回第一个为假的值,若全为真就返回最后一个真
      >>> 0 and 0
      0
      >>> 0 and 3
      0
      >>> 3 and 0
      0
      >>> 3 and 8
      8
   or:返回第一个为真的值,若全为假就返回0
      >>> 0 or 0
      0
      >>> 0 or 9
      9
      >>> 9 or 0
      9
      >>> 11 or 9
      11

3. *成员资格运算符
    in:用于检查一个值是否在序列中,在就返回True,否则返回False。    

   *三元操作符(.. if .. else ..)
    格式:return1 if 语句 else return2
         如果if后的语句时真的就返回return1,否则返回return2
    如:求a,b,c中的最小数
       a if (a<b and a<c) else (b if b<c else c)


************************ BIF **************************
1. python中最重要的是???   缩进!!!
   python大小写敏感
   *BIF(Buit-in-Functions),内置函数, 命令:dir(__builtins__)可以查看BIF
   *python中支持一行写多个语句,语句用’;‘分隔
   *python中支持一个语句写多行,每行后面用’\‘即可

2. python中使用print如何不换行呢?print默认换行,若不想换行如下:
      print '*',             #2.x版本
      #print ('*',end=' ')   #3.x版本

3. python中int()函数是将小数转换成整数,是向下取整
     如:int(5.9)结果为5
   使用int()函数时,希望可以四舍五入
     方法:把要转换的数加0.5
     如:  5.6 int(5.6 + 0.5) 结果为6
          5.4 int(5.4 + 0.5) 结果为5


************************* 列表 ***********************
1. append()和extend()区别
    append():将参数作为一个元素添加到列表的末尾
    extend():将参数作为一个列表去扩展列表的末尾
    如:>>> list1 = ['a','b','c']
       >>> list1.append('dd')
       >>> list1
       ['a', 'b', 'c', 'dd']
       >>> list1.extend(['eee','fff'])
       >>> list1
       ['a', 'b', 'c', 'dd', 'eee', 'fff']
       >>> list1.append([11,22])
       >>> list1
       ['a', 'b', 'c', 'dd', 'eee', 'fff', [11, 22]]

2. 切片操作
   list_name[m:n]:是切出(n-m)个数
   如:>>> list1
      ['fff', [11, 22], 'a', 'b', 'c', 'dd', 'eee']
      >>> list1[2:5]
      ['a', 'b', 'c']

   list_name[0]和list_name[0:1]是不一样的。
      list_name[0]:返回第0个元素的值  
                如:>>> list1[0]
                  'fff'
      list_name[0:1]:返回一个只含有第0个元素的列表  
                如:>>> list1[0:1]
                  ['fff']

3. python列表支持负数索引
   正常下标(从左到右),如: 0  1  2  3  4  5
   负数下标(从右到左),如:-6 -5 -4 -3 -2 -1

4. 利用分片完成拷贝比直接赋值好
   如:     >>> list1 = ['a','b','c']
   直接赋值:>>> list2 = list1
           >>> list2
           ['a', 'b', 'c']
   分片拷贝:>>> list3 = list1[:]
           >>> list3
           ['a', 'b', 'c']
   上面看起来是一样的,但是如果对list1进行操作
          >>> list1.append(111111)
          >>> list1
          ['a', 'b', 'c', 111111]
          >>> list2                直接赋值的列表和原列表一起变换
          ['a', 'b', 'c', 111111]
          >>> list3                分片拷贝的列表保持原样
           ['a', 'b', 'c']
   list1:--------> ['a','b','c']
                    ^      ^
   list2:-----------|      |
                           |
   list3:---------> ['a','b','c']

5. 列表推导式(列表解析)
   格式:[有关A的表达式 for A in B]
   如:>>> [i*i for i in range(10)]
      [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

6.列表逆序
  方法1:列表名.sort(reverse=True)
  方法2:列表名.sort()
        列表名.reverse()

7.列表:一个打了激素的数组
   如:>>> list1 = [1,2,[3,4,[5,6]]]
      >>> list1[2][2][0]
      5


**********************函数***************************
在函数中想使用全局变量用关键字:global
在内部函数中想使用外部函数的变量用关键字:nonlocal

1. 访问内部函数
    >>> def funOut():
    ...     def funIn():
    ...         print('ok')
    ...     return funIn()
    ...
    >>> funOut()
    ok

    >>> def funOut():
    ...     def funIn():
    ...         print('ok')
    ...     return funIn
    ...
    >>> funOut()()
    ok


posted @ 2015-10-12 23:13  淡蓝色的天空很美  阅读(728)  评论(0编辑  收藏  举报