pythonexecute函数功能_关于Python函数的5件事
作者 | Aditya Kousik Cotra
译者 | IT外文选刊是时候编写结构合理的程序了。
函数是复用程序代码的有效方法。使用函数的好处是可以节省空间,而且我们选择的名称也使我们的程序易于阅读。函数可以在没有输入的情况下定义函数,也不一定要产生输出。
Python中内置的函数有很多,我们也可以自己创建函数。
在Python中,函数是用def关键字来定义的。
>>> def myfunc():
print("Python functions are easy to learn.")
>>> myfunc() #calling function
'Python functions are easy to learn.'
函数主要是帮助你结构化你的程序。最好是把长程序分解成函数,每个函数都有自己的目的,使其结构透明化,就像这样:
data = extract_data(source)
results = analyze(data)
present(results)
适当地使用函数,使程序的可读性和可维护性更强。此外,在对一个函数进行修改的时候,不用担心程序的其他部分,也更容易进行修改。
在这篇文章中,我们将讨论五个话题,我认为了解函数是很重要的。这些话题将帮助你更好地理解函数。
1. 变量的作用域
函数定义为变量创建新的局部作用域。当在函数体内部分配一个新变量时,该变量只在函数内部定义。变量在函数外部是不可见的。因此,我们在定义变量时可以选择任意名称,而不需要关注函数外部的变量。
举例来说:
>>> x = 10
>>> def myfunc():
x = 5
在上述函数中,变量x在函数外赋值为10,在函数内赋值为5。现在,当我们在函数外把x打印时:
>>> x
10
变量x在函数外部不会发生变化,因为在函数内部定义的x的范围只限于函数本身。
2. 参数的类型
参数,是用来向函数传递信息的。有两种类型的参数:关键字参数:在函数调用中以标识符(key1 = value1 )为前缀的参数,或者在字典中以**为前缀的值传递。
ratio(numerator=10, denominator=4)
ratio(**{'numerator':10,'denominator':4})位置参数:非关键字参数的参数。这个值被直接传递到函数中,其位置代表函数中的一个变量。它也可以作为一个以*为前缀的迭代元素传递。
ratio(10,4)
ratio(*(10,4))
3. 函数可作为参数
有趣的是,我们还可以将函数作为参数传递给函数。例如,我们可以将内置函数 len() 或用户定义的函数 vowel_present() 作为参数传递给另一个函数:
>>> sent = ['Python', 'functions', 'are', 'amazing']
>>> def execute_func(prop):
return [prop(word) for word in sent]
>>> execute_func(len)
[6, 9, 3, 7]
>>> def vowel_present(word):
... for x in word:
if x in 'aeiou':
return True
return False
>>> execute_func(vowel_present)
[True, True, True, True]
4. 参数类型检查
Python函数不要求我们指定输入参数的类型。所以在执行函数之前,有必要检查一下输入变量的类型。
def is_vowel(char): #Returns True if char is vowel, False otherwise.
if char in 'aeiou':
return True
else:
return False
>>> is_vowel(5)
False
例如,在上面的函数中,没有指定数字的数据类型,但我们希望变量的类型为长度为1的str类型。但是,如果我们传递一个整数变量,函数执行时返回False。
为了避免执行和报错,我们可以使用这样的assert函数。
def is_vowel(char):
assert(isinstance(char, str)) #raises error if not satisfied
assert(len(char)==1) #raises error if string not of length 1
if char in 'aeiou':
return True
else:
return False
如果assert语句失败,会产生一个错误,函数停止执行。
5. 函数文档
好的做法是给函数加文档,描述它的目的,并使用函数定义顶部的docstring来提供文档,就像这样:
def is_vowel(char):
'''Takes a string input of length one and returns True if vowel, False otherwise'''
assert(isinstance(char, str))
assert(len(char)==1)
if char in 'aeiou':
return True
else:
return False
任何函数的Docstrings都可以通过运行帮助函数找到。它也可以使用属性__doc__来检索。
>>> help(is_vowel)
Help on function is_vowel in module __main__:
is_vowel(char)
Takes a string input of length one and returns True if vowel, False otherwise
>>> is_vowel.__doc__
'Takes a string input of length one and returns True if vowel, False otherwise'
你可以试着运行help(xxx)来获取xxx库的docstring。
在这篇文章中,我们主要讨论了函数的应用以及它们如何帮助构建结构化的程序。在后续文章中,我们将讨论Python模块以及它们是如何帮助程序高效运行的。
外文链接:https://medium.com/@cotra.ak/5-things-to-know-about-python-functions-52565919d748medium.com
版权声明:
本译文仅用于学习、研究和交流目的,欢迎非商业转载。转载请注明出处、译者和IT外文选刊的完整链接。
更多优质IT外文在“IT外文选刊”(公众号)
pythonexecute函数功能_关于Python函数的5件事相关推荐
- python函数转换_将Python函数转换为PL/Python函数
我编写了几个python函数来对数据集中的连续变量进行幂变换.第一个函数基本上查找每个列的数据类型,并返回数据类型的dict以及相应的列名称作为值.在 第二个函数现在接受数据类型和列名的dict,并获 ...
- python函数笔记_初学Python函数的笔记整理
定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def m ...
- python用于获取用户输入的函数是_在Python函数中,用于获取用户输入的是( )...
在Python函数中,用于获取用户输入的是( ) 答:input() 中国大学MOOC:\"骨质疏松症的特征是是以骨量减少.骨的微观结构退化,致使发生的严重后果是\"; 答:\&q ...
- python 定义函数方法,python中函数如何定义?python函数的调用方法介绍
本篇文章给大家带来的内容是关于python中函数如何定义?python函数的调用方法介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 1. 函数的概念,函数是将具有独立功能的代码块 ...
- python randint函数用法_使用random函数实现randint函数的功能
首先说明一下 random函数是random模块中的一个函数 首先要导入random模块 import random random函数的功能 #生成某一范围(0-1)内的随机小数 print(rand ...
- turtle 函数 方法_学python第十一节:turtle深入 了解
学python第十一节:深入分析turtle Turtle是一个直观有趣的图形绘制函数. 这节课对turtle的以下几点进行补充: 在蟒蛇绘制代码中提到过import 库引用保留字的函数,是补充pyt ...
- python函数复用_【python学习-4】可复用函数与模块
1.自定义函数 自定义函数格式如下: def (参数列表):return #!/usr/bin/python#定义函数,打印数字1~5 defprintNum5():#range函数,生成列表集合,有 ...
- python函数实例化_用Python实例化函数
python函数实例化 In terms of Mathematics and Computer science, currying is the approach/technique by whic ...
- python小老鼠编程_成都python函数学习教程,Python编写课程
1.urllib2/urllib实现urllib2和urllib是Python中的两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅.1.1首先实现一个完整的请求与响应 ...
最新文章
- 056_Avatar头像
- GOF23种设计模式(Design Pattern)总结
- JavaScript No Overloading 函数无重载之说
- Eclipse创建JavaWeb工程
- JDK 15 JAVA 15的新特性展望
- 用matlab算24点小游戏,24点游戏的Matlab程序
- MXNet——symbol
- 【Spring】Spring事务失效的 8 大原因
- CodeIgniter的缓存小记
- 电池电量检测方法-库仑计-基于LTC2941
- win10 桌面背景最短切换时间由1分钟改为10秒
- 计算机组装中如何看硬件型号,如何查看主板型号?(三种方法!)
- 分析:G20相争 IMF得利
- plotly绘制简单图形5--饼形图附加
- Vmware Ubuntu虚拟机提示:无法连接虚拟设备 sata0:1,因为主机上没有相对应的设备,解决办法
- arm云教室服务器_便宜又好用!云上ARM尝鲜体验
- 结队-贪吃蛇-项目进度
- 山东财经大学python期末考试题型_山东财经大学2012012学年第二学期期末试题
- Warning FailedScheduling 29s (x2 over 29s) default
- htc x920e刷android7.0,HTC X920e (Butterfly)一键刷机图文教程