Python第三课

collections         --import collections

计数器

Counter  --对字典的扩展用于追踪某值的出现次数

如:import collections

str1=  ‘akdjfdlkjfewioewlkwmee‘

c = collections.Counter(str1)

print c

Counter({‘e‘: 4, ‘k‘: 3, ‘w‘: 3, ‘d‘: 2, ‘f‘: 2, ‘j‘: 2, ‘l‘: 2, ‘a‘: 1, ‘i‘: 1,‘m‘: 1, ‘o‘: 1})

也可以对列表,元组进行操作   --上期的购物车作业,可以用Counter()来计算某个货物的数量

有序字典  OrderedDict  --记住了字典元素添加的顺序

默认字典  defaultdict   --默认给字典的值定义了一个类型

普通定义字典的方法  dict1 = dict{}

这个方法            dict1 = defaultdict(list),这样定义出来的字典,每一项的value都是一个列表  defaultdict(tuple)每一项都是一个元组

对于一般方法

>>> dict1 = {}

>>> dict1[‘k1‘]

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

KeyError: ‘k1‘

对于默认字典方法

>>> dict1 = collections.defaultdict(list)

>>> dict1[‘k1‘]

[]

>>> type(dict1[‘k1‘])

<type ‘list‘>

>>> dict1 = collections.defaultdict(dict)

>>> dict1[‘k1‘]

{}

>>> type(dict1[‘k1‘])

<type ‘dict‘>

可命名元组   namedtuple   ---对元组的扩充,主要用于地理信息等

import collections

mytuple = collections.namedtuple(‘mytuple’,’[‘x’,’y’,’z’])

new = mytuple(1,2,3)

--new.x = 1  new.y=3  new.z=3

双向队列  deque   --线程安全     与列表比较

单向队列  Queue.Queue    --以后学习

迭代器和生成器

迭代器    range  内置方法_iter_   nex()

生成器   xrange   先定义,当使用时才在内存中创建,避免内存浪费

函数

内置函数

dir()          dir()          help()       type()       id()            is

abs()                  divmod()          bool()       max()      min()       sum()

len()

all()        --接收一个序列,判断,如果所有值都是真,返回真,否则假

any()         --接收一个序列,判断,只要有一个值是真,返回真,否则假

--注意,0 也为假

chr()         ord()       hex() --十六进制    oct()--八进制          bin()-二进制

range()     xrange()   enumerate() –-枚举(可用于列表,是否可用于字典?)

vars() 当前模块的所有变量   --var() 是字典类型,vars().keys()就是所有变量名称

__file__  __doc__

__name__   -放在文件最后,以标明这是入口文件

理解__name__ == ‘__main__’的使用

自定义函数

def  xxx

参数

--普通参数  形参  实参

--默认参数  必须放在最后

--动态参数

*args  def fucn(*args) 可接收多个参数(列表,元组),自动构造成元组,如果传入参数时也加入*号,那么就不会生成元组,原先是什么,传进来就是什么(对于序列);但如果是字符串,那么会拆分字符串成字符的元组

func(11,22,33,44,55)    或func(*list)

**kwargs  def func(**kwargs)  可接收多个参数(字典)

func(k1=123,k2=234,…)  或 func(**dict)

共用  *arges  **args   def  func(*args,**args)

func(11,22,33,k1=123,k2=234,..)

文件操作

打开文件

file_obj = file (‘文件路径’,’模式’)

或file_obj = open(‘文件路径’,’模式’ )  推荐使用open

文件打开模式有 r   w   a   r+

U  表示在读取时,可以将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)rU  r+U

b     表示处理二进制文件  rb wb ab

文件方法

file_obj.close()

file_obj.next()    file_obj.read([size])  读取指定字节数据  返回一个字符串

file_obj.readline() 读取一行                  file_obj.readlines()  全部读取并返回一个列表,每行为一个元素

file_obj.seek(offset[,whence])  指定指针的位置  whence默认为0 (并不是所有的文件都可以使用)

file_obj.tell()  获取当前指针位置

file_obj.truncate()           截断数据,只保留指针之前的数据

file_obj.write(str) 写一个字符串到文件 file_obj.writelines() 写一个字符串列表到文件   ――writelines也可以写字符串,但是write只能写字符串,不能写列表

writelines还可以写字典,但只会写字典的key

writelines(sequence_of_strings) -> None.  Write the strings to the file.Note that newlines are not added.  The sequence can be any iterable object(任何可以迭代的对象) producing strings. This is equivalent to calling write() for each string.

