Python学习之函数基础(定义,形参四大参数.返回值及变量的作用域)

一.函数的定义

1.定义函数

#如果不主动调用函数,函数不会执行
def say_hello():
    print('hello1')
    print('hello2')
    print('hello3')

#函数的调用
say_hello()

结果:
hello1
hello2
hello3

def sum_2_sum():
    num1 = 10
    num2 = 20
    result = num1 + num2
    print('%d + %d = %d' %(num1,num2,result))

sum_2_sum()

结果:
10 + 20 = 30

2.函数里嵌套函数

def westos():
    print('is westos')
    def python():
        print('python')
    python()
westos()

结果:
is westos
python

3.定义函数的时候的变量叫形参(可以任意起名);真实的数据信息,调用函数的时候传的参数叫实参

#定义函数的时候的变量 叫作形参(形参可以任意起名)
def welcome(a):
    print('hello',a)

#真实的数据,调用函数时传递的参数 实参
welcome('lily')
welcome('coco')

结果:
hello lily
hello coco

二.形参四大参数

1.位置参数:形参和实参个数必须保持一致,最好按位置传参

#位置参数:形参和实参个数必须保持一致
def getInfo(name,age):  ##按照位置传参
    print(name,age)

getInfo('westos',11)
getInfo(11,'westos')
getInfo(age=11,name='westos')

结果:
westos 11
11 westos
westos 11

2.默认参数:形参和实参可以不一致

def mypow(x,y=2):
    print(x ** y)

mypow(4)
mypow(2,3)
mypow(2,5)

结果:
16
8
32

3.可变参数

def mysum(*a):
    sum  = 0
    for item in a:
        sum += item
    print(sum)

mysum(1,2,3,4,5,6)

结果:
21

4.关键字参数

def getStuInfo(name,age,**kwargs):
    """
    **kwargs是一个字典,可以传递任意多的key-value
    :param name:
    :param age:
    :param kwargs:
    :return:
    """
    print(name,age)
    print(kwargs)

getStuInfo('westos','19',hobbies=['coding','devops'],gender='female',eat='apple')

结果:
westos 19
{'hobbies': ['coding', 'devops'], 'gender': 'female', 'eat': 'apple'}

三.返回值

返回值:函数运行的结果,还需要进一步操作时,给一个返回值return用来返回函数执行结果,如果没有返回值,默认为Nonepython可以间接返回多个值(返回了一个元组)一旦遇到return,函数执行结束,后面的代码不会执行

def mypow(x,y=2):
    return x ** y,x+ y
a,b=mypow(3,4)
print(a,b)
c = mypow(3)
print(c)

def mypow(x,y=2):
    print(x ** y )
a = mypow(2)
print(a)

结果:
81 7
(9, 5)
4
None

四.变量的作用域

  • **局部变量:在函数内部定义的变量,只在函数内部起作用,函数执行结束,变量会自动删除
  • 全局变量:程序执行过程中一直有效**
a = 1
print('outside:',id(a))

def fun():
    a = 5
    print('inside:',id(a))

fun()
print(a)
print(id(a))

结果:
outside: 9330688
inside: 9330816
1
9330688
  • global:用来声明变量的作用域为全局作用域
a = 1
print('outside:',id(a))

def fun():
    global a #global用来声明变量a的作用域为全局作用域
    a = 5
    print('inside:',id(a))

fun()
print(a)
print(id(a))

结果:
outside: 9330688
inside: 9330816
5
9330816
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值