python之路——初识函数

1、回顾

文件操作(处理)
打开文件

open('文件路径''打开方式','编码方式')

打开方式:r w a r+ w+ a+ ----- 默认r
r+ :打开文件直接写和读完再写
编码方式:utf-8....(如果不指定编码方式,会乱码)

操作文件

读
read:一次性读
readlines:一次想性读
readline:一行一行读
问题:不知道在哪结束
   视频、图片:rbm模式,bytes类型,按照字节读,

写
write

光标--- 文件指针

seek:指定光标移动位置
tell:获取光标当前位置
truncate:截取文件

关闭文件
close

修改文件:
文件是不能修改的,如果想修改,参照以下方式

with open('小护士班主任',encoding='utf-8') as f,open('小护士班主任.bak','w',encoding='utf-8') as f2:
    for line in f:
        if '星儿' in line:  #班主任:星儿
            line = line.replace('星儿','啊娇')
        #写文件
        f2.write(line) #小护士:金老板

import os
os.remove('小护士班主任') #删除文件
os.rename('小护士班主任.bak','小护士班主任')  #重命名文件
文件修改

2、今日内容讲解
1.函数:定义了之后,可以在任何需要它的地方调用

len():内置函数
1.不能变,只能计算某字符串长度
2.只是输出了结果

自定义函数:

自定义函数格式:(只需要0个参数)函数命名规则与变量命名规则相同。
def 函数名():# 命名函数、定义函数.
  i = 0    #函数内容 # 整体缩进
  for k in s:
    i += 1

函数名() # 调用函数
自定义函数格式
#没有返回长度,只是单纯的打印
2.返回值:return(执行遇到return,后边的代码都不执行)
def 函数名():# 命名函数、定义函数.函数命名规则与变量命名规则相同。
i = 0    #函数内容 # 整体缩进
    for k in s:
        i += 1
        return

函数名()    
返回值格式
返回值的3种情况:
1.没有返回值----返回None
(1)不写返回值return
def func():
l = ['jinlaoban','erge']

ret = func()
print(ret)
(2)只写返回值return:结束一个函数的继续
def func():
l = ['jinlaoban','erge']
return

ret = func()
print(ret)

(3)return None --- 不常用
没有返回值的3种情况
2.返回一个值:
可以返回任何数据类型
只要返回就可以接收到
如果在一个程序中有多个return,只执行第一个
3.返回多个值
多个返回值可以用多个变量接收,有多少返回值,用多少个变量接收,不能多也不能少。
返回多个值可以用一个变量接收,返回值为不可变的数据类型元组。(元组可以解包)

3.参数:

def 函数名(s):# 接收参数、形式参数、形参
  i = 0    
  for k in s:
  i += 1
  return

函数名('任意内容'#传递参数,实际参数、实参
参数语法

3.1参数的三种情况

没有参数
    定义函数和调用函数时括号里都不写内容
有一个参数
    传什么就是什么
有多个参数
    位置参数
# def my_sum(a,b):
#     print(a,b)
#     res = a+b  #result
#     return res
#
# ret = my_sum(1,2)
# print(ret)

3.2实参与形参的传参

站在实参的角度:
按照位置传
按照关键字传
混着用也可以:但是必须先按照位置传参,再按照关键字传
不能给同一个变量传多个值。
站在形参的角度:
按照位置传参:有几个参数传几个值。
默认参数(关键字传):可以不传,如果不传就用默认,如果传,用传的参数
只有调用函数的时候
按照位置传 : 直接写参数的值按照关键字: 关键字 = 值
定义函数的时候:
位置参数 : 直接定义参数默认参数,关键字参数 :参数名 = '默认的值'动态参数 : 可以接受任意多个参数参数名之前加*,习惯参数名args,参数名之前加**,习惯参数名kwargs顺序:位置参数,*args,默认参数,**kwargs

3.3动态参数

动态参数有两种:可以接受任意个参数
  *args : 接收的是按照位置传参的值,组织成一个元组
  **kwargs: 接受的是按照关键字传参的值,组织成一个字典
  args必须在kwargs之前
def func(*args,default = 1,**kwargs):
print(args,kwargs)

func(1,2,3,4,5,default=2,a = 'aaaa',b = 'bbbb',)

3.4动态参数的另一种传参方式


def func(*args):#站在形参的角度上,给变量加上*,就是组合所有传来的值。
print(args)

func(1,2,3,4,5)
l = [1,2,3,4,5]func(*l) #站在实参的角度上,给一个序列加上*,就是将这个序列按照顺序打散
View Code

def func(**kwargs):
    print(kwargs)

func(a=1,b=2)
d = {'a':1,'b':2} #定义一个字典d
func(**d)
View Code

4.函数的注释

def func():
 '''
这个函数实现了什么功能
参数1:
 参数2:
:return: 是字符串或者列表的长度
 '''
pass
注释方法

相关推荐