day04 python初识函数

一、内容回顾

1、文件操作

步骤:

1)打开文件   open("路径“,mode="打开方式”,encoding="编码方式”)

  • 打开方式 主要有:r、 w、 a、 r+、 w+、a+ 、r+b、w+b 
  • b 以byte类型打开文件
  • encoding指定编码格式  一般情况用utf-8

2)操作文件

  • 读  

    1)f.read()一次性将所有内容读出   

    2)f.readline()一行一行读出  不知道在哪里结束,视频和图片没有行需要按照字节数读取

    3)f.readlines()一次性将所有文件内容读出,按行返回一个列表    容易造成内存溢出

    4)用for循环读取内容

    

f=open("test.txt",mode="r",encoding="utf-8")
for line in f:
    print(line)

 

  #f.write()向文件中写入内容

  • 光标——文件指针

  1)f.seek()设置光标的位置  以字节为单位

  2)f.tell()获取光标当前的位置

  3)f,truncate()  截取文件制定的长度

3)关闭文件

  f.close()关闭文件

4)修改文件

python内文件操作无法直接修改文件,而是将待修改的文件全部读出,需要修改的写入到一个新的文件,然后将原有的文件删除,新的文件重命名为原来的文件

with open("test.txt",mode="r",encoding="utf-8") as f,open("test.bak",mode="w",encoding="utf-8") as f2:
    for line in f:
        if "yhm" in line:
            line.replace("yhm","海鸥")
            #写文件
            f2.write(line)

#删除文件 和重命名文件
import os 

os.remove("test.txt") #删除原文件
os.rename("test.bak","test.txt") # 重命名文件

二、上次作业讲解

暂无

三、今日内容

1、函数

s="yhm ningbohaidianyuan"
count=0
for i in s:
    count+=1
print(count)


s1="小小海鸥”
count=0
for i in s:   #循环迭代  获得字符的个数
    count+=1
print(count)

每次计算字符串的个数的时候,需要敲一遍代码,啰嗦

引入函数my_len函数,将这段代码,保存在一个地方,需要使用的时候,调用函数

s="小小海鸥”

def my_len(s):   #定义一个my_len()函数
    count=o
    for i in s:
        count+=1
    print(count)


my_len(s)  #调用函数

1)函数的定义

def   函数名(参数):

  函数体

  return i

return 函数的返回值,调用函数时,会得到一个函数执行的返回结果

2)函数返回值的三种情况

  • 无返回值——默认返回为None

    1)不写return

    2)只写return   函数体中不写return  一旦执行到函数体的return 函数体后续的所有代码不执行了  直接跳出函数

    3)return None  不常用

  • 返回一个值

    1)可以返回一个字符串、数字、列表、字典、函数..可以返回任何数据类型

    2)只要有返回值,调用函数后就能接受到数据

    3)一个程序中如果有多个return时,只执行第一个return

  • 返回多个值

    多个返回值一定要注意有几个返回值,就要用几个变量去接受

3)函数的参数

  • 形参:按照位置传参      *args      默认参数      **kwargs
  • 实参:按照位置传参  按照关键字传传参

 

四、今日作业

 

---恢复内容结束---

一、内容回顾

1、文件操作

步骤:

1)打开文件   open("路径“,mode="打开方式”,encoding="编码方式”)

  • 打开方式 主要有:r、 w、 a、 r+、 w+、a+ 、r+b、w+b 
  • b 以byte类型打开文件
  • encoding指定编码格式  一般情况用utf-8

2)操作文件

  • 读  

    1)f.read()一次性将所有内容读出   

    2)f.readline()一行一行读出  不知道在哪里结束,视频和图片没有行需要按照字节数读取

    3)f.readlines()一次性将所有文件内容读出,按行返回一个列表    容易造成内存溢出

    4)用for循环读取内容

    

