python 函数的概述与基本用法总结

# -*-coding:utf-8 -*-
# @Time :  19:41
# @Author: 黄荣津
# @File : 37.函数的定义与调用.py
# @Software: PyCharm

def calc(a,b):  #a,b称为形式参数
    c=a+b
    return c

result=calc(10,20)  #10,20成为实际参数
print(result)

res=calc(b=10,a=20)   # =左侧的变量的名称称为关键字参数
print(res)
# -*-coding:utf-8 -*-
# @Time :  19:57
# @Author: 黄荣津
# @File : 38.函数参数传递的内存分析.py
# @Software: PyCharm


def fun(arg1,arg2):
    print('arg1',arg1)
    print('arg2', arg2)
    arg1=100
    arg2.append(10)
    print('arg1', arg1)
    print('arg2', arg2)

n1=11
n2=[22,33,44]
print(n1)
print(n2)
print('-------------')
fun(n1,n2) #按位置顺序传参
print(n1)
print(n2)

'''在函数的调用过程中,进行参数的转递
   如果是不可变对象,在函数的修改不会影响实参的值,arg1的修改为100,不会影响n1的值
   如果是可变对象,在函数体的修改会影响实参的值,arg2的修改,append(),会影响到n2的值
'''

'''函数参数定义-默认值参数'''

def fun(a,b=10):  #b称为默认值参数
    print(a,b)

#函数的调用
fun(100)
fun(20,30) #30会把10覆盖掉

# -*-coding:utf-8 -*-
# @Time :  20:13
# @Author: 黄荣津
# @File : 39.函数的返回值.py
# @Software: PyCharm

def fun(num):
    odd=[] #存计数
    even=[] #存偶数
    for i in num:
        if i%2:
            odd.append(i)
        else:
            even.append(i)
    return odd,even


#函数的调用

lst=[10,29,34,23,44,53,55]
print(fun(lst))

'''
   函数的返回值
   (1)如果函数没有返回值,return可以不用写
   (2)函数的返回值如果是一个,直接返回类型
   (3)函数的返回值如果是多个,返回的结果为元组
'''

def fun1():
     print('hello')

fun1()

def fun2():
    return 'hello'

res=fun2()
print(res)

def fun3():
    return 'hello','world'

print(fun3())
# -*-coding:utf-8 -*-
# @Time :  20:42
# @Author: 黄荣津
# @File : 40.函数参数形参个数可变.py
# @Software: PyCharm

def fun(*args):   #函数定义时的 可变的位置参数只能是一个,返回是元组类型
    print(args)

fun(10)
fun(30,32)
fun(2,6,4)

def fun1(**args): #个数可变的关键字参数,返回是字典类型
    print(args)

fun1(a=10)
fun1(a=10,b=20,c=30)

def fun2(*args1,**args2):
    pass

'''
   在一个函数的定义过程中,既有个数可变的关键字形参,也有个数可变的位置形参
   要求:个数可变的位置形参要放在个数可变的关键字形参之前
'''
# -*-coding:utf-8 -*-
# @Time :  20:57
# @Author: 黄荣津
# @File : 41.函数的参数总结.py
# @Software: PyCharm

def fun(a,b,c):
    print('a',a)
    print('b', b)
    print('c', c)

#函数的调用

fun(10,20,30)

lst=[11,22,33]
fun(*lst) #在函数调用时,将列表的每一个元素都转换为位置实参转入

fun(a=100,b=200,c=300) #函数的调用

dic={'a':111 , 'b':222,'c':333}
fun(**dic)  #在函数调用时,将字典中的键值对都转换为位置实参转入

# -*-coding:utf-8 -*-
# @Time :  20:35
# @Author: 黄荣津
# @File : 42.递归函数.py
# @Software: PyCharm

def fac(n):
    if n==1:
        return 1
    else:
        return n*fac(n-1)

print(fac(6))


def fib(n):
    if n==1:
        return 1
    elif n==2:
        return 1
    else:
        return fib(n-1)+fib(n-2)

#斐波那契数列第六位上的数字
print(fib(6))

#输出这个数列的前6位上的数字之和
sum=0
for i in range(1,7):
    sum=sum+fib(i)

print(sum)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值