python函数代码块以什么开头_Python 函数

本文详细介绍了Python函数的定义、调用以及参数传递的各种方式,包括位置参数、关键字参数、默认值、返回值、匿名函数(lambda)以及全局和局部变量的使用。通过实例解析了如何提高代码的模块性和复用性,帮助读者深入理解Python函数的运用。
摘要由CSDN通过智能技术生成

函数能提高应用的模块性,和代码的重复利用率。

定义一个函数:

函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。

任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。

函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。

函数内容以冒号起始,并且缩进。

return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

语法:

1 deffunctionname( parameters ):2 "函数_文档字符串"

3 function_suite4 return [expression]

函数调用

定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。(把具有独立功能代码块当作整数)

这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。

如下实例调用了printme()函数:

1 #-*- coding: UTF-8 -*-

2

3 #定义函数

4 defprintme( str ):5 "打印任何传入的字符串"

6 printstr;7 return;8

9 #调用函数

10 printme("我要调用用户自定义函数!");11 printme("再次调用同一函数");

函数的实参和形参

1 #-*- coding:utf-8 -*-

2 defsumming(a,b,c): →形参

"""求三个数和"""3 sum=a+b+c4 print(sum)5 num1=int(input("请输入第一个数:"))6 num2=int(input("请输入第二个数:"))7 num3=int(input("请输入第三个数:"))8 summing(num1,num2,num3) →实参

在函数summing()的定义中,变量a,b,c是一个形参——函数完成其工作所需的一项信息。在代码summing(num1,num2,num3) 中,num1,num2,num3是实参,实参是调用函数时传递给函数的信息。调用函数时,将要让函数使用的信息放在括号。在summing(num1,num2,num3)中,将实参num1,num2,num3传递给函数summing(),这个值被存储在形参中。

传递实参:

函数定义中可能包含多个形参,因此函数调用中也可能包含多个实参。向函数传递实参的方式很多,可使用位置实参,这要求实参的顺序与形参的顺序相同,也可以使用关键字实参,其中每个实参都由变量名和值组成,还可以使用列表和字典。

位置实参:

1 #-*- coding:utf-8 -*-

2 defsumming(a,b,c):3 sum =a+b+c4 #print(sum)

5 returnsum6 defMean_value(a1,b2,c3):7 averaging=summing(a1,b2,c3)8 averaging=averaging/3

9 print("平均值%d"%averaging)10 num1 = int(input("请输入第一个数:"))11 num2=int(input("请输入第二个数:"))12 num3=int(input("请输入第三个数:"))13 #summing(num1,num2,num3)

14 Mean_value(num1,num2,num3)

在调用函数时,python必须将函数调用的每个实参都关联到函数定义中的一个形参,这种关联方法被称为位置实参。

关键字实参:

关键字实参是传递给函数的名称——值对。关键字实参让你无需考虑函数调用中实参顺序,还清楚地指出了函数调用中各个值得用途。

1 #-*- coding:utf-8 -*-

2 defdescribe_pet(animal_type,pet_name):3 print("\nI have a" + animal_type +".")4 print("My"+animal_type+"s name is"

5 + pet_name.title()+".")6 describe_pet(pet_name="larry",animal_type="han" )

输出结果:

1 I have ahan .2 Myhan s name is Larry.

默认值:

编写函数时,可给每个形参指定默认值。在调用函数中给形参提供了实参时,python将使用指定的实参值,否则,将使用形参的默认值。给形参指定默认值后,可在函数调用中相应的实参。使用默认值可简化函数调用,还可清楚地指出函数的典型用法。(位置实参必须写在关键字实参后面)

返回值:

return可以返回一个函数执行结果下方代码不会被执行

如果return后面没有任何内容,表示会到调用函数的位置,并且不返还任何结果

如果未在函数中指定return,那这个函数的返回值为None

1 #-*- coding:utf-8 -*-

2 defget_formatte_name(first_name,last_name):3 """返回姓名"""

4 full_name=first_name+""+last_name5 returnfull_name.title()6 musician=get_formatte_name("xie","cc")7 print(musician)

函数可返回任何类型的值,包括列表和字典等较复杂的数据结构

1 #-*- coding:utf-8 -*-

2 defbuild_person(first_name,last_name):3 person={"name":first_name,"age":last_name}4 returnperson5 musician=build_person("xie",12) #返回字典6 print(musician)

输出结果:

1 {'name': 'xie', 'age': 12} #返回字典

1 #-*- coding:utf-8 -*-

2 def build_person(first_name,last_name,name=""):3 person={"name":first_name,"age":last_name}4 ifname:5 person["name"]=name6

7 returnperson8 musician=build_person("xie",12,name="cc")9 print(musician)

输出结果:

1 {'name': 'cc', 'age': 12}

传递任意数量实参:

1 # -*- coding:utf-8 -*-

2 def make(*toppings):3 print(toppings)4 make("pepperoni","extra","mushroons")

输出结果:

1 ('pepperoni', 'extra', 'mushroons')

传递任意数量关键字实参:

1 # -*- codfing:utf-8 -*-

2 def build_profile(first, last,**user_info):3 profile={}4 profile["first_name"] =first5 profile["last_name"] =last6 for key,value inuser_info.items():7 profile[key]=value8 returnprofile9 build_profile("albert","einstein",princeton="location=",field="physics")10 print((build_profile))

全局变量:

1 # -*- coding:utf-8 -*-

2 a=100

3 def variables():4 print(a)5

6 def variables1():7 print(a)8

9 variables()10 variables1()

局部变量:

1 # -*- coding:utf-8 -*-

2 a=200#全局变量3 def variables():4

5 a = 100#局部变量,只作用该函数里面6 print(a)7

8

9 def variables1():10 print(a)11

12

13 variables()14 variables1()

global:

1 # -*- coding:utf-8 -*-

2 a=200

3 c=100#全局变量4 def variables():5 globala #使用global用来对一个全局变量的声明,对全局变量进行修改6 a = 400#局部变量,只作用该函数里面,当加global,对全局变量进行修改。7 print(a)8 print(c)9 def variables1():10 a=50#局部变量,只作用该函数里面11 print(a)12

13 def variables2():14 print(a)15

16 variables()17 variables1()18 variables2()

匿名函数:

lambda 参数:式子

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值