Python入门学习(五)函数

一、函数的特性和定义

"""
函数特性:
1、功能性
2、隐藏细节,方便调用
3、避免编写重复代码(可复用性)
"""
a = 1.12386
print(round(a,2))

#函数的定义
#1、可以无参数
#2、可以通过return来返回一个值,如没设置return则默认返回值为None
def funcname(parameter_list):
    pass

#示例1,实现两个数字的相加
def add(a, b):
    return a+b

print(add(18,92))

#示例2,重写一个print函数
def myprint(code):
    print(code)

myprint("hello world!")

 二、多个返回值的函数

def damage(skill1, skill2):
    d1 = skill1 * 3
    d2 = skill2 * 2 + 10
    return d1, d2   #多个返回值实际返回的是一个元组,但不需要强制加括号

damages = damage(1, 2)
print(type(damages), damages)
damages1, damages2 = damage(2, 3)  #一般可以这样获取,这种方式也称为序列解包
print(damages1, damages2)

#也可以如下,但不推荐——并不知道函数返回值的特定意义
print(damage(10, 12)[0], damage(100, 180)[1])
#序列解包
# a, b, c = 1, 2, 3  
#也可以如下方式
d = 1, 2, 3
a, b, c = d
print(type(d), a, b, c)

#如果序列解包的数量不匹配,系统会报错
#e, f = d

三、必须参数和关键字参数

#必须参数:是指在调用时候必须要传参的

def add(x, y):    #这里的x,y就是函数代码内必须要用的参数,即称为必须参数
    result = x + y
    return result

#关键字参数
#可以在调用的时候不依据函数定义时的顺序,可以通过形参名赋值的形式明确指出
#顺序也可以与函数定义时不同
#关键字参数主要是增加代码可读性
c = add(y = 3, x = 2)    #用形参名明确赋值,顺序与定义时不一样,方便阅读和理解
print(c)

 四、默认参数

#三、默认参数
#函数调用时部分参数可在定义时设置默认值,调用时实参可以不传递此参数
#当该形参的实参不是默认值时,则调用时必须传参设置
#函数定义时,默认参数必须放在参数列表最后
#多个默认参数时传某一个或某几个参数时,需要使用关键字参数
def print_student_diles(name, gender="", age=18, college="人民路小学"):
    print("我叫" + name)
    print("我是" + gender + "")
    print("我今年" + str(age) + "")
    print("我在" + college + "上学")

print_student_diles("鸡小萌", "", 18, "人民路小学")
print_student_diles("郎小华")
print_student_diles("马大哈", "", 18, "梨花小学")
print_student_diles("李乐",age = 20)

五、可变参数和关键字可变参数

#四、可变参数
#可变参数用于传递一系列数量不确定的参数
#也可以整体传递一个元组或列表
#必须参数必须在可变参数之前
#默认参数必须在参数列表最后
def demo(*param):
    print(param)
    print(type(param))

demo(8, 9, 10, 11, 12)
a = (1, 2, 3, 4)
demo(*a)

def demo1(p1, *p2, p3 = 2):
    print(p1)
    print(p2)
    print(p3)

demo1("a", 10, 11)
demo1("abc", 1, 2, 3, 4, 5, p3 = 36)

 

#五、关键字可变参数
#支持任意个数的关键字参数

def city_temp(**param):
    for k,value in param.items():
        print(k,":",value)
    print(type(param))  #可以发现参数实质为字典类型

#直接用关键字传参
city_temp(bj = "29c", sh = "32c", gz = "31c", nj = "34c")

#也可以通过“**”直接将一个字典传给函数
a = {"wh":"35c", "cq": "34c", "nc": "33c"}
city_temp(**a)

 

 

 

posted @ 2025-06-04 22:06  tsembrace  阅读(13)  评论(0)    收藏  举报