您的位置:首页 > 编程语言 > Python开发

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: