Python学习笔记(一)

1. Python列表或元组等的成员,如果是一个多元成员,则可以这样使用,例如:

    lst = [(1, 'nihao'), ['haha', 'I love you'],['100', '2']]

    for value1, value2 in lst:

       print value1, value2 #其中value1就是1/'haha'/'100',value2就是'nihao'/'I love you'/'2'。

2. Python的字符串倒转的两种方法:

    <1> 使用[::-1]

       s = 'python'

       print s[::-1]     --> nohtyp

    <2> 使用reverse()方法

       l = list(s)

       l.reverse()

       print ''.join(l)  -->nohtyp

3. Python的执行命令方法是:

(1)执行shell命令的方法:os.system(command)

(2)执行Python的语句是:exec 'print Fuck world!!!'

 

4. Python中的目录格式,和Linux中的一致,都是“/”。

5.os.rename(myfile, os.path.join(d, myfile))#是剪切操作,把myfile剪切到d:/目录下的myfile。

6. (1) l1 =[1, 2, 1, 3, 2]

       l2 = list(set(l1))

7.os.path.getsize('文件路径')的参数只能是文件,只能计算文件大小,不能计算目录的大小。

8. 涉及到文件/目录路径尽量使用os.path.join()来组合,以跨平台。

9.sys.argv[]在Linux下是从0开始计数的,即:

    $ python hello.py 1 2 'xxx'

    sys.argv[0] -- hello.py

    sys.argv[1] -- 1

    sys.argv[2] -- 2

    sys.argv[3] -- 'xxx'

10.os.path.isfile()得使用全路径格式的文件。几乎所有的文件操作都必须是相对路径或全路径格式,除非

    使用os.chdir()。

11.os.rmdir()与shutil.rmtree()的区别是:

    os.rmdir()要求该目录是空的,才可以删除;所以叫“空目录”。

    os.removedirs()递归删除空目录;

    shutil.rmtree()是递归删除该目录下的所有子目录和文件后才删除该目录;

12. 使用字符串的.join(list)可以将list变成字符串;

13.Python中的else子句主要用在循环(while/for) 和 异常处理(try/except)中;

14. 列表推导式[ ]就是从一个列表list中获得另外一个列表list。

15.Python里的变量作用域:

    (1)改变作用域的只有:def, class, lambda;

    (2)if/elif/else,try/except/finally/else, for/while/else并不改变变量作用域;

    (4)优先级顺序是:局部变量-->全局变量-->内置变量;

16. set数据结构主要用于:去除重复的成员。例如:list0 = list(set(['abc', 'def','abc']))。

17. 参数*arg本质是用元组来收集参数,arg其实是个元组tuple;参数**本质是用字典来收集参数,

    arg其实是个dict(字典)。

18. 字符串相加(+)的技巧:在很多情况下都可以配合使用'string' + filename, 其中filename是字符串,来

    灵活运用字符串,生成更加灵活的字符串。 '+'加法也适合于列表和元组, 但是用于列表时, 容易产生重复的列表

    成员, 因此可以使用set来处理掉重复的成员.

19.Python中创建文件的方法是:open('filename', 'w')或者open('filename', 'a')

20.struct.pack()封包后的数据类型不变,但是struct.unpack()返回的解包数据是元组的形式。

21.Python的变量有三个原则:(1)只有def/class/lambda影响变量的作用域; (2)if...elif...else/

    try...except...finally/while/for不影响变量作用域; (3)变量的调用优先级是: 局部变量 >

    全局变量 > 内置变量;

22.Python里的赋值操作/函数参数传递/函数返回值和java里一样,并没有创建备份,仅仅是创建了引用而已,

23. 迭代器(iter)本质上就是一个具有__iter__属性和next()方法的类对象。

24.os.path.exists(string)只能判断该string参数是否是已经存在的目录路径或文件,并不判断sys.argv[]

    是否存在, 如果sys.argv[]不存在, 则解释器会报告一个IndexError的异常.

25. 如果处理“重复”的行或数据,就要想到使用“set”来处理。

26. 文件读取每一行的时候都是最后带'\n'换行符的;

27. 列表推导式 == 从旧列表生成新列表

28. 线程类继承于threading.Thread: threading是模块,Thread是该模块中的类,此外还有互斥量类Lock

    线程间没有通信问题,但是有共享数据问题,必须使用线程互斥量解决:

    g_mutex = threading.Lock()  #创建互斥量对象

    g_mutex.acquire() #获得互斥量

    g_mutex.release() #释放互斥量

    即: threading模块中有2个类比较重要,一个是Thread类, 用于建立线程对象; 一个是Lock类, 用于建立互斥量对象;

29.subprocess.Popen('cmd')和subprocess.call('cmd')的区别是:

    (1) 前者创建完子进程后, 子进程就直接执行, 和父进程是并行的程序了, 同时在运行;

    (2) 后者创建完子进程后, 子进程开始执行,但是父进程被阻塞不执行,一直等到该子进程完成后,父进程再开始执行

    (3) 后者相当于前者 + 子进程对象.wait()

        即: sp = subprocess.Popen('cmd')

            sp.wait()

            <相当于> sp = subprocess.call('cmd')

30.Python的面向对象也有类似的C++和Java的思想, 只是实现方式不同而已: 封装/继承/重载/多态;

    多态是使用重写class的内置方法实现的; 另外Pthon还有自己独特的装饰器@/super/property

31. 反斜扛'\'容易引起错误的原因是: '\'后面不能有'空格'. 另外在目录中不能有空格.

32. in操作符可以省略for循环查找某个元素是否是一个集合的成员, 判断是否是其成员可以直接用:

    if 成员 in集合:

        处理

33.enumerate(list)返回list的(index, value)元组, 另外注意zip(list1, list2)的使用.

    由两个list创建一个字典的方法是: dict(zip(list1, list2))

34. Python初学笔记1到此!!!!!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值