Python学习总结

本文介绍了Python学习中的一些关键概念,包括数据类型如整数、布尔、字符串、列表、元组和字典的使用,以及列表的append、extend、pop等方法,元组的不可变性,字典的增删查改操作。此外,还讨论了调试技巧、注释、函数、模块导入、条件语句和循环结构,以及序列化相关的pickle和json模块。
摘要由CSDN通过智能技术生成

Python学习总结

1.如果自己所得答案与所给答案不一致,直接在编译器中执行;如果所给答案正确,重新分析执行过程
2.如果运行出错,一个语句一个语句的调试
3.遇到错误上网查询

数据类型

整数int,布尔型bool,字符串str,列表list[],元组tuple(),字典dict{}

1. list:[]

  • 有序集合
  • 可变数据类型
  • append()、insert()、修改、删除(del、remove、pop)
  • list.insert(index,obj)

count():可以统计某个元素在列表中出现了多少次

>>>[‘a’,‘iplaypython.com’,‘c’,‘b’,‘a’].count(‘a’)

2

insert():可以将要添加的对象,插入到指定的位置中

  • 列表与方法之间用点号相隔,括号内需要添入的参数分别是索引和要插入的元素

append列表添加方法被调用后,返回的列表不仅仅是一个添加过元素后的新列表,而是把原有的列表做了修改,id不变。并且新添加的元素是追加到原列表数据的末尾,append方法也被叫做列表追加操作。

append()只能添加一个值

extend():是把新参数添加到原有列表中,id不变,相当于原地修改

extend方法可以在列表尾部追加包含多个值的另一个序列

  • extend()和加号+连接操作符的区别:

>>>list1 = [1,2,3]

>>>list2 = [7,8,9]

>>>list1.extend(list2)

>>>list1

[1, 2, 3, 7, 8, 9]

  • extend方法是把元素添加到了list1中,相当于扩展(修改)list1的数据,但id没有改变。如果用+号连接的话,得到的是一个新列表,不能被引用的值

>>>list1 = [1,2,3]

>>>list2 = [7,8,9]

>>>list1 + list2

[1, 2, 3, 7, 8, 9]

>>>list1

[1, 2, 3]

  • 列表推导式标准格式:

[ 表达式 for 变量 in 列表]

如果需要加入if条件语句则是:

[表达式 for 变量 in 列表 if 条件]

pop():用来做删除列表中的指定对象时,会返回要删除元素的值(如果没有指定对象,默认是最后一个值)

index():查找参数时,如果参数存在,返回索引位置;如果参数不存在,则报错

