码迷,mamicode.com
首页 > 编程语言 > 详细

python基础案例

时间:2016-06-08 14:05:31      阅读:329      评论:0      收藏:0      [点我收藏+]

标签:

范例一:

练习:元素分类

有如下值集合 [11,22,33,44,55,66,77,88,99,90...],将所有大于 66 的值保存至字典的第一个key中,将小于 66 的值保存至第二个key的值中。

即: {‘k1‘: 大于66 , ‘k2‘: 小于66}

技术分享 View Code

范例二:

技术分享 View Code

一:collection系列

1:计数器:(Counter )

Counter是对字典类型的补充,用于追踪值的出现次数。

#!/usr/bin/env python

# -*- coding:utf-8 -*-

#导入模块

import collections

collections.Counter

#传一个字符串

1 c = collections.Counter(‘fegfdsagerqfads‘) 
2 print c 
3 #结果:Counter({‘f‘: 3, ‘a‘: 2, ‘e‘: 2, ‘d‘: 2, ‘g‘: 2, ‘s‘: 2, ‘q‘: 1, ‘r‘: 1}) 

#传一个列表

d1 = [11,22,33,111,22,33,11]

d = collections.Counter(d1)

print d

#传一个元组

e = (‘aa‘,‘bbb‘,‘aa‘,‘b‘)

e1 = collections.Counter(e)

print e1

#迭代器

for item in c.elements():

print item

2:有序字典

有序字典和字典是一样的,只不过有序字典在内部使用

它是将他所有的KEY放在一个列表中,列表是有序的,这样有序字典输出的内容就是有序的。

有序字典支队第一层生效。但是你可以把内部的字典继续进行

3、默认字典(defaultdict)

 

技术分享
 1 obj_file = open(‘1.txt‘,‘r+‘) 
 2 
 3 obj_file.seek(3) 
 4 
 5 obj_file.truncate() 
 6 
 7 #不加则是将指针后面的全部删除 
 8 
 9 read_lines = obj_file.readlines() 
10 
11 print read_lines 
12 
13 结果: 
14 
15 [‘123‘] 
技术分享

#使用默认字典,定义默认类型为list,

1 dic1 = {‘k1‘:[]} 
2 dic2 = collections.defaultdict(list) #可以定义list,元组,字典都行 
3 dic1[‘k1‘].append(1) 

4、可命名元组(namedtuple)

import collections

#创建一个扩展元组tuple的类(主要用在坐标上)

技术分享 View Code

#原始的元组的创建

技术分享 View Code

5、双向队列(deque)

两端都可以取、插。

线程安全。

技术分享 View Code

6:单向队列

队列,FIFO

栈,弹夹

线程安全的

技术分享 View Code

二:迭代器和生成器

1:迭代器

对于Python 列表的 for 循环,他的内部原理:查看下一个元素是否存在,如果存在,则取出,如果不存在,则报异常 StopIteration。(python内部对异常已处理)

技术分享 View Code

实例:next函数的应用

技术分享 View Code

2:生成器

range不是生成器 和 xrange 是生成器

readlines不是生成器 和 xreadlines 是生成器

生成器内部基于yield创建,即:对于生成器只有使用时才创建,从而不避免内存浪费

技术分享 View Code

3:冒泡算法

有如下列表

[13, 22, 6, 99, 11]

请按照一下规则计算:

13 和 22 比较,将大的值放在右侧,即:[13, 22, 6, 99, 11]

22 和 6 比较,将大的值放在右侧,即:[13, 6, 22, 99, 11]

22 和 99 比较,将大的值放在右侧,即:[13, 6, 22, 99, 11]

99 和 42 比较,将大的值放在右侧,即:[13, 6, 22, 11, 99,]

13 和 6 比较,将大的值放在右侧,即:[6, 13, 22, 11, 99,]

3.1思考

a = 1 , b = 2 , 如何才能让a与b的赋值相互转换呢?

技术分享 View Code

3.2:实例

技术分享 View Code

三:函数

种类:内置函数、自定义函数、导入(第三方)函数

函数声明,不自动执行;调用后才执行

函数的参数

