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

Studing Day4 - python基础4

时间:2018-03-08 12:06:58      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:encoding   打开   coding   代码块   过多   变量   span   扩展   全局   

2018.3.7

一、列表作用

1、去重

去除列表中重复的元素并且变成一个集合list = set(list)

 

2、关系测试

取list1和list2列表的交集 list1.intersection=(list2)

取list1和list2列表的并集 list1.union=(list2)

取list1和list2列表的差集 list1.difference=(list2)

(取出list1里面有,list2里面没有的)

取list1和list2列表的对称差集

list1.symmetric_difference(list2)

判断list1是否是list2的子集list1.issubset(list2)

判断list1是否是list2的父集list1.issuperset(list2)

判断list1和list2列表是否没有交集list1.isdisjoint(list2)

用运算符表达

交集 list1 & list2    并集 sslist1 | list2

差集 list1 - list2     对称差集list1 ^ list2

 

集合增删改查

list1.add(999)  集合没有插入,只有增加,并且是无序的

list1.update([888,7,5]) 添加多项

list1.remove(1)删除  

判断key是否在字典里  key in list1

判断key是否不是在字典里 key not in list1

二、文件操作

f = open(“yesterday”, ‘a’,encoding = “utf-8”)

文件句柄

a  (append)添加

w  (write)写,如果文件不存在,创建新文件写入

r+ (读写模式)以读和追加(追加在文件尾)的模式打开

w+ 先创建一个文件,再写,最后再读

rb 二进制读文件

rb应用地方

1、python3.0中网络传输只能用二进制

2、一行一行的读文件,在第二行加入分割线

(f.readlines只适合读小文件)

循环文件读出来,

for index, line in enumerate(f.readlines()):

    if index == 2:

        print("-----分割线-----")

        continue

    print(line.strip())

处理大文件,一行一行的读,读完一行就删除

#高级写法

count = 0

for line in f:

    if count == 1:

        print("-----分割线-----")

        count += 1

        continue

    print(line.strip())

    count += 1

f.seek(0)文件光标回到最开始

文件的一些操作

f.name()         文件名字

f.flush()         实时刷新

f.truncate(10)    从第10个字符开始截断,后面的清空

 

**类似于进度条创建**

import sys,time

sys.stdout.write(‘*’)

sys.stdout.flush()

time.sleep(0.1)

 

文件修改


创建一个新文件,再逐行写入,遇到需要修改的地方进行修改再写入,达到修改文件的目的

技术分享图片

with 语句 (with代码块执行完毕时,内部会自动关闭并释放文件资源)
with open(‘log, r) as f:

技术分享图片

 

三、字符编码与转码

转码先要decode转换成unicode码再encode转换成目标编码形式

例:gbk转utf8

decode(“本身的编码格式”)

encode(“目标编码格式”)

gbk_to_utf8 = s_gbk.decode(“gbk”)

gbk_to_utf8 = gbk_to_gbk.encode(“utf8”)

 

五、函数与函数式编程

1.面向对象:类(class)

2.面向过程:过程(def)

3.函数式编程:函数(def)

 

函数是逻辑结构化和过程化的一种编程方法

使用函数的三大特点

1.代码重用    2.保持一致性   3.可扩展

 

函数返回值:

    返回值数=0;返回none

    返回值数=1;返回object

    返回值数>1;返回tuple

返回值是返回函数执行完毕的结果,用于后面程序执行方式判断

 

参数:

1.形参和实参

2.位置参数和关键字参数(标准调用:实参位置与形参位置一一对应,关键字调用:位置无固定,关键字必须在位置参数后面)

3.默认参数

4.参数组:*数组名(把N个未知参数转成元组的方式)

**字典名(把N个关键字参数转成字典的方式)

函数内局部变量只能在函数内生效

不应该在函数内部更改全局变量,非要改,用“global 全局变量”

除了字符串和整数不能再函数内改全局变量,列表、字典等都可以更改

*递归*

如果一个函数在内部调用自己,叫递归函数

特性:

1.必须有个明确的结束条件

2.每次进入更深一层递归时,问题规模相比上次递归都应有所减少

3.递归效率不高,递归层次过多会导致栈溢出

 

*函数式编程*

输入是确定的,输出就是确定的

 

*高阶函数*

变量可以指向函数,函数的参数能接受变量,那么一个函数可以接收另一个函数作为参数,这种函数就称之为高阶函数

 

作业:实现删除,创建,查询功能

 

 

 

Studing Day4 - python基础4

标签:encoding   打开   coding   代码块   过多   变量   span   扩展   全局   

原文地址:https://www.cnblogs.com/hobbyzg/p/8527086.html

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