zoukankan      html  css  js  c++  java
  • day03

    1.set集合--无序的,不重复的序列,类似dict,但是只有key,没有value

    创建一个集合:

    s1 = {11,22,33}

    s2 = set((22,33,44))必须传入一个可迭代对象(tuple、list、字符串)作为参数

    s3 = set([11,22,33])

    s4 = set('112233')

    s1.add(44)增加一个元素

    s1.update(s4)批量增加

    s1.difference(s2) s1里边有的,s2里边没有的

    s2.difference(s1) s2里边有的,s1里边没有的

    2.异常检查 try except else finally语句

    try为异常检语句

    如果try语句范围内代码执行成功,则else下的语句也执行

    否则执行except下的语句

    finally下的代码无论try是否成功都执行。

    3.while  else 语句

    当while循环顺利执行完毕后,else语句会被执行,当while循环被中断(例如break),else语句不会执行。

    下边代码 else会执行

    1 count = 0
    2 while count < 3:
    3     print(count+1)
    4     count += 1
    5 else:
    6     print('else执行了')

    下边代码else不会执行

    1 count = 0
    2 while count < 3:
    3     print(count+1)
    4     if count ==2:
    5         break
    6     count += 1
    7 else:
    8     print('else执行了')

     

    4.函数返回值return

    如果函数里边没有写return语句,函数会自动返回一个值None

    1 def func():
    2     print('test')
    3 
    4 req = func()
    5 print(req)

    5.os.path.exists(filename)用来判断文件是否存在

    举例:

    1  file = '/root/result.txt'
    2  if os.path.exists(file):
    3      os.remove(file)

    6.函数的参数:

    普通参数:(形式参数<-->实际参数)

    举例:

    def func1(name, age, sex):  # name,age,sex为形式参数
        print(name, age, sex)
    
    
    func1('Jack', 22, 'male') # Jack,22,male为实际参数

    默认参数:(必须放在参数列表的后边)

    def func1(name, age, sex='male'): # sex为默认参数
    print(name, age, sex)


    func1('Miffy', 22, 'female')
    func1('Terry', 23)

    指定参数:

    def func1(name, age, sex='male'):
        print(name, age, sex)
    
    
    func1(age=22, sex='female', name='Lily')  # 不必注意顺序
    
    

    动态参数:

    一个*

    如果传的参数是单个元素,默认将传入的参数放到一个元祖中,如果参数是一个列表,则将列表作为元祖的一个元素。

    def func1(*args):
        print(args)
    
    func1(11, 22, 33, 44)
    def func1(*args):
        print(args)
    
    l1 = ['aa','bb','cc']
    func1(11, l1, 33, 44)

     如果给参数加上*,将会把元素通过for循环展开把参数的每个元素组成一个元祖。

    def func1(*args):
        print(args)
    
    l1 = ['aa','bb','cc']
    func1(*l1)

     动态参数:

    **2个星

    默认传入一个指定参数,将指定参数以key,value的方式放到一个字典中。

    def func1(**args):
        print(args)
    
    func1(name='terry')

    如果传入的指定参数的值为字典,dic的value将为一个字典。

    def func1(**args):
        print(args)
    
    
    d1 = {'k1': 'v1', 'k2': 'v2'}
    func1(dic=d1)

    如果传入的字典带**,将会把传入的字典的每个元素放入新的字典中。

    def func1(**args):
        print(args)
    
    
    d1 = {'k1': 'v1', 'k2': 'v2'}
    func1(**d1)

    万能参数(*args,**kwargs)必须一个星在前边,2个星的在后边 (args,kwargs可以随便写,一般建议写成这样)

    def func1(*args, **kwargs):
    print(args)
    print(kwargs)

    d1 = {'k1': 'v1', 'k2': 'v2'}
    func1(11,22,33,dict=d1)

    python的字符串format函数:其实就是万能参数的形式

    举例:

    s = 'I am {0},my age is {1}'.format('terry', 18)
    print(s)
    s = 'I am {0},my age is {1}'.format(*['terry', 18])
    print(s)

    s = 'I am {name},my age is {age}'.format(age=18, name='terry')
    print(s)
    
    d1 = {'name':'terry', 'age':18}
    s = 'I am {name},my age is {age}'.format(**d1)
    print(s)

    python的函数传参数传递的是一个引用,而非重新复制一份参数

    例子:

    def func1(a1):
        a1.append(999)
    
    l1 = [11, 22, 33]
    func1(l1)
    print(l1)                            如果是重新复制的话,a1指向的列表是另一个地址,所以a1.append(999)和l1是没有关系的
                          如果是引用的话,a1和l1都指向同一个列表地址,a1.append(999)后,l1也会改变。
                          如下执行结果

     7.三元运算符(对于简单的if else语句可写成三元运算符的形式)

    if 1 == 1:
        name = 'alex'
    else:
        name = 'eric'
    
    
    name = 'alex' if 1 == 1 else 'eric'

     8.lamda表达式(对于简单的函数可以写成lamda表达式的方式)

    def f1(a1):
        return a1 + 100
    print(f1(10))
    
    f = lambda a1: a1 + 100
    print(f(10))

     9.python 内置函数bytes()

    s = '奥运'
    
    ret = bytes(s,encoding='utf-8') # 用utf-8编码,一个汉字占3个字节
    print(ret)
    
    ret = bytes(s,encoding='gbk')  # 用gbk编码,一个汉字占2个字节
    print(ret)

    10.文件操作

    f = open('xxx','r+') # 可读,可写

    f.tell() # 获取指针,以字节为单位

    f.seek(1) # 调整当前指针的位置,从指针位置往后写,后边的内容会覆盖,以字节为单位。

    f.flush() # 强刷

    f.truncate() #截断,将指针后边的内容清空

    for 循环迭代文件:

    f = open('xxx')

    for line in f:

      print(line)

    f.close()

  • 相关阅读:
    INSERT INTO ON DUPLICATE KEY UPDATE
    page to frame
    指定人提交
    在结构体嵌入接口
    排序 /src/sort/zfuncversion.go:136
    Modification should be made to copies of the returned MD.
    setTimeout 定时器的编号 实际延时比设定值更久的原因:最小延迟时间
    IOPS(Input/Output Operations Per Second)是一个用于计算机存储设备(如硬盘(HDD)、固态硬盘(SSD)或存储区域网络(SAN))性能测试的量测方式,可以视为是每秒的读写次数。和其他性能测试一样,存储设备制造商提出的IOPS不保证就是实际应用下的性能。
    Working Around Memory Leaks in Your Django Application
    celery 内存泄露
  • 原文地址:https://www.cnblogs.com/terrycy/p/5774597.html
Copyright © 2011-2022 走看看