Python函数的运用

1.函数

1.函数的概念

函数本质上就是一个封装后可以重复利用的代码片段,在我们写代码的过程中,有一些会重复多次使用到的代码块,我们可以使用函数进行封装,在后续使用时,直接调用即可.,这样可以有效的加快代码的运作,避免了代码重复量大的情况.

2.函数的定义

def 函数名称 (参数):
通常我们使用来该形式定义一个函数,然后在缩进语块中,使用return返回该函数执行的结果,如果不适用return,函数默认返回空值,即None,只有返回了结果,我们才可以调用该函数进行操作,

def 函数名称(参数):
	代码块
	return 结果
# 定义一个函数输入指定字符串
def print_text():
	print("初次见面,你好")
print_text

→ 初次见面,你好

注意点:当遇到函数定义时,编译器不会执行定义函数里面的内容,当你进行对该函数调用时才会执行.

3.函数的参数

参数我们将其分为形式参数和实参

# 没有设置形参,a,b为局部变量固定值,输出为固定值
def sum_num():
	a = 10
	b = 20
	c = a+b
	print("{}+{}={}".format(a,b,c))
sum_num()10+20=30

# 带形参为可变值
def sum_num(a,b):
    c = a+b
    print("{}+{}={}".format(a,b,c))
    
a=int(input("请输入第一个数:"))
b=int(input("请输入第二个数:"))
sum_num(a,b)
→ a+b=c
	

4.可变长参数

当我们不确定需要传入多少参数时可以在定义函数时选择不定长参数

# 不定长参数:args
def test1(a,b,c,*args):
    print(a,b,c,args)

# 传递多个参数,不定长参数*args以元组的形式封装
test1(1,2,"陈某",4,5,6,7,8)

# 不定长参数:kwargs:
def test2(a,b,c,**kwargs):
    print(a,b,c,kwargs)

# 传递多个参数,不定长参数**kwargs以字典的形式封装
test2(1,2,"陈某",姓名="陈某",年龄=18)

5.自动拆包

def test(a,b,*args,**kwargs):
    print(a)
    print(b)
    print(args)
    print(kwargs)

A = (1,2,3)
B = {"name":"laowang"}

# a,b分别都被当成一个元素传入*args
test(11,22,A,B)
'''
输出结果:
11
22
((1, 2, 3), {'name': 'laowang'})
{}
'''

# 这里会自动拆包,将元组和字典拆分成单个元素和键值对
test(11,22,*A,**B)
'''
输出结果:
11
22
(1, 2, 3)
{'name': 'laowang'}
'''

6.函数的返回值

如果函数没有设置返回值return,即默认返回空值None.

# 综合函数有以下四种类型
1、无参 无返回值
2、无参 有返回值
3、有参 无返回值
4、有参 有返回值
# 获取温度(摄氏度)
def get_noun():
    noun = 25
    return noun


# 将摄氏度转化成华氏度
huashi_noun = get_noun() * 33.8

print("当前温度华氏度为:%g" % huashi_noun)

return一次性只能返回一个值,如想返回多个值的话可以使用列表,元组,字典等将多个值进行封装一次性返回.

def get_num():
    a = 100
    b = 200
    c = 300
    # return [a, b, c]
    # 默认封装成元组
    return a,b,c
print(get_num())

7.函数的嵌套

def test3():
    print("我在浙江")
    test2()
def test2():
    print("台州市")
    test1()
def test1():
    print("温岭市")

test3()

8.全局变量和局部变量

局部变量:在函数里面定义的变量就是局部变量,只能在函数内部使用

全局变量:在函数之外定义的变量,在任何函数之内都可以使用

如果局部变量和全局变量重名,按照就近原则,局部变量优先

text = "陈某"

def test1():
    a = 10
    print(text)

def test2():
    print(text)

def test3():
    text = 10
    print(text)

test1()
test2()
test3()
# print(a)

→
陈某
陈某
10

如果要使用局部变量来修改全局变量,可以通过global进行改变

text = "陈某"

def up_data():
    global text
    text = "蒋某"

up_data()
print(text)

9.递归

递归就是函数自己调用自己,需要设置结束条件才能结束

# 常规写法	5的阶乘
def get_while_num(num):
    i = 1
    result = 1
    while i <= num:
        result *= i
        i += 1
    return result

number = get_while_num(5)
print("常规写法:", number)

# 递归写法  5的阶乘
def get_number(num):
    if num > 1:
        return num * get_number(num - 1)
    else:
        return num

number1 = get_number(5)
print("递归写法", number1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值