• python基础3


    一.python函数分为3种:
      1.内置函数:python为我们提供的快捷方式
        #1.vars() 当前模块的所有变量,常用的包括下面3个:
          1.'__doc__' 表示当前文件的注释的内容,在__doc__变量中
          2.'__name__' 表示当前文件的主函数,在__name__变量中
          3.'__file__' 表示当前文件的路径,在__file__变量中

        #2.reload() ---用于再次导入,而不用import
        #3.pow(2,11) ----表示2的11次方

        #4.常用的内置函数
          len():接收一个序列,返回序列的长度
          all():接收一个序列,判断这个常用的序列,序列中所有的值都为真,返回真,否则,一旦有一个为假,为假
    用于写web界面,用户输入用户名、密码的一种判定
          any():接收一个序列,判断这个序列,序列中的值只要有1个为真就为真,返回真,否则都是假,才为假

    ==========================
    >>> li=['1','','3'] #列表里面有一个元素为空
    >>> all(li) #有一个为空就为假
    False
    >>> any(li) #只要有1个是真就为真
    True
    >>> lt=['1','2','3'] 
    >>> all(lt) #全部为真就为真
    True
    

      

        #5.ascii、数字、字符的转换

    ord() 接收ACSSI一个字符,返回数字
    ==========================
    >>> ord('A')
    65
    chr() 接收数字,返回ACSSI字符
    ==============================	
    >>> chr(65)
    'A'
    >>> chr(62)
    '>'
    

        oct()

        bin()

        #6.enumerate() ---指定数字的起始值

    ==================================
    >>> for k,v in enumerate(li): #后面一个参数不指明,默认从0开始
    ... print k,v
    ... 
    0 1
    1 2
    2 3
    >>> for k,v in enumerate(li,2): #后面一个参数指明从2开始计数
    ... print k,v
    ... 
    2 1
    3 2
    4 3
    

      2.自定义函数

        1.def---定义函数的关键字
        2.函数名---方便通过函数名调用该函数
        3.参数---声明后不自动执行,只有调用后才执行
        4.函数的参数
          分3种:
            #1普通参数
            #2默认参数
              1.默认参数只能放在最后面
              2.默认参数可以有多个

    ========================================================================
    eg:
    
    def email(arg,subject="jachy报警系统"): #后面一个参数即为默认参数,调用的时候可用可不用
    ...................
    
    email(arg,subject="jachy业务系统") #调用默认参数一定要指明
    email(arg) #调用
    

      

            #3动态参数
              1.可以接收多个参数;
              2.传序列时,内部自动构造元组;
              3.如果传的序列,可以使用*参数,避免内部构造元组

            ===================
            def func(*arg): #*arg即动态参数,将参数转化为一个元组供函数内部使用
            pass
            ==================

    eg:
    >>> def func(*arg): #动态参数的声明方式
    ... print arg
    ... 
    -------------------
    >>> func()
    ()
    >>> func(1)
    (1,)
    >>> func(1,"alex")
    (1, 'alex')
    >>> func(1,"alex",333)
    (1, 'alex', 333)
    

      


    =======动态参数1:参数加1个* ===========

    >>> li=[1,2,3,4]
    >>> func(li)
    ([1, 2, 3, 4],)
    >>> func(*li) #加*避免构造再次在内部元组
    (1, 2, 3, 4)
    >>> func(11,22,33)
    (11, 22, 33)
    

      


    ========动态参数2:参数为2个*=============

    >>> def func(**kwargs): #2个*在内部构造字典
    ... print kwargs
    ... 
    >>> func(k1=123) 
    {'k1': 123}
    >>> func(k1=123,k2=321)
    {'k2': 321, 'k1': 123}
    -----------也可以直接传字典---------
    >>> dic={"k1":123,"k3":321}
    >>> func(**dic) #先构造字典,再传入进去
    {'k3': 321, 'k1': 123}
    

      


    ===========上两个动态参数的结合=================

    >>> def func(*args,**kwargs):
    ... print args
    ... print kwargs
    ... 
    >>> func(1,2,3)
    (1, 2, 3)
    {}
    >>> func(k1=123,k3=321)
    ()
    {'k3': 321, 'k1': 123}
    >>> func(1,2,3,k1=123,k3=321)
    (1, 2, 3)
    {'k3': 321, 'k1': 12}

          

          5.函数的返回值

      3.导入函数

      4.主函数(换句话说,函数其实就是按功能划分的代码块)

        格式:

    ===============================================
    
    if __name__ == "__main_": #表示此文件是程序的主文件,然后此函数是主函数
      xx代码xx_
    ==================================================
    

      

    二.文件打开的方式
      1.obj_file=file('路径','模式')

      2.obj_file=open('路径','模式') #推荐用这种方式

      3.方式(或模式):
        r(默认),
        w ,重写文件,在打开文件的同时,把原文件清空掉重写.如果不存在,就会在打开时临时创建
        a,以追加的方式写到文件最后,可读,可写,
        r+:可读可写
        rb:处理二进制文件
        rU:将文件中的\n,\r全部转化成\n,U只能跟r结合

      4.操作功能
        obj.seek()
          obj.seek(5)----表示从第5个字节开始读
          obj.seek(0)----表示从第0个字节开始读
        obj.tell()---返回当前指针的位置
        obj.truncate()----根据指针位置向后截断,只修改前面几个

    eg:
    obj_file=file('路径','模式')
    print obj_file.tell() #读取文件指针位置,此时在0
    obj_file.close() 
    print obj_file.tell() #读取文件指针位置,此时在最后
    
    eg
    =============
    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    file_obj=open('log','r+')
    file_obj.seek(8)
    print file_obj.tell()
    print file_obj.read()
    print file_obj.tell()
    file_obj.close()
    
    eg:
    =========
    file_obj=open('log','r+')
    file_obj.write('111') #向文件最开始处向后写,边写边覆盖
    file_obj.truncate() #然后写完之后,从这里开始截断,后面的全部删掉
    file_obj.close()
    

      

    三、with关键字--为了避免打开文件后忘记关闭,可以通过管理上下文,即:

    eg:
    with open('log','r') as f: <====>f =open('log','r')
    修理
    ...
    这种方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

    在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:

    eg:用于修改nginx的配置文件
    with open('log1','r') as obj1, open('log2','w') as obj2: #同时打开2个文件:log1,log2,一个读,一个写
      for line obj1: #读源配置文件
        new_line=line.replace('10.4.3.1','10.4.3.2') #将前面一个参数替换后面的一个参数
      obj2.write(new_line) #将读取的内容写入到新的配置文件中
    
    pass
    

      

  • 相关阅读:
    POJ2711 Leapin' Lizards(最大流)
    POJ3308 Paratroopers(最小割/二分图最小点权覆盖)
    POJ3084 Panic Room(最小割)
    POJ3469 Dual Core CPU(最小割)
    POJ1815 Friendship(字典序最小最小割割边集)
    HDU3395 Special Fish(最大费用任意流)
    HDU5461 Largest Point(暴力)
    POJ3184 Ikki's Story I
    POJ1637 Sightseeing tour(判定混合图欧拉回路)
    伸展树模板
  • 原文地址:https://www.cnblogs.com/jachy/p/4963972.html
Copyright © 2020-2023  润新知