Python学习Python中文社区

Python学习笔记五(函数、文件)

2018-04-07  本文已影响31人  DragonFangQy

函数

递归函数

什么是递归函数?

在一个函数的内部调用自身的函数,称为递归函数。
注意:

分解:原问题可以分解为若干个子问题,且子问题为原问题较小规模的实例。
解决:递归求解子问题,当子问题的规模足够小,则直接求解。
合并:将子问题的解一层层的合并返回,直到返回结束,得到原问题的解

由上可以得到,递归必须要有一个结束条件(规模足够小,直接求解),而且需要一个递归的公式(子问题为原问题较小规模的实例)。满足以上条件才是一个合理的递归函数,否则容易出现死循环。

匿名函数

匿名函数又称lambda 表达式 或 lambda 函数,可以作为参数传递。

格式: lambda 参数列表 : 表达式

为列表中的字典排序问题

tmp_list = [{"name": "dragon", "age": 18}, {"name": "Dragon", "age": 20}]

tmp_list.sort(key=lambda x: x["name"])  # 根据name 键排序
print(tmp_list)

tmp_list.sort(key=lambda x: x["age"])  # 根据age 键排序
print(tmp_list)

列表中的字典排序

列表推导式

作用:轻量级循环创建列表
定义格式: tmp_list = [表达式 for 临时变量 in range(起始位置,结束位置,步长)]

有列表 [1,2,3,...10],将其变成[[1,2,3],[4,5,6],[7,8,9],[10]]

# 首先生成[1,2,3,...10]
a = [x for x in range(1, 11)]
print(a)

# 然后通过列表推导式产生下标,
# 通过表达式 使用下标 对a进行切片
# 得到目标列表
b = [a[x:x + 3] for x in range(0, len(a), 3)]
print(b)

列表推导式

文件

为什么需要文件?

因为文件可以长期保存数据,省时省力。

文件的操作

文件的操作有 打开、关闭、读取、写入。

路径

访问文件需要知道文件的位置,也就是文件的路径。
路径分为绝对路径和相对路径。

绝对路径
绝对路径是指从根目录开始的路径,win可以理解为从盘符开始的路径。

相对路径
一般是相对于当前目录(或文件夹)的路径,不是从根目录开始的路径,win不是从盘符开始的路径。

文件的访问模式

主要的 r(只读)、w(只写)、a(追加)

访问模式

打开与关闭文件

import os

# 文件路径
file_path = "DragonFang.txt"
src_name = None

# 是不是一个文件
if os.path.isfile(file_path):
    src_name = open("DragonFang.txt")  # 是文件直接打开,默认r 模式
else:
    src_name = open("DragonFang.txt", "w")  # 不是文件,创建文件

src_name.close()  # 使用完关闭文件

写入与读取文件

write()

向文件中写入内容。

f = open('DragonFang.txt', 'w')  # 以只写模式打开
f.write('Hello DragonFang!')  # write 将文件内容写入文件
f.close()  # 关闭文件

读取


文件的相关操作

import os

# 文件的相关操作
# 文件的重命名,原文件不存在报错
os.rename("Dragon.txt", "DragonFang.txt")

# 删除文件,文件不存在报错
os.remove("Dragon.txt")

# 判断指定资源是不是一个文件,是返回True,不存在不报错
os.path.isfile("Dragon.txt")

文件夹的相关操作

import os

# 创建文件夹,当文件夹不存在时创建,文件夹存在时报错
os.mkdir("Dragon")

# 删除文件夹,当文件夹存在时删除,文件夹不存在时报错
os.rmdir("Dragon")

# 获取当前工作目录
os.getcwd()

# 改变默认工作目录,"./" 表示当前目录  "../"表示上级目录
os.chdir("../")

# 获取目录列表
os.listdir("./")

# 判断指定路径是不是文件夹,是返回True,路径不存在不会报错
os.path.isdir("")


到此结  DragonFangQy  2018.4.7

上一篇下一篇

猜你喜欢

热点阅读