Python入门之函数

定义函数

def关键字,依次写出函数名、括号、括号中的参数和冒号 :
在缩进块中编写函数体,函数的返回值用 return 语句返回

def func():    #定义函数,函数名任意
    pass        #函数体
    return

注:定义函数并不会执行函数体里边的内容,要有调用过程

def hello():
    print('learn')
    print('python')
    return
hello()             #调用过程

在这里插入图片描述

函数里边嵌套函数

def father():
    print('is handsome...')
    def son():
        print('is cool...')
father()

在这里插入图片描述

  • 函数的理解
def welcome(name):   #name指定义函数时的变量,代表形参,任意起名
    print('hello'+' '+name)
welcome('fensi')
name2='fentiao'
welcome(name2)

’fentiao’,'fensi’代表真实的数据信息, 调用函数时传的参数称为实参
在这里插入图片描述

参数的分类

  • 位置参数: 形参和实参个数必须保持一致
def user_info(name,age):   #按照位置传参数
    print(name,age)
user_info('westos',19)
user_info(12,'westos')
user_info(age=13,name='westos')
user_info('westos')     #错误,形参和实参不一致

在这里插入图片描述

  • 默认参数:形参和实参可以不一致
def fun(x,y=2):
    print(x**y)
fun(5)
fun(4,3)

在这里插入图片描述

  • 可变参数
def mysum(*args):
    """
    需求:用户可以传递任意个数值,计算和
    注意:*args是可变参数
        args是元组数据类型
        args是形参,可以改成其他
    """
    sum=0
    for i in args:
        sum+=i
    print(sum)
mysum(1,2,3,4)

在这里插入图片描述

  • 关键字参数
def stu_info(name,age,**kwargs):
    """
    **kwargs是一个字典,可以传任意多个key-value对
		   kwargs是形参
    """
    print(name,age)
    print(kwargs)
stu_info('westos',9,hobbises=['running','swimming'],gender='male')

在这里插入图片描述

  • 参数解包
    对list tuple, set解包时, 只需要在变量前加*;
score=(9,4,3,2,6)
min,*middle,max=score
print(min,middle,max)
print(min,*middle,max)

在这里插入图片描述
如果要对dict进行解包,一个星号表示获取所有的key值,需要两个’'来对其进行解包,方可得到其value值

  • 匿名函数

使用 lambda 来创建匿名函数。

  • 定义规则---->lambda 形参:返回值
def fun(*args,**kwargs):
    return args,kwargs
print(lambda *args,**kwargs:(args,kwargs))
  • 参数检测
    isinstance
def add(x: int, y: int):
    # 参数数据类型的判断
    if isinstance(x, int) and isinstance(y, int):
        return x + y
    else:
        return False
print(add(1.0, 2.0))

在这里插入图片描述

函数返回值

返回值:函数运算的结果,还需要进一步进行操作时,给一个返回值
return 用来返回函数执行结果的,如果没有返回,默认为None
一旦遇到return ,函数执行结束,后面的代码不会执行

def my_pow(x,y=2):
    """
    求x的y次方,y的默认值为2
    :param x:
    :param y:
    :return: 
    """
    return x**y
    print('hello')
print(my_pow(4))
a=my_pow(4,3)
print(a+100)

在这里插入图片描述
注意:hello并没有被打印出来,通过debug可以看出

五 变量作用域

局部变量:只能在函数内部使用的变量
解释:在函数内部定义的普通变量,只在函数内部其作用, 函数执行结束, 变量会自动删除.

  可变:函数内部改变会影响外部变
  不可变:函数内部改变不会影响外部变量的值

全局变量:在整个程序中使用的变量
• global关键字:强制将局部变量转换为全局变量

a=5                  #这个a是全局变量
print('outside:',id(a))
def fun():
    a=3            #这个a是局部变量
    print('inside:',id(a))
fun()
print(a)
print(id(a))

在这里插入图片描述

  • set dict 是可以加上去的
a = [1,2,3,4]
print("outside:", id(a))
def fun():
    a.append(5)
    print("inside", id(a))
fun()
print(a)
print(id(a))

在这里插入图片描述

  • 看看global的影响
a=5
print('outside:',id(a))
def fun():
    global a      #声明全局变量,内部的a=3影响外部a=5
    a=3
    print('inside:',id(a))
fun()
print(a)
print(id(a))

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值