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

  

 

posted @ 2015-11-14 10:26  杰希  阅读(194)  评论(0编辑  收藏  举报