Python基础核心经典教程(015)——函数入门
发布日期:2021-06-30 11:11:33
浏览次数:3
分类:技术文章
本文共 3922 字,大约阅读时间需要 13 分钟。
版权声明
- 本文原创作者:谷哥的小弟
- 作者博客地址:http://blog.csdn.net/lfdfhl
概述
在软件开发过程中我们常把功能相对独立的代码封装成单独的模块,并在需要之时对其进行调用从而提高开发效率。
函数的定义
语法如下:
def 函数名(): code1 code2 ....
在该语法中关键字def是英语单词define的缩写。
函数名的命名过程应遵循以下原则:
- 1、通俗易懂,见名知意
- 2、由字母、下划线和数字组成
- 3、不能以数字开头
- 4、不能使用系统关键字
函数的调用
语法如下:
函数名()
调用函数很简单的,只需要通过 函数名() 即可实现对函数的调用。
示例1
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数的定义及其调用"""# 定义函数def printHello(): print("Hello")# 调用函数printHello()
示例2
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数的定义及其调用"""# 定义函数def sum(): number1 = 13 number2 = 14 result = number1 + number2 print("%d + %d = %d" % (number1, number2, result))# 调用函数sum()
函数的参数
为增加函数的通用性,我们可在定义函数时设置参数。
语法如下:
def 函数名(参数1,参数2...): code1 code2 ....
在函数的定义中可以没有参数,也可以有一个或者多个参数。当存在多个参数时,各参数之间用逗号,隔开。当函数有参数时,其调用方式如下:
函数名(参数1,参数2...)
在调用函数时请按照函数定义的要求传入相应的参数。
示例
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数参数"""# 定义函数def sum(number1, number2): result = number1 + number2 print("%d + %d = %d" % (number1, number2, result))# 调用函数sum(13, 14)实参与形参
- 实际参数(实参):调用函数时小括号中的参数叫做实参。实参用于把数据从函数外传递到函数内。
- 形式参数(形参):定义函数时小括号中的参数叫做形参。形参用于接收参数,在函数内部可将形参作为变量使用。
函数的返回值
在函数里可在函数执行结束时将处理结果使用关键字return返回给调用者,从而方便调用者针对具体的结果做后续的处理。
语法如下:
def 函数名(参数1,参数2...): code1 code2 .... return 返回值
示例1
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数的返回值"""# 定义函数def sum(number1, number2): result = number1 + number2 # 返回结果 return result# 调用函数并接收函数的返回值res = sum(13, 14)print("求和的结果:%d" % res)
示例2
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数的返回值"""# 定义函数——依据当月上班的天数和每天的工钱结算当月的工资def salary(money, day): result = money * day # 返回结果 return result# 调用函数并接收函数的返回值res = salary(200, 22)print("这个月的工资是:%d" % res)if res > 4000: print("好开心,可以去买部新手机了")else: print("继续努力攒钱")
函数的嵌套调用
函数又调用另外的函数,被称为函数的嵌套调用。
语法如下:
def 函数名(参数1,参数2...): .... 调用其它函数 .... return 返回值
示例
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数的嵌套"""# 定义函数def clean(): print("洗手")# 定义函数def eat(): # 调用clean()函数 clean() print("吃饭")# 调用函数eat()
局部变量与全局变量
依据变量作用域范围的不同,我们可将变量分为:局部变量和全局变量。
-
局部变量:定义在函数体内部的变量叫做局部变量,它只在函数体内部有效。当函数执行结束后,函数内部的局部变量会被系统自动回收。不同的函数可定义相同的名字的局部变量,但它们彼此之间不会产生任何影响。
-
全局变量:定义在函数体外的变量叫做全局变量,所有的函数内部都可以使用该变量,也就是说全局变量在函数体内部和外部均有效。
-
global关键字:虽然在函数内可以使用全局变量,但是不可在函数内直接修改全局变量。在函数内需先使用global关键字对全局变量进行标识才能修改全局变量。
示例1
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:局部变量与全局变量"""# 全局变量name = "zxx"# 定义函数def printInfo(): # 局部变量 age = 37 # 在函数内利用关键字global使用全局变量 global name print("在函数内打印全局变量%s" % name) print("在函数内打印局部变量%d" % age) # 在函数内修改全局变量 name = "zxc" print("在函数内打印全局变量%s" % name)# 调用函数printInfo()print("在函数外打印全局变量%s" % name)# wrong code# print("在函数外打印局部变量%d" % age)
示例2
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:局部变量与全局变量"""# 全局变量name = "zxx"# 定义函数def printInfo(): # 定义与全局变量同名的局部变量 name = "blx" print("在函数内打印name=%s" % name)# 调用函数printInfo()print("在函数外打印name=%s" % name)
从这示例中我们看出:
- 1、全局变量和局部变量的名字可以相同
- 2、当全局变量与局部变量同名时,那么在函数内该变量名代表的是局部变量
- 3、局部变量仅仅在函数内有效
函数的应用
练习1
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数的应用"""# 求三个整数中的最大值def getMaxNumber(a, b, c): max = 0 if a > b: if a > c: max = a else: max = c else: if b > c: max = b else: max = c return max# 调用函数result = getMaxNumber(4, 1, 7)print("三个数的最大值为:%s" % result)
练习2
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数的应用"""# 求区间[a,b]内的数据累加和def getSum(a, b): sum = 0 if b <= a: print("您输入的数据有误,请重新输入") else: while a <= b: sum = sum + a a = a + 1 return sum# 调用函数result = getSum(1, 100)print("累加的总和为:%s" % result)
练习3
"""原创作者:谷哥的小弟博客地址:http://blog.csdn.net/lfdfhl示例描述:函数的应用"""# 计算长方形的面积def getArea(length, width): area = 0 if length <= 0 or width <= 0: print("您输入的数据有误,请重新输入") else: area = width * length return area# 调用函数result = getArea(4, 2)print("长方形的面积为:%s" % result)
转载地址:https://it9527.blog.csdn.net/article/details/105740142 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
路过按个爪印,很不错,赞一个!
[***.219.124.196]2024年04月30日 05时41分23秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
HDU-2838 Cow Sorting(树状数组)
2019-04-30
POJ-2299 Ultra-QuickSort(树状数组)(离散化)
2019-04-30
POJ-1655 Balancing Act(树的重心)
2019-04-30
POJ-3140 Contestants Division(树dp)
2019-04-30
2017 ACM-ICPC 亚洲区(西安赛区)网络赛 C. Sum
2019-04-30
HDU-6214 Smallest Minimum Cut(最大流)
2019-04-30
Windows安装Scrapy库
2019-04-30
HDU-2586 How far away ?(LCA)
2019-04-30
hihocoder #1069 : 最近公共祖先·三(ST求LCA)
2019-04-30
hackerrank Lucky Numbers(扩展gcd/规律)
2019-04-30
HDU 5115 Dire Wolf(区间dp)
2019-04-30
Wannafly挑战赛1 A.Treepath(dfs)
2019-04-30
leetcode 10. Regular Expression Matching(dp)
2019-04-30
Recall, Precision, and Average Precision
2019-04-30
Vue 项目部署到阿里云服务器(Nginx 代理)
2019-04-30