python基础(四)

本文围绕Python编程展开,介绍了函数关键字def,函数参数类型如必需、关键字、默认和不定长参数及作用域规则,还阐述了函数返回值的使用。同时讲解了文件打开方式和文件对象操作方法,以及os模块的文件操作和datetime模块的相关类。

1.函数关键字

  在python中,我们把def作为函数关键字,如图
在这里插入图片描述
在这里插入图片描述
  我们在第一行使用函数关键字def定义了函数test,这里是函数定义。第二行是函数体中的唯一一行代码。第四行对函数进行了调用。

2.函数参数与作用域

  以下是调用函数时可使用的正式参数类型:

   必需参数
   关键字参数
   默认参数
   不定长参数
   必需参数:须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
   关键字参数:关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
  默认参数:调用函数时,如果没有传递参数,则会使用默认参数。
  不定长参数:你可能需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,和上述 2 种参数不同,声明时不会命名。
  注:参数使用规则
  1>.定义函数时,可以在小括弧内写入参数,用来接收参数用的,称为“形参”,在调用时,小括号中的参数,用来传递参数的,称为“实参”。
  2>.当一个函数中有多个参数时,调用函数参数顺序按照定义给定的顺传入,如果想传递单个参数,可以用参数名=值的方式,精确传入。
  3>.按顺序传入参数时要注意参数不要写乱了,如果用精确传参的,参数顺序可以调换,注意当用精确传参时,就要所有参数都给定参数名,防止位置错乱报错。
  4>.当在定义函数时,用参数名=值的方式,则该参数属于缺省参数,即在调用时不传入该参数,该参数会默认使用定义时给定的值。注意,带有默认值的参数一定要位于参数列表的最后面。
  5>.有时可能需要一个函数能处理比当初声明时更多的参数,这些参数称为不定长参数,声明时不会命名。加了星号*的变量args会存放所以未命名的变量参数,args为元组,而加**的变量kwargs会存放命名参数,即形如key=value的参数,kewargs为字典。
  6>.python中函数参数是引用传递(注意不是值传递)。对于不可变类型,因变量不能修改,所以运算不会影响到变量自身,而对于可变类型来说,函数体中的运算可能会更改传入的参数变量。
Python 中,程序的变量并不是在哪个位置都可以访问的,访问权限决定于这个变量是在哪里赋值的。
  作用域:
  变量的作用域决定了在哪一部分程序可以访问哪个特定的变量名称。Python的作用域一共有4种,分别是:

L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内置作用域(内置函数所在模块的范围)

  以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内置中找。

3.函数返回值

  函数并非总是直接显示输出,相反,它可以处理一些数据,并返回一个或一组值。函数返回的值被称为返回值 。在函数中,可使用return 语句将值返回到调用函数的代码行。
  返回值让你能够将程序的大部分繁重工作移到函数中去完成,从而简化主程序。
  下面这个函数,它接受信息并返回信息:
在这里插入图片描述
在这里插入图片描述
  函数通过形参接受信息,把结果存在info中,并将info的值的首字母转换为大写字母,然后将结果返回到函数调用行。

4.File

1).打开文件方式

  Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。
  注意:使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
  open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
  open(file, mode='r')
  mode的可选参数如下:
在这里插入图片描述
在这里插入图片描述

  完整的语法格式为:
  open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  参数说明:
  
   file: 必需,文件路径(相对或者绝对路径)。
   mode: 可选,文件打开模式
   buffering: 设置缓冲
   encoding: 一般使用utf8
   errors: 报错级别
   newline: 区分换行符
   closefd: 传入的file参数类型
   opener:

2).文件对象的操作方法

  a.写数据用write
  b.文件读取用read
  c.readlines 是将文件按照行全部读取,返回列表,每行的数据为一个元素
  d.分行读取用readline ,主要用于数据量过大,直接加载浪费内存,分行读取可以解决这个问题
  e.在读写文件的过程中如果想知道当前的位置可以用tell(),返回指针的位置
  f.seek(offset,from)可以定位到某个位置,offset偏移量,from是方向,0代表文件开头,1代表当前位置,2代表文件末尾,例如seek(3,0)代表从文件开头,偏移3个字节
  g.对cvs文件操作,列出个shell执行批量操作的文本制作,脚本比较乱,没有用函数或者类,还需进行优化

5.os模块

  文件的重命名、删除等操作需要用到os模块,这个是python等内置库不需要安装。
  文件重命名:os.rename(old_name,new_name)
  文件删除:os.remove(文件名)
  创建文件夹:os.mkdir(‘文件夹名’)
  获取当前目录:os.getcwd()
  改变默认目录:os.chdir(‘路径’)
  获取目录列表:os.listdir(‘路径’)
  删除文件夹:os.rmdir(‘文件夹名’)

6.Datetime模块

  datatime模块重新封装了time模块,提供更多接口,提供的类有:date,time,datetime,timedelta,tzinfo。
  这篇博文详细介绍了datetime模块这五个类:https://www.cnblogs.com/tkqasn/p/6001134.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值