python学习第三天

1 函数
函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如
print()。但你也可以自己创建函数,这被叫做用户自定义函数。
python中过程与函数都是def
在编程中,过程和函数都是可以调运的实体,将没有返回值的函数叫做过程

#Author:Anliu
#函数
def fun1():
“”“testing01"”"
print(“this is a testing1”) r
eturn 0 #
过程
def fun2():
“”“testing02"”"
print(“this is a testing2”)
x = fun1()
y = fun2()

函数的特点:
代码重用
保持一致性
可扩展

函数定义方法

def 函数名(参数列表):
函数体
2.函数返回值(return)
return执行的效果是:返回一个值,且终止当前程序运行。

返回值的作用
后续程序需要函数值的确认。

当没有返回值时,返回NUll。
当返回值时一个特定值时,返回这个值。
当返回值是多个值时,返回的是一个元组。
当返回值是一个函数名时,返回的是函数的内存地址。
当返回值时一个函数时,返回值时函数的执行结果

3.函数调用
实参与形参

(1)位置实参调运,形参和实参是一一对应
(2)关键字参数调运,与形参位置无关。
(3)关键字参数不能写在位置参数之前。
(4)位置参数和关键字参数同时存在,以位置参数调运为主。

默认参数的特点:调运函数的时候,默认参数非必须传递
用途:参数在不修改其值的情况下,使用默认值
实参不能大于形参

实际 上,生产环境中,实参是需要存在多个

def test(*args):
print(args)
结果是元组

def test(**kwargs):
print(kwargs)
结果是字典

4.局部变量:在函数内改变
全局变量:所有都改变(一般全局变量是不变的)

5.递归函数

在函数内部,可以调运其他函数。如果一个函数在内部调运自身,这个函数就是递归函数。
递归的特性:
1.必须要有一个明确的结束条件。
2.每次进入更深的一层递归时,问题规模相比上次都应有所减少。
3.递归效率不高,递归层次过多会导致栈溢出(在计算机中,函数调运是通过栈(stack)这种数据结构
实现的,每当进入一个函数调运,栈就会加一层栈帧。每当函数返回,栈就会减少一层栈帧。由于栈的
大小不是无限的,所以,递归调运的次数过多,会导致栈溢出)

6.高阶函数
变量可以指向函数,函数的参数支持能接受变量,那么一个函数就可以接受另一个函数作为参数,这种
函数就称之为高阶函数。
写高阶函数是要注意逻辑顺序,不然容易搞混

匿名函数:没有函数名
嵌套函数:在一个函数体内定义另一个函数。

7.装饰器

定义:装饰器:装饰器本质是函数,(函数是有特定的功能),装饰器的功能就是装饰其他函数,就是
为其他函数添加附加功能。
原则:1.不能修改被装饰函数的源代码。
2.不能修改被装饰的函数的调运方式。
(装饰器对被装饰函数来说是透明的)
实现装饰器知识储备
1.函数即“变量”
2.高阶函数
(1)把一个函数名当做实参传递给另一个函数。
(2)返回值中包含函数名。
3嵌套函数
装饰器=高阶函数+嵌套函数

8.从文件中读取数据

with open(“pi_digits”,encoding=(“utf-8”)) as file_object:
contents =file_object.read()
print(contents)

以上程序打开文件,第一行代码,做了大量工作:open()函数接受一个参数,即要打开的文件名。
python在当前当前所在目录中查找指定文件。open函数返回一个表示文件的对象。Python将这个对象
存储在我们将在后面使用的变量中。
关键字with在不再需要访问文件后将其关闭。在这个过程中,我们发现我们调运了open(),但是没
有调运close();想我们前面所述,调运open()以及close()函数来打开和关闭文件,这样做如果
程序存在bug,导致了close()语句没有执行,文件则不会关闭。我们知道,文件未妥善关闭可能导致
数据丢失或受损。如果是在程序过早的调运了close(),你会发现在使用文件时,他已经关闭而无法
使用,这会导致更多的错误。并非在任何情况下都能轻松确定关闭文件的恰当时机,但通过前面所示的
结构,可以让python来决定,python会在适当的时候自动将其关闭。

逐行读取
写一个循环
with open("…\DIR_file\pi_digits",encoding=(“utf-8”)) as file_object:
for line in file_object:
print(line.rstrip())

9.写入空文件

要将文本写入文件,你在调运open()时需要提供一个参数,告诉python你要写入打开的文件了。

f = open(“shige1”,‘w’,encoding=“utf-8”) #文件句柄,(文件的内存对象);模式为新建一个文 件。f.write(“戈尔泰,大哥\n”)
f.write(“我爱北京天安门\n”)
f.write(“天安门上太阳升\n”)
f.close()

调运open时提供了三个参数,其他两个不用说,主要第二个参数,“w”告诉pyhon,我
们要以写入的方式打开该文件,
打开文件时,可指定读取模式“r”,读写模式“w”,附加模式“a”,或者让你能够读取和写入的文件模
式“r+”,python默认为只读。
如果你写的文件不存在,函数open将自动创建它。然而,已写入的模式打开文件时千万写小心,因为
如果指定的文件已存在,则将会在返回文件对象前清空该文件。
文件的读写
一下只能写在文件的最后。

追加文件

f = open(“shige1”,‘a’,encoding=“utf-8”) #文件句柄,(文件的内存对象);a = append表示 追加,也不具有读操作功能
f.write(“戈尔泰,大哥\n”)
f.write(“我爱北京天安门\n”)
f.write(“天安门上太阳升\n”) f.close()

文件强制持久化: f.flush()

10.修改文件

(1)将文件加载到内存中,在内存中修改
(2)打开一个新文件,在新文件中修改

f = open(“write_file”,“r”,encoding=“utf-8”)
f_new = open(“write_file.bak”,“w”,encoding=“utf-8”)
for line in f:
if “徐志摩” in line:
line = line.replace(“徐志摩”,“anliu”)
f_new.write(line)
f.close()
f_new.close()

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值