技术分享
 1 vars()=====当前模块的所有变量 
 2 print vars() 
 3 print __doc__ #打印当前文件的注释 
 4 print __name__ 
 5 if __name__ == ‘__main__‘: #确认是不是主函数 
 6 print ‘这是主函数‘ 
 7 print __file__ #打印文件的路径 
 8 all()接受一个序列,判断所有的值都是真则返回值,否则为假 
 9 any()只要有一个是真就是真,全部是假才为假 
10 li = [‘ccc‘,‘ ‘,15] 
11 print all(li) 
12 print any(li) 
13 lli = [‘‘] 
14 print any(lli) 
15 enumerate() 
16 li = [11,22,33,44,55] 
17 for k,v in enumerate(li): 
18  print k,v 
19 #默认从0开始,指定从1开始 
20 for k,v in enumerate(li,1): 
21  print k,v 
技术分享

1:常用的内置函数

技术分享

函数式编程和面向过程编程的区别:

函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可

面向对象:对函数进行分类和封装,让开发"更快更好更强..."

函数式编程最重要的是增强代码的重用性和可读性

2:函数的定义和使用

def 函数名(参数):

函数体

函数的定义主要有如下要点

1:def:表示函数的关键字

2:函数名:函数的名称,日后根据函数名调用函数

3:函数体:函数中进行一系列的逻辑的计算

4:参数:为函数体提供数据

5:返回值:当函数执行完毕后,可以给调用者返回数据

3:参数:(形参和实参)

普通参数

普通参数必须传参

技术分享
1 # ######### 定义函数 ######### 
2 # name 叫做函数func的形式参数,简称:形参 
3 def func(name): 
4  print name 
5 # ######### 执行函数 ######### 
6 # ‘曹小贱‘ 叫做函数func的实际参数,简称:实参 
7 func(‘曹小贱‘) 
技术分享

默认参数

1:不传;则使用默认值

2:默认参数必须放在参数列表的最后,也可以有多个默认参数

技术分享
1 def func(name, age = 18): 
2  print "%s:%s" %(name,age) 
3 # 指定参数 
4 func(‘曹小贱‘, 19) 
5 # 使用默认参数 
6 func(‘曹小贱‘) 
技术分享

注:默认参数需要放在参数列表最后

动态参数

1:def func(*args): 可以接收元组和列表

2:内部自动构造元组

3:如果传递的是序列,可以使用*来避免内部构造元组

4:def func(**kwargs): 可以接收字典

动态参数1:

技术分享 View Code

动态参数2:

技术分享 View Code

动态参数3:

技术分享 View Code

4:邮件报警

范例一:

技术分享 View Code

范例二:

技术分享 View Code

四:文件操作

1:基础知识

操作文件的步骤:

打开文件-----操作文件-----关闭文件

打开方式:

obj_file = open(‘path‘,‘mode‘)

也有file的方式打开,但是open是调用file方式来执行的,推荐使用open

打开模式:

r:只读模式(默认)

w:只写模式,不可读;不存在则创建文件,存在则删除其中的内容

a:追加模式,可读,不存在则创建,存在则追加,但是会在指针的位置后面添加(下面会讲到指针的位置)

r+:可读写文件,还可以追加(一般常用)

U:表示在读取时,可以将\r\n \r\n自动转换成\n(一般与r、r+一起使用)

2:操作文档

技术分享 View Code

3:例子

file.tell

显示指针所在的位置

技术分享 View Code

file.seek

将指针放在执行的位置

技术分享 View Code

file.truncate

截取数据

原文件内容是:1234567

方式一:

技术分享 View Code

方式二:

技术分享 View Code

方式三:

技术分享 View Code

 

解析:

方式一是从文件开始,使用truncate,没有指定size,则将指针后面的全部删除。

方式二是从指针位置3开始删除。但是原文件中的前面的123还存在

方式三是指定size大小,仅仅保留前三个位置,打印出前面的123,且还存在在原文件中

4:with

with的出现是为了避免打开文件后忘记关闭文件,而造成进程占用。

使用方式:

with open(‘db‘,r) as read_file:

with open(‘db1‘) as read_file1,open(‘db2‘) as read_file2:

python基础案例

标签:

原文地址:http://www.cnblogs.com/kevingrace/p/5569752.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!