函数是什么

定义和调用函数

定义函数
调用函数

函数重要概念

参数类型
return语句
变量作用域

——————————————————————————————

python里judge函数 python中judge函数作用_调用函数


python里judge函数 python中judge函数作用_赋值_02

python里judge函数 python中judge函数作用_赋值_03

def greet(name):
#def的意思是定义(英文define缩写),greet是【函数名】(自己取的),再搭配一个括号和冒号,括号里面的name是参数(参数名也是自己取)。

    print(name+'早上好')
    #def下一行开始缩进的代码是函数要实现的功能,也叫【函数体】。这里的函数体展现出的功能就是:打印出“name+ 早上好”这句话。    
    
    return
    #函数内部一旦遇到return语句,就会停止执行并返回结果。 如果定义的函数体内的循环语句下面有return,同样在执行完第一次循环后停止。

__________________________________________________________________
#第一个函数总是输出固定的一句话,所以不需要带参数。
def pika1():           
    print('我最喜爱的神奇宝贝是皮卡丘')

#第二个函数需要参数name的参与,所以括号里需要带上name
def pika2(name):
    print('我最喜爱的神奇宝贝是'+name)
    
#第三个函数需要两个参数来完成功能。参数的数量需要视函数想要实现什么功能来设置。
def pika3(name,person):
    print('我最喜爱的神奇宝贝是'+name)
    print('我最喜爱的驯兽师是'+person)

#这知识定义了函数,和函数功能,还不能去使用,想要使用还需要调用 ↓

调用函数只需要叫它的名字(就是输入’函数名(参数值)’)就可以执行函数的功能.

def fun(a,b):                  #定义一个函数fun,参数为变量a

    print('好玩的地方有'+a)     #函数的功能
    print('好玩的地方还有'+b)
    
fun('欢乐谷','户部巷')          #调用函数fun,给参数a,b分别赋值为'欢乐谷','户部巷',只要调用就能实现它的功能

>好玩的地方有欢乐谷
>好玩的地方还有户部巷

主要的参数类型有:位置参数、默认参数、不定长参数。

==位置参数==
def tools(a,b):
    print('今天的活动餐有:')
    print(a)
    print(b)
tools('汉堡','薯条')              #给参数a,b分别赋值为'汉堡','薯条',位置一一对应
>今天的活动餐有:
>汉堡
>薯条
_______________________________________________________
                      ==默认参数==
def tools(a,b,c='可乐'):          #  默认参数永远放在最后
    print('今天的活动餐有:')
    print(a)
    print(b)
    print(c)
tools('汉堡','薯条')               #参数c已经默认为'可乐',就不需要再赋值了,如果再赋值,默认参数就会变更为新的参数
_______________________________________________________
                      ==不定长参数==
def tools(a,b,*c,d='可乐'):      #不定参数的格式:*加上参数名。位置关系('不定长参数'放在'位置参数'后面,'默认参数'永远最后)
    print('今天的活动餐有:')
    print(a)
    print(b)
    print(d)
    print(c)                     #c为不定长参数,输出的格式为‘元组’
tools('汉堡','薯条','羊肉串','香菇','韭菜')  
>今天的活动餐有:
>汉堡
>薯条
>可乐
>('羊肉串', '香菇', '韭菜')      #'不定长参数'输出格式为'元组'

#元组的写法是把数据放在小括号()中,它的用法和列表用法类似,主要区别在于列表中的元素可以随时修改,但元组中的元素不可更改。

#和列表一样,元组是可迭代对象,可以用for循环来遍历它,这时候的代
码就可以写成:
def tools(a,b,*c,d='可乐'):      
    print('今天的活动餐有:')
    print(a)
    print(b)
    print(d)
    for i in c:                 #用for循环遍历元组
        print(i)                #取出元组中的元素
tools('汉堡','薯条','羊肉串','香菇','韭菜')  
>今天的活动餐有:
>汉堡
>薯条
>可乐
>羊肉串
>香菇
>韭菜
def cat(a):
    return a          #执行完函数cat(a)会返还值a
def dog(b):   
    return b          #执行完函数dog(b)会返还值b
def super(c):
    return c          #执行完函数super(c)会返还值c
x=cat('猫吃鱼,')      #调用函数返回来的值存入变量x中
y=dog('狗吃肉,')
z=super('奥特曼打小怪兽')
print('幸福就像'+x+y+z)
>幸福就像猫吃鱼,狗吃肉,奥特曼打小怪兽
_____________________________________________________
#觉得太长可以改写:
def cat(a):
    return a
def dog(b):   
    return b
def super(c):
    return c
def mune(x,y,z) :
    return '幸福就像' +  cat(x) +dog(y)+super(z)
print(mune('猫吃鱼,','狗吃肉,','奥特曼打小怪兽') )
>幸福就像猫吃鱼,狗吃肉,奥特曼打小怪兽

#这里参数x赋值为'猫吃鱼,',那么cat(x)就是cat('猫吃鱼,'),这样'猫吃鱼,'就赋值给了a,返回值就为'猫吃鱼,'

上面return每次返回的的只有一个参数,如果要返回多个参数 ↓

def name(a,b):
    return a,b
print(name('小明','小王')) 
>('小明', '小王')           #返回的是元组形式
————————————————————————
def name(a,b):
    return a,b
a=name('小明','小王')       #此时a是一个元组
print(a[0],a[1])            #打印元组里的元素
>小明 小王
————————————————————————
def mune(x,y,z) :
    return '幸福就像' + x +y +z        #这里由于使用了+号连接起来了所以相当于返回一个值,如果用','隔开就是返回多个值
print(mune('猫吃鱼,','狗吃肉,','奥特曼打小怪兽') )
>幸福就像猫吃鱼,狗吃肉,奥特曼打小怪兽
————————————————————————
def mune(x,y,z) :
    return '幸福就像' + x ,y ,z      #这样返回的值就是元组形式
print(mune('猫吃鱼,','狗吃肉,','奥特曼打小怪兽') )
>('幸福就像猫吃鱼,', '狗吃肉,', '奥特曼打小怪兽')

return还有一个“副作用”:一旦函数内部遇到return语句,就会停止执行并返回结果:

def mune() :
    return('我是第一个')
    return('我是第二个')
print(mune() )
>我是第一个

#函数内部遇到第一个return就会返回

第一点:在一个函数内定义的变量仅能在函数内部使用(局部作用域),它们被称作【局部变量】。

第二点:在所有函数之外赋值的变量,可以在程序的任何位置使用(全局作用域),它们叫【全局变量】。

a='我是李白'
def name():
    a='我是韩信'
    print(a)
name()        #调用函数,打印局部变量
print(a)      #打印全局变量
>我是韩信
>我是李白

#虽然变量的名字相同(都是a),但因为全局变量和局部变量处在不同的“作用域”中,所以它们彼此井水不犯河水,都能打印出相应的结果。
#  在函数内部申明变量为全局变量可以用 'global'
a='我是李白'
def name():
    global a
    a='我是韩信'
    print(a)
name()        #调用函数,打印局部变量
print(a) 
>我是韩信
>我是韩信