• python之路(sed,函数,三元运算)


    python之路(sed,函数,三元运算)

    一、sed集合

    1、set无序,不重复序列

    2、创建

     1 se = {11,22,33,33,44}
     2 list() #只要是一个类加上()自动执行 list __init__
     3 list = [11,22]
     4 
     5 s1 = set(list)
     6 print(s1)
     7 
     8 #创建集合
     9 s1 = {11,22}
    10 s2 = set('可循环的')
    11 
    12 #操作集合
    13 s = set()
    14 print(s)
    15 s.add(123)#可追加不可重复
    16 s.add(123)
    17 s.clear()
    18 print(s)

    3、功能

     1 #取不同都元素
     2 s1 = {11,22,33}
     3 s2 = {22,33,44}
     4 s1.difference(s2) #s1中存在s2中不存在的11
     5 s2.difference(s1) #s2中存在s1中不存在的44
     6 s3 = s1.symmetric_difference(s2)#取s1,s2不同的值11,44
     7 print(s3)
     8 s1.difference_update(s2)#把s1中存在s2中不存在的更新到s1
     9 s1.symmetric_difference_update(s2)#取s1,s2不同的值11,44更新到s1
    10 print(s1)
    11 
    12 
    13 #删除
    14 s1 = {11,22,33}
    15 s1.discard(11) #指定移除11,如果没有移除对象不报错也不移除
    16 s1.remove(1111)#指定移除,如果额没有移除对象,则报错
    17 ret = s1.pop()#随机移除,移除内个元素,就把内个元素赋值给ret
    18 print(ret)
    19 
    20 #取并集
    21 s1 = {'aa'}
    22 list = [11,22,33,44]
    23 s1.update(list) #加一个迭代的元素,更新到s1,s1的初始值不能为空
    24 print(s1)
    25 
    26 
    27 s1 = {'aa'}
    28 list = [11,22,33,44]
    29 s1.update(list) #加一个迭代的元素,更新到s1,s1的初始值不能为空
    30 print(s1)

    二、函数

    1、函数结构

    1 # def f1():
    2 #     asdad
    3 #     adfasad
    4 #     adsfasdf
    5 # 1、def关键字,创建函数
    6 # 2、函数名
    7 # 3、()
    8 # 4、函数体
    9 #5、返回值

    2、函数特性

    1 def f1():
    2     print(123)
    3     return '111'
    4     print(456)
    5 ret = f1()    #下函数中,一旦执行return,函数执行过程立即终止
    6 #默认返回值None

    3、各种参数

     1 #1、普通参数(将严格按照顺序讲师级参数赋值给形式参数)
     2 #2、默认参数(必须防止在参数列表的最后)
     3 #3、指定参数(将实际参数赋值给形式参数)
     4 #4、*  默认将传入的参数全部放在一个元组里,f1(*li)
     5 #  **  默认将传入的参数全部放在一个字典里,f1(**dic)
     6 
     7 def send(xxoo,content,xx):         #普通参数一一对应
     8     print('发送成功',xxoo,content,xx)
     9     return True
    10 while True:
    11     em = input('输入邮箱')
    12     result = send(em,'SB','ok')
    13     if result == True:
    14         print('成功')
    15     else:
    16         print('失败')
    17 
    18 
    19 def send(xxoo,content,xx='ok'):      #默认参数,可以输入两个,则xx等于ok,输入三个则xx等于输入值
    20     print('发送成功',xxoo,content,xx)   #如果给某个参数设置为默认参数,那么这个参数必须放在最后
    21     return True
    22 send('name','zk')
    23 
    24 def send(xxoo,content):     #指定参数
    25     print(xxoo,content)
    26     return True
    27 send(content='123',xxoo='abc')
    28 
    29 
    30 def f1(*args):       #动态参数*
    31     print(args)
    32 f1(11,22,33,44)         #参数放在一个元组中
    33 
    34 li = [11,22,33,44]
    35 f1(li)    #把列表作为一个元素
    36 f1(*li)    #把列表里的每一个元组作为元组里的一个元素
    37 
    38 
    39 def f1(**args):       #动态参数**
    40    print(args)
    41 f1(name='alex')         #指定参数放在一个字典中
    42 dic={'k1':'v1','k2':'v2'}
    43 f1(kk=dic)
    44 f1(**dic)   #把字典赋值给动态参数

    3、格式化输出

     1 #格式化输出
     2 #str format格式化输出
     3 s1 = "i am {0}, age {1}".format("alex", 18)
     4 print(s1)
     5 s2 = "i am {0}, age {1}".format(*["alex", 18])
     6 print(s2)
     7 
     8 s1 = "i am {name}, age {age}".format(name='alex', age=18) #前面写的name后面传入参数时必须也是name
     9 dic={'name':'alex','age':18}
    10 s2 = "i am {name}, age {age}".format(**dic)
    11 print(s1,'
    ',s2)

    4、def执行顺序

    1 def f1(a1, a2):
    2     return a1 + a2
    3 def f1(a1, a2):
    4     return a1 * a2
    5 ret = f1(8, 8)   #从上向下执行 ret=64,第一个f1不生效
    6 print(ret)

    5、传参数

    1 def f1(a1):
    2     a1.append(999)
    3 li = [11,22,33,44]
    4 f1(li)
    5 print(li) #li=11,22,33,44,999#强调传的是引用所以列表会发生改变

    6、全局变量

     1 #全局变量,所有的作用域里都可读
     2 #***对全局变量进行【重新赋值】,需要global***
     3 NAME = 'zkk'
     4 def f1():
     5     age = 18
     6     global NAME # 表示,name是全局变量
     7     NAME = "123"
     8     print(age, NAME)
     9 def f2():
    10     age = 19
    11     print(age, NAME)
    12 f1()
    13 f2()
    14 print(NAME)

    三、三元运算

     1 if 1 == 1:
     2     name = 'alex'
     3 else:
     4     name = 'SB'
     5 print(name)
     6 
     7 name = 'alex' if 1 == 1 else 'sb'  #if后面是条件,条件成立执行if前面的,否则执行else后面的
     8 print(name)
     9 
    10 def f1(a1):
    11     return a1 + 100
    12 ret = f1(10)
    13 print(ret)
    14 f2 = lambda a1: a1 + 100 #f2函数名,a1参数,函数体a1+100,只能一行
    15 r2=f2(1)
    16 print(r2)

    四、文件操作

    1、打开文件

     1 # f = open('db', 'r') # 只读
     2 # f = open('db', 'w') # 只写,先清空原文件
     3 # f = open('db', 'x') # 文件存在,报错;不存在,创建并只写
     4 # f = open('db', 'a') # 追加
     5 
     6 f = open('db','r',encoding='utf-8')
     7 data = f.read()
     8 print(data,type(data))
     9 f.close()
    10 
    11 f = open('db','r+',encoding='utf-8')
    12 #如果模式无b,则read按照字符读取
    13 data = f.read(1)
    14 print(f.tell()) #调整你当前的位置(字节)
    15 f.seek(f.tell())#把当前的指针位置向后覆盖,以字节的方式找
    16 f.write('777')
    17 f.close()

    2、操作文件

     1 tell() 获取当前指针位置(字节)
     2 seek(1) 指针跳转到指定位置(字节)
     3 
     4 f = open('db','a')  #强刷刷新
     5 f.write('123')
     6 f.flush()
     7 input('assdafa')
     8 
     9 f = open('db','w')
    10 f.readable()
    11 print(f.readable())  #查看是否可读
    12 
    13 
    14 f = open('db','r+',encoding='utf-8')
    15 f.seek(3)
    16 f.truncate()#截断,根据指针位置
    17 f.close()
    18 
    19 for循环文件对象 f=open(xxx)
    20 for line in f:
    21 print(line)

    3、关闭文件

     1 f.close()
     2 with open('xb') as f:
     3     pass
     4 
     5 with open('db','r',encoding='utf-8') as f,open('db2','w',encoding='utf-8') as f2:
     6     times =0
     7     for line in f1:         #一边读取一边写
     8         if times <= 10:
     9             f2.write(line)
    10         else:
    11             break
    12 
    13 
    14 with open('db','r',encoding='utf-8') as f1,open('db2','w',encoding='utf-8') as f2:
    15     for line in f1:
    16         print(line,type(line))
    17         new_str = line.replace('alex','st')
    18         f2.write(new_str)#同时打开两个文件

    五、json

    1 import json
    2 inp_str ='[11,22,33,44]'
    3 inp_list=json.loads(inp_str)  #字符串转换成列表
    4 print(inp_list)
    5 
    6 inp_str ='{"k1":123, "k2": "wupeiqi"} '  #内部必须是双引号
    7 inp_dic = json.loads(inp_str)  # 根据字符串书写格式,将字符串自动转换成 字典类型
    8 print(inp_dic)

     六、内置变量

     1 # utf-8 一个汉字:三个字节
     2 # gbk 一个汉字:二个字节
     3 # utf-8
     4 # 一个字节8位,一个汉字三个字节
     5 
     6 
     7 #字节转化成字符串
     8 new_str = str(bytes("李杰", encoding="utf-8"), encoding="utf-8")
     9 new_byt=bytes("李杰", encoding="utf-8")
    10 new_str2 = str(b'xe6x9dx8exe6x9dxb0',encoding='utf-8')
    11 print(new_str2,new_byt)
    12 
    13 
    14 a=bytes('李杰',encoding='utf-8')
    15 b=bytes('',encoding='utf-8')
    16 print(a,'
    ',b)
  • 相关阅读:
    CentOS Linux使用crontab运行定时任务详解
    pycharm自定义代码片段
    迭代器:斐波那契数列
    mysql复习-来源考试
    复杂和遗留的数据库schema
    ubuntu系统AndroidStudio修改内存大小
    Hibernate设置时间戳的默认值和更新时间的自动更新
    Android 自定义view --圆形百分比(进度条)
    MYSQL 更新时间自动同步与创建时间默认值共存问题
    ubuntu virtualbox xp无声音解决
  • 原文地址:https://www.cnblogs.com/zhangkui/p/5536688.html
Copyright © 2020-2023  润新知