2. tuple:()

  • 有序集合
  • 不可变数据类型(整型int、字符串str’ '、元组tuple())
  • 重新赋值后才能被引用

x=([‘Hello’,123],456,-789)

x[0]=[‘Hello’,123]

x[1]=456

x[2]=-789

x[0][1]=123

3. dict:{}

  • 无序的集合
  • 可变数据类型

新值所对应的键名;如果存在,就是修改;如果不存在,就相当于添加操作

字典删除方法:clear()、pop()和popitem()

  • clear()方法是用来清除字典中的所有数据,因为是原地操作,所以返回None(也可以理解为没有返回值)
  • 当原字典被引用时,想清空原字典中的元素,用clear()方法,a字典中的元素也同时被清除了

>>>f = {‘key’:‘value’}

>>>a = f

>>>a

{‘key’: ‘value’}

>>>f.clear()

>>>f

{}

>>>a

{}

  • 移除字典数据pop()方法的作用是:删除指定给定键所对应的值,返回这个值并从字典中把它移除。注意字典pop()方法与列表pop()方法作用完全不同

>>>x = {‘a’:1,‘b’:2}

>>>x.pop(‘a’)

1

>>>x

{‘b’: 2}

  • 字典popitem()方法作用是:随机返回并删除字典中的一对键和值(项)。为什么是随机删除呢?因为字典是无序的,没有所谓的“最后一项”或是其它顺序。在工作时如果遇到需要逐一删除项的工作,用popitem()方法效率很高
    >>>x

{‘url’: ‘www.iplaypy.com’, ‘title’: ‘python web site’}

>>>x.popitem()

(‘url’, ‘www.iplaypy.com’)

>>>x

{‘title’: ‘python web site’}

  • items方法作用:是可以将字典中的所有项,以列表方式返回
  • 字典items()操作方法:

>>>x = {‘title’:‘python web site’,‘url’:‘www.iplaypy.com’}

>>>x.items()
[(‘url’, ‘www.iplaypy.com’), (‘title’, ‘python web site’)]

从结果中可以看到,items()方法是将字典中的每个项分别做为元组,添加到一个列表中,形成了一个新的列表容器

  • iteritems方法作用:与items方法相比作用大致相同,只是它的返回值不是列表,而是一个迭代器

4. type():

对象数据类型查询方法

5. str():

把原本不是字符串类型的数据变成字符串类型

6. 修改/删除:

重新创建一个字符串

7. 切片

  • x[0:]
  • x[0:-1]
  • x[0:3]不包括3
  • x[::2]:每N个取一个

eg:

L=[‘A’,‘L’,‘B’,‘P’]

-4,-3,-2,-1

L[-2:]=‘B’,‘P’

L[:-2]=‘A’,‘L’

L[-3:-1]=‘L’,‘B’

L[-4 : -1 : 2]=‘A’,‘B’

注:切片,结束索引不包含

8.set()

  • add():把要传入的元素作为一个整个添加到集合中
  • update():把要传入的元素拆分,作为个体传入到集合中
  • remove()
  • 相对补集(差集):

A-B:元素属于A不属于B

9. 变量名

  1. 包括字母、数字、下划线,但数字不能作为开头
  2. 关键字不能作为变量名使用
  3. 除下划线外,其他符号不能作为变量名使用
  4. 变量名区分大小写

10.import 导入模块

在用import语句导入模块时最好按照这样的顺序:import 标准库、第三方模块、自定义模块

from……import:导入指定的模块内的指定函数方法

11.函数

  • help():查看函数或模块用途的详细说明
  • dir():查看函数或模块内的操作方法都有什么,输出方法列表
  • open():'r’读模式、'w’写模式、'a’追加模式、‘b’二进制模式、’+'读/写模式
  • write()
  • read():读取全部内容
  • readline():逐行读取

12.注释

  • 单行注释:#
  • 多行注释:‘’’ ‘’’

13.continue

跳过剩余循环体,但并不结束循环,跳到最近所在循环体首行

14.pass

1.空语句,什么也不做

2.在特别的时候用来保证格式或语义的完成性

15.global

全局变量

16.assert

  • assert断言是声明其布尔值必须为真的判定,如果发生异常就说明表达示为假
  • raise-if-not
  • assert 的异常参数,就是在断言表达式后添加字符串信息,assert 表达式[,参数]

17.print

输出在一行:print i,

18.while语句/if语句区别

1.if语句是条件为真true,就会执行一次相应的代码块

2.while中的代码会一直循环,直到循环条件不满足不再为真

  • while:计数循环中
  • if 条件:
  • elif 条件:
  • else:

注:

1.else、elif为子块,不能独立使用

2.一个if语句中可以包含多个elif语句,但结尾只能有一个else语句

3.else在while、for循环语句中的作用:

python中,可以在while和for循环中使用else子句,它只是在循环结束之后才会被执行,如果同时使用了break语句那么else子句快会被跳过。所以注意else子句和break语句不能同时使用。

19.匿名函数lambda:

  • 一种生成函数对象的表达式形式

1.创建了可以被条用的函数,它返回了函数,而并没有将这个函数命名

f=lambda a,b,c:a+b+c

2.不需要return来返回值,表达式本身结果就是返回值

3.lambda是一个表达式,而非语句

4.快速定义单行的最小函数

5.让代码更加简洁,使用它可以省去函数定义的过程

6.对只需使用一次的函数用lambda定义,可以省去函数命名问题

7.清晰明了

lambda和def区别:
  • 相同点:

1.可以定义一些固定的方法或是流程

  • 不同点:

1.def是语句,lambda是表达式

2.根据某个条件来定义方法只能用def

3.在python表达式操作,只能用lambda

20.python re模块重要函数变量

1.compile()根据正则表达式字符串,创建模式的对象。

2.search() 在字符串中寻找模式。

3.match() 在字符串开始处匹配模式。

4.split() 根据模式的匹配项来分割字符串。

5.indall() 显示出字符串中模式的所有匹配项。

6.sub(old,new)方法的功能是,用将所有old的匹配项用new替换掉。

7.escape() 将字符串中所有特殊正则表达式字符转义

21. time

#coding=utf-8

#首先导入time模块

import time

#返回当前时间的时间戳

print time.time()

#将当前时间戳转换为当前时区的struct_time

print time.localtime()

#返回的进程时间

print time.clock()

#把一个表示时间的元组表示为这种形式:‘Sat Dec 14 11:12:26 2013’

print time.asctime()

#按我们指定的要求格式来输出,时间(年月日)

print time.strftime(“%Y-%m-%d”, time.localtime())

结果:

1517991350.31

time.struct_time(tm_year=2018, tm_mon=2, tm_mday=7, tm_hour=16, tm_min=15, tm_sec=50, tm_wday=2, tm_yday=38, tm_isdst=0)

2.1129900288e-06

Wed Feb 07 16:15:50 2018

2018-02-07

  1. 序列化 pickle.dump(对象, 文件,[使用协议])
  • 提示:将要持久化的数据“对象”,保存到“文件”中,使用有3种,索引0为ASCII,1是旧式2进制,2是新式2进制协议,不同之处在于后者更高效一些。
    默认的话dump方法使用0做协议
  1. 反序列化pickle.load(文件)
  • 提示:从“文件”中,读取字符串,将它们反序列化转换为Python的数据对象,可以正常像操作数据类型的这些方法来操作它们

22.json

  • json模块编码

使用json.dumps方法,将一个Python数据类型列表进行json格式的编码解析,

示例如下:

>>>import json #导入python 中的json模块

>>>l = [‘iplaypython’,[1,2,3],{‘name’:’xiaoming’}] #创建一个列表list l

>>>encoded_json=json.dumps(l)#将l列表,进行json格式化编码

>>>print repr(i)

>>>print encoded_json #输出结果

  • json模块解码
    解码python json格式,可以用这个模块的json.loads()函数的解析方法,
    示例如下:

>>>decode_json = json.loads(encoded_json)
>>>print type(decode_json)#查看一下解码后的对象类型

>>>print decode_json #输出结果

23.为什么要使用break:

1.给程序带来更高的效率

2.减少一些不必要的执行

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值