Python3基础之函数

Python3基础之函数

三元运算符补充

1
2
3
4
5
6
# 三元运算符(或者三目运算)
# 格式
# 结果 = 值1 if 条件 else 值2
result = True if 1>2 else False

# 如果条件成立则返回'值1',否则返回'值2'

函数的定义

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
在开始之前我们先上一段代码:
while True
if cpu利用率 > 90%:
# 发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接

if 硬盘使用空间 > 90%:
# 发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接

if 内存占用 > 80%:
# 发送邮件提醒
连接邮箱服务器
发送邮件
关闭连接

不知道大家是否注意到以上代码有很多重复的代码,要写出高质量的代码首先要解决的就是重复代码的问题。我们可以将上面的’发送邮件提醒’功能封装成一个函数,当满足条件时调用函数即可。
所以某些具有特殊功能的代码块, 将这些特定的代码块给他分封装起来,这个封装起来的代码块就是函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 定义函数
函数的定义主要有如下要点:
1.def:表示函数的关键字
2.函数名:函数的名称,日后根据函数名调用函数(函数的命名规则和变量的命名规则一致)
3.函数体:函数中进行一系列的逻辑计算,如:发送邮件
4.参数:为函数体提供数据
5.返回值:当函数执行完毕后,可以给调用者返回数据。
下面我们重构一下上面发送邮件的代码:
def send():

发送邮件的代码...

if success: #发送成功
return True
else:
return False

while True:

# 每次执行发送邮件函数,都会将返回值自动赋值给result
# 之后,可以根据result来写日志,或重发等操作

# 在这儿根据函数名'send'来调用函数
result = send()
if result == False:
记录日志,短信发送失败...

匿名函数

1
2
3
4
5
6
7
8
9
对于简单的函数,也存在一种简便的表示方式,即:lambda表达式
# 普通方式
def sum(arg):
return arg + 5
print(sum(5))

# 匿名函数
lambda_sum = lambda x, y: x + y
print(lambda_sum(5, 5))

函数的运用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 递归调用,遍历文件夹目录
import os


def get_all_dir(path, str="|--"):
"""
实现目录的遍历
:param path: 遍历目录的路径
:param str: 样式
:return:
"""
# 返回一个指定文件夹(目录)包含文件和文件夹(目录),并且返回一个列表,但是不包含.和..,他一般按照英文首字母排序
fill_all = os.listdir(path)
# print(fillAll)
for filename in fill_all:
# 一定不能少了全路径的拼接
file_path = os.path.join(path, filename)
# print(filePath)
# 判断filePath是否是目录
if os.path.isdir(file_path):
print(str + '文件夹' + filename)
# filePath是目录
get_all_dir(file_path, "\t" + str)
else:
# filePath不是目录,即是文件
print(str + '文件:' + filename)


get_all_dir('../gavinliu_study')
-------------本文结束感谢您的阅读-------------

本文标题:Python3基础之函数

文章作者:GavinLiu

发布时间:2017年07月19日 - 13:07

最后更新:2017年07月19日 - 13:07

原始链接:http://gavinliu4011.github.io/post/5e13db2f.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

请博主吃个鸡腿吧
0%