python函数

1 函数的特性

  1. 功能性
  2. 隐藏细节
  3. 避免编写重复的代码

2 函数的定义及运行特点

使用def来定义函数;

def funcname(parameter_list)pass
  1. 参数列表可以没有
  2. 使用return value来返回函数值,否则返回None
  3. 改变程序递归的次数
      import sys
      sys.setrecursionlimit(xxxx)
    当函数返回多个结果时,最好的方式是使用多个变量名来接收:
def damage(skill1,skill2):
    damage1 = skill1*2
    damage2 = skill2*3+10
    return damage1,damage2

skill1_damage,skill2_damage = damage(4,2)
print(skill1_damage,skill2_damage)

序列解包:用有意义的变量名称来返回函数的有效值。

3 必须参数与关键字参数

(注意是在函数调用上而不是定义上)
1. 必须参数:函数的参数列表中定义的必须赋值的参数。必须放在参数列表的前面。
2. 关键字参数:可以在函数调用时明确指出实参是传给哪个形参的,不一定要按照形参顺序。可以大大提高阅读代码的效率。

def add(x,y)result = x+y
    return result

c = add(y=3,x=2)  # 此处就用了关键字参数  
  1. 默认参数:没有设置默认值的参数必须传递实参。
def student(name,age=18,sex='boy'):
    print("My name is "+name+". I'm "+str(age)+", and I am a "+sex+".")

student('Tom')
student('Lilly',sex='girl')

打印结果如下:
这里写图片描述
4. 可变参数:在参数列表前加一个*,在传递实参时就可以输入多个实参,并且结果是输出一个元组。

def demo(*param):
    print(param)

demo(1,2,3,4,5,6,7,8)

打印结果如下:
这里写图片描述

  1. 关键字可变参数:
def squsum(*param):  # 可变参数
    sum = 0
    for i in param:
        sum += i*i
    print(sum)

squsum(1,2,3)  

def city_temp(**param):  # 关键字可变参数
    print(param)
    print(type(param))
    for key,value in param.items(): # 字典的遍历需要调用它的items()方法
        print(key,':',value)

city_temp(bj='32c',xm='23c',sh='31c')

# 当然字典也可以直接来传参  
a = {'xa':'16c','nt':'12c','ng':'15c'}
city_temp(**a)

这里写图片描述

变量作用域

全局变量:函数外部定义的,函数内部也可以使用
局部变量:函数内部定义的,函数外部不可以使用
* for,while,if内部的变量是可以在循环外被引用的(python特有)

global关键字

在局部变量前加global关键字可以将其转变为全局变量

def demo():
    global c
    c = 2

demo()
print(c)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值