f=open("test.txt",mode="r",encoding="utf-8")
for line in f:
    print(line)

 

  #f.write()向文件中写入内容

  • 光标——文件指针

  1)f.seek()设置光标的位置  以字节为单位

  2)f.tell()获取光标当前的位置

  3)f,truncate()  截取文件制定的长度

3)关闭文件

  f.close()关闭文件

4)修改文件

python内文件操作无法直接修改文件,而是将待修改的文件全部读出,需要修改的写入到一个新的文件,然后将原有的文件删除,新的文件重命名为原来的文件

with open("test.txt",mode="r",encoding="utf-8") as f,open("test.bak",mode="w",encoding="utf-8") as f2:
    for line in f:
        if "yhm" in line:
            line.replace("yhm","海鸥")
            #写文件
            f2.write(line)

#删除文件 和重命名文件
import os 

os.remove("test.txt") #删除原文件
os.rename("test.bak","test.txt") # 重命名文件

二、上次作业讲解

暂无

三、今日内容

1、函数

s="yhm ningbohaidianyuan"
count=0
for i in s:
    count+=1
print(count)


s1="小小海鸥”
count=0
for i in s:   #循环迭代  获得字符的个数
    count+=1
print(count)

每次计算字符串的个数的时候,需要敲一遍代码,啰嗦

引入函数my_len函数,将这段代码,保存在一个地方,需要使用的时候,调用函数

s="小小海鸥”

def my_len(s):   #定义一个my_len()函数
    count=o
    for i in s:
        count+=1
    print(count)


my_len(s)  #调用函数

1)函数的定义

def   函数名(参数):

  函数体

  return i

return 函数的返回值,调用函数时,会得到一个函数执行的返回结果

2)函数返回值的三种情况

  • 无返回值——默认返回为None

    1)不写return 函数内代码执行完自动结束

    2)只写return   函数体中不写return  一旦执行到函数体的return 函数体后续的所有代码不执行了  直接跳出函数

    3)return None  不常用

  • 返回一个值,返回值可以接收也可以不接收

    1)可以返回一个字符串、数字、列表、字典、函数..可以返回任何数据类型

    2)只要有返回值,调用函数后就能接受到数据

    3)一个程序中如果有多个return时,只执行第一个return

  • 返回多个值

    1)多个返回值一定要注意有几个返回值,就要用几个变量去接受

    2)若一个变量去接受,则将多个返回值组成一个元组返回

3)函数的参数

  • 形参:定义函数时 传入的参数 称为形式参数
  • 实参:调用函数的时候,传入的参数
def func(c):  #c为形参
    print(c)
    return c


b="苹果"
ret=func(b)  #b为实参
print(ret)

 

站在实参的角度 

  • 按照位置传参
  •  按照关键字传传参
def func(x,y,z):
    print(x,y,z)
    return x


result=func("","x","haiou")  #按位置传参
result1=func(x="",y="",z="海鸥") #按照关键字传参
result2=func("",y="xiao",z="海鸥") #混合使用,关键字参数在位置参数的后面

站在形参的角度

  • 按照位置传参
  •  *args     可以接收任意多个安位置传入的参数
  •  默认参数     可以不传
  • **kwargs   动态参数可以接收任意多个按照关键字传入的参数
def wahaha(*args):  #将传入的多个参数组合成序列
    print(args)   #组合成一个元组

l=[1,2,3,4,5,6,7,8,9]
wahaha(*l)  #*l将序列打散传入

4)默认参数的陷阱

def  func(l=[]): #设置一个默认参数  列表为可变数据类型 每次传参都在共享
    l.append(1) #向列表中添加一个数 
    print(l)  #输出内容


func() #调用一次参数之后  [1]
func() #调用一次参数之后  [1,1]
func() #调用一次参数之后  [1,1,1]

 

四、今日作业

 

posted @ 2019-07-11 13:58  小小海鸥  阅读(146)  评论(0编辑  收藏  举报