WITH   ---可以自动关闭文件

with open(‘’,’’) as f:

with open(‘a’,’r’) as f1,open(‘b’,’r’) as f2:

时间: 2024-10-17 09:38:30

Python第三课的相关文章

Python 第三课,函数。

一,几种编程思想 1.面向过程编程:根据业务逻辑从上到下实现功能, 2.函数式编程:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 3.面向对象编程:对函数进行分类和封装 二,函数的定义和使用 1. 函数的构成 def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算,如:发送邮件.计算出 [11,22,38,888,2]中的最大数等... 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据. 2.参数的分类 普通

小哈学Python第三课-字符集编码

table.hovertable { font-family: verdana, arial, sans-serif; font-size: 11px; color: #333333; border-width: 1px; border-color: #999999; border-collapse: collapse } table.hovertable th { background-color: #c3dde0; border-width: 1px; padding: 8px; borde

python第三课:安装pycharm,数据类型初识

上节内容变量if else注释 # ''' msg ''' 3个引号 打印多行 ', "" 双单引号的意义是一样的 缩进 本节内容pycharm使用 集成开发环境(IDE,Integrated Development Environment ) VIM #经典的linux下的文本编辑器 Emacs #linux 文本编辑器, 比vim更容易使用 Eclipse # Java IDE,支持python, c ,c++ Visual Studio # 微软开发的 IDE, python,c

[python第三课]分支结构

print("3.第三章:分支结构\n(1)if语句的使用\nif 条件:\n\t语句1\nelse\n\t语句2\n含义:如果条件对,则执行语句1,如果条件不对,则执行语句2\n") 原文地址:https://www.cnblogs.com/XiaoHongLactasoy/p/12610066.html

python第三课笔记

以下哪个变量的命名不正确?为什么? (A) MM_520  (B) _MM520_  (C) 520_MM  (D) _520_MM 答:C不正确,不能数字开头 在不上机的情况下,以下代码你能猜到屏幕会打印什么内容吗? >>>myteacher = '小甲鱼' >>>yourteacher = myteacher >>>yourteacher = '黑夜' >>>print(myteacher) 复制代码 答:小甲鱼 在不上机的情况下

MIT Python 第三课一般代码样式 循环式程序 第15分钟:求16的平方根:4

求16的平方根:4 >>> #显示16的平方根 >>> x=16 >>> ans=0 >>> while ans*ans<16: ans=ans+1 print(ans) 1 2 3 4 >>> print(ans) 4 >>> 终极测试中应该是<0 没有=0 >>> x=16 >>> ans=0 >>> while ans*ans&

【Web探索之旅】第三部分第三课:协议

内容简介 1.第三部分第三课:协议 2.第四部分预告:Web程序员 第三部分第三课:协议 之前的课,我们学习了Client-Server模型的客户端语言和服务器语言. 客户端语言有HTML,CSS和JavaScript. 服务器语言有PHP,Java,Python,Ruby,C#,还有新兴的Go语言(Google推出的很强大的编程语言). 不过,要使得Web中这么多机器之间能够相互通信,例如 客户机A对服务器E说:"你好,请发送baidu.com这个网页给我",是不能借助客户端或服务器

Python作业第一课

零基础开始学习,最近周边的同学们都在学习,我也来试试,嘿嘿,都写下来,下次不记得了还能来看看~~ Python作业第一课1)登陆,三次输入锁定,下次不允许登陆2)设计一个三级菜单,菜单内容可自行定义,任意一级输入q则退出程序,如果输入b则返回上一级 --以上两个题目涉及几个知识点:文档的读取,文档的写入,列表的操作,循环的使用,字符串的一些操作首先回顾一下这几个知识点a)文档的读取,几个常用的f = open("test.log","w")这个w是参数,可换成别的参

【Web探索之旅】第二部分第三课:框架和内容管理系统

内容简介 1.第二部分第三课:框架和内容管理系统 2.第二部分第四课预告:数据库 第二部分第三课:框架和内容管理系统 上一课我们介绍了服务器端的编程语言,有PHP,Java,Python,Ruby,C#等. 这一课我们来学习基于这些语言衍生出来的框架(Framework),然后我们再来看看什么是内容管理系统(CMS). 框架(Framework) 什么是Framework(框架)呢?要给出一个准确的定义很难.因为它有不少不同的定义.可以自行参看这个百度百科: http://baike.baidu