python之路(sed,函数,三元运算)
2016-05-28 04:37
656 查看
python之路(sed,函数,三元运算)
一、sed集合
1、set无序,不重复序列2、创建
se = {11,22,33,33,44} list() #只要是一个类加上()自动执行 list __init__ list = [11,22] s1 = set(list) print(s1) #创建集合 s1 = {11,22} s2 = set('可循环的') #操作集合 s = set() print(s) s.add(123)#可追加不可重复 s.add(123) s.clear() print(s)
3、功能
#取不同都元素 s1 = {11,22,33} s2 = {22,33,44} s1.difference(s2) #s1中存在s2中不存在的11 s2.difference(s1) #s2中存在s1中不存在的44 s3 = s1.symmetric_difference(s2)#取s1,s2不同的值11,44 print(s3) s1.difference_update(s2)#把s1中存在s2中不存在的更新到s1 s1.symmetric_difference_update(s2)#取s1,s2不同的值11,44更新到s1 print(s1) #删除 s1 = {11,22,33} s1.discard(11) #指定移除11,如果没有移除对象不报错也不移除 s1.remove(1111)#指定移除,如果额没有移除对象,则报错 ret = s1.pop()#随机移除,移除内个元素,就把内个元素赋值给ret print(ret) #取并集 s1 = {'aa'} list = [11,22,33,44] s1.update(list) #加一个迭代的元素,更新到s1,s1的初始值不能为空 print(s1) s1 = {'aa'} list = [11,22,33,44] s1.update(list) #加一个迭代的元素,更新到s1,s1的初始值不能为空 print(s1)
二、函数
1、函数结构# def f1(): # asdad # adfasad # adsfasdf # 1、def关键字,创建函数 # 2、函数名 # 3、() # 4、函数体 #5、返回值
2、函数特性
def f1(): print(123) return '111' print(456) ret = f1() #下函数中,一旦执行return,函数执行过程立即终止 #默认返回值None
3、各种参数
#1、普通参数(将严格按照顺序讲师级参数赋值给形式参数) #2、默认参数(必须防止在参数列表的最后) #3、指定参数(将实际参数赋值给形式参数) #4、* 默认将传入的参数全部放在一个元组里,f1(*li) # ** 默认将传入的参数全部放在一个字典里,f1(**dic) def send(xxoo,content,xx): #普通参数一一对应 print('发送成功',xxoo,content,xx) return True while True: em = input('输入邮箱') result = send(em,'SB','ok') if result == True: print('成功') else: print('失败') def send(xxoo,content,xx='ok'): #默认参数,可以输入两个,则xx等于ok,输入三个则xx等于输入值 print('发送成功',xxoo,content,xx) #如果给某个参数设置为默认参数,那么这个参数必须放在最后 return True send('name','zk') def send(xxoo,content): #指定参数 print(xxoo,content) return True send(content='123',xxoo='abc') def f1(*args): #动态参数* print(args) f1(11,22,33,44) #参数放在一个元组中 li = [11,22,33,44] f1(li) #把列表作为一个元素 f1(*li) #把列表里的每一个元组作为元组里的一个元素 def f1(**args): #动态参数** print(args) f1(name='alex') #指定参数放在一个字典中 dic={'k1':'v1','k2':'v2'} f1(kk=dic) f1(**dic) #把字典赋值给动态参数
3、格式化输出
#格式化输出 #str format格式化输出 s1 = "i am {0}, age {1}".format("alex", 18) print(s1) s2 = "i am {0}, age {1}".format(*["alex", 18]) print(s2) s1 = "i am {name}, age {age}".format(name='alex', age=18) #前面写的name后面传入参数时必须也是name dic={'name':'alex','age':18} s2 = "i am {name}, age {age}".format(**dic) print(s1,'\n',s2)
4、def执行顺序
def f1(a1, a2): return a1 + a2 def f1(a1, a2): return a1 * a2 ret = f1(8, 8) #从上向下执行 ret=64,第一个f1不生效 print(ret)
5、传参数
def f1(a1): a1.append(999) li = [11,22,33,44] f1(li) print(li) #li=11,22,33,44,999#强调传的是引用所以列表会发生改变
6、全局变量
#全局变量,所有的作用域里都可读 #***对全局变量进行【重新赋值】,需要global*** NAME = 'zkk' def f1(): age = 18 global NAME # 表示,name是全局变量 NAME = "123" print(age, NAME) def f2(): age = 19 print(age, NAME) f1() f2() print(NAME)
三、三元运算
if 1 == 1: name = 'alex' else: name = 'SB' print(name) name = 'alex' if 1 == 1 else 'sb' #if后面是条件,条件成立执行if前面的,否则执行else后面的 print(name) def f1(a1): return a1 + 100 ret = f1(10) print(ret) f2 = lambda a1: a1 + 100 #f2函数名,a1参数,函数体a1+100,只能一行 r2=f2(1) print(r2)
四、文件操作
1、打开文件# f = open('db', 'r') # 只读 # f = open('db', 'w') # 只写,先清空原文件 # f = open('db', 'x') # 文件存在,报错;不存在,创建并只写 # f = open('db', 'a') # 追加 f = open('db','r',encoding='utf-8') data = f.read() print(data,type(data)) f.close() f = open('db','r+',encoding='utf-8') #如果模式无b,则read按照字符读取 data = f.read(1) print(f.tell()) #调整你当前的位置(字节) f.seek(f.tell())#把当前的指针位置向后覆盖,以字节的方式找 f.write('777') f.close()
2、操作文件
tell() 获取当前指针位置(字节) seek(1) 指针跳转到指定位置(字节) f = open('db','a') #强刷刷新 f.write('123') f.flush() input('assdafa') f = open('db','w') f.readable() print(f.readable()) #查看是否可读 f = open('db','r+',encoding='utf-8') f.seek(3) f.truncate()#截断,根据指针位置 f.close() for循环文件对象 f=open(xxx) for line in f: print(line)
3、关闭文件
f.close() with open('xb') as f: pass with open('db','r',encoding='utf-8') as f,open('db2','w',encoding='utf-8') as f2: times =0 for line in f1: #一边读取一边写 if times <= 10: f2.write(line) else: break with open('db','r',encoding='utf-8') as f1,open('db2','w',encoding='utf-8') as f2: for line in f1: print(line,type(line)) new_str = line.replace('alex','st') f2.write(new_str)#同时打开两个文件
五、json
import json inp_str ='[11,22,33,44]' inp_list=json.loads(inp_str) #字符串转换成列表 print(inp_list) inp_str ='{"k1":123, "k2": "wupeiqi"} ' #内部必须是双引号 inp_dic = json.loads(inp_str) # 根据字符串书写格式,将字符串自动转换成 字典类型 print(inp_dic)
六、内置变量
# utf-8 一个汉字:三个字节 # gbk 一个汉字:二个字节 # utf-8 # 一个字节8位,一个汉字三个字节 #字节转化成字符串 new_str = str(bytes("李杰", encoding="utf-8"), encoding="utf-8") new_byt=bytes("李杰", encoding="utf-8") new_str2 = str(b'\xe6\x9d\x8e\xe6\x9d\xb0',encoding='utf-8') print(new_str2,new_byt) a=bytes('李杰',encoding='utf-8') b=bytes('张',encoding='utf-8') print(a,'\n',b)
相关文章推荐
- python学习资源
- 用Python写一个发邮件模块
- 121. Best Time to Buy and Sell Stock [easy] (Python)
- 线性回归总结及python实现
- python自动翻译实现方法
- Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
- Python - 数字转换字符串
- 安装Python管理包pip,并利用pip安装 scrapy框架
- python调用php函数
- mac下的应用程序发布 及 打包(Python写的脚本,可打包第三方库)
- python 练习 28
- python 练习 29
- python 练习 30
- Python 练习 31
- python 练习 26
- python 练习 25
- python 练习24
- python 练习 23
- python 练习 22
- python 练习 27