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

学习python:day3

时间:2016-08-12 00:39:52      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

1.集合操作

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

s = set([3,5,9,10]) #创建一个数值集合

t = set("Hello") #创建一个唯一字符的集合


a = t | s # t 和 s的并集

b = t & s # t 和 s的交集

c = t – s # 求差集(项在t中,但不在s中)

d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中)



基本操作:

t.add(‘x‘) # 添加一项

s.update([10,37,42]) # 在s中添加多项



使用remove()可以删除一项:

t.remove(‘H‘)


len(s)
set 的长度

x in s
测试 x 是否是 s 的成员

x not in s
测试 x 是否不是 s 的成员

s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中

s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中

s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素

s.intersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素

s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素

s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素

s.copy()
返回 set “s”的一个浅复制

2.文件操作

对文件操作流程

  1. 打开文件,得到文件句柄并赋值给一个变量
  2. 通过句柄对文件进行操作
  3. 关闭文件 

打开文件的模式有:

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则创建;存在则删除内容;】
  • a,追加模式。【可读;   不存在则创建;存在则只追加内容;】

"+" 表示可以同时读写某个文件

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

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

  • rU
  • r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)

  • rb
  • wb
  • ab

文件修改

f = open("yesterday2.txt","r",encoding="utf-8")
f_new = open("yesterday2_bak.txt","w",encoding="utf-8")

for line in f:
if "张三李四" in line:
line = line.replace("张三李四","zhangsanlisi")
f_new.write(line)
f.close()
f_new.close()

文件读写

f = open("yesterday.txt",‘r+‘,encoding="utf-8") #文件句柄 encoding=utf-8
#a = append 追加不能读,追加不覆盖 w覆盖
data = f.read()
print(data)

#f.write("我爱北京天安门\n")
#f.write("taiyanghong")
#print(f)
#low的循环
‘‘‘
for index,line in enumerate(f.readlines()):
if index == 9:
print("--------fengexian------")
continue
print(line.strip())
‘‘‘
#hight
for line in f:
print(line)

print(f.tell())#打印光标位置
f.seek(10)#光标重新定位

3. 字符编码与转码

详细文章:http://www.cnblogs.com/luotianshuai/articles/5735051.html 

技术分享

4.函数参数与局部变量

#列表 字典 集合 类能在局部变量中更改
#字符串 整数 不行
school = "old boy"
def chang_name(name):
global school
school = "qinghua"
print("before chang",name)
name = "Alex li" #这个函数就是这个变量的作用域
print("after chang",name)

name = "alex"
chang_name(name)
print(name)
print("school:",school)
---------------------------
import time
def logger_test():
time_format = "%Y-%M-%D %X"
time_current = time.strftime(time_format)
with open(‘a.txt‘,‘a+‘) as f:
f.write("%s end action \n" %time_current)
def test1():
print("test1 starting action")
logger_test()
def test2():
print("test2 starting action")
logger_test()
def test3():
print("test3 starting action")
logger_test()
test1()
test2()
test3()
def test4(x,y,z):
print(x)
print(y)
print(z)
test4(y=2,x=1,z=6)
test4(4,5,9)
test4(4,z=3,y=8)

def test5(x,y=2):
print(x)
print(y)
test5(1,3)
#默认参数特点:调用函数的时候,默认函数非必须传递
#用途:1,默认安装值
# 2,默认值
#接收多个参数组成元组
#*args:接受N个位置参数,转换成元组
def test6(x,*args):
print(x)
print(args)
test6(1,2,3,45,66,8)
---------------------------
#吧N个关键字参数写成字典,接收key:value
def test(**kargs):
print(kargs)
print(kargs[‘name‘])
print(kargs[‘age‘])
test(name="alex",age="8",sex="F")
test(**{‘name‘:‘alex‘,‘age‘:‘8‘})

def test2(name,**kwargs):
print(name)
print(kwargs)
test2(‘alex‘,age=18,sex=‘F‘)

def test3(name,*args,**kwargs):
print(name)
print(args)
print(kwargs)
test3(‘alex‘,2,3,4,5,age=‘18‘,sex=‘M‘)
#位置参数不能放在关键字参数后

5. 递归

在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。

def calc(n):
print(n)
if int(n/2) > 0:
return calc(int(n/2))
print("---",n)
calc(10)

学习python:day3

标签:

原文地址:http://www.cnblogs.com/liuyuchen123456/p/5763070.html

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