Python新手系列——函数

  今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了。以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统。https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

# -*- coding: utf-8 -*-
#调用函数
a=str(hex(255))
print(a)

#空函数
def nop():
    pass

#绝对值函数
def my_abs(x):
    if x >=0:
        return x
    else:
        return -x
print(my_abs(int(input("请输入数字:"))))

#位置参数
def Idempotent(x,y):
    s=1
    while y>=0:
        s = s * x
        y = y - 1
    return s
print(Idempotent(5,2))

#默认参数
#1、必选参数在前,默认参数在后。
#2、使用默认参数最大的好处是能降低调用函数的难度。
#3、默认参数必须指向不变的对象。
def power(x,n=2):
    s=1
    while n>0:
        s=s*x
        n=n-1
    return s
print(power(5))

#可变参数
def cale(*numbers): #&numbers 表示把numbers这个list的所有元素作为可变参数穿进去。
    sum = 0
    for i in numbers:
        sum = sum + i*i
    return sum
print(cale(1,2,3))

#关键字参数
def person(name,age,**kw):
    print('name:',name,'age:',age,'other:',kw)
person('zichuan',24,city='shanghai')
ls ={'sex':'girl','city':'yongzhou','interest':'eat'}
person('qinglian',18,**ls) #**ls表示把ls这个dict的所有k-v用关键字参数传入到函数的**kw参数,kw将获得一个dict,注意kw获得的dict是ls的一份拷贝,对kw的改动不会影响到函数外的ls

#命名关键字参数(只接收city和job作为关键字参数)
#和关键字参数**kw不同,命令关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。
def person_1(name,age,*,city,job):
    print(name,age,city,job)
person_1('zichuan',25,city='魔都',job='Testing')#命令关键字参数必须传入参数名。

#递归函数(example:阶乘)
#1、优点是定义简单,逻辑清晰。
#2、使用时需要注意调用次数过多的话,会导致栈溢出,可使用尾递归的方式优化解决。
def fact(n):
    if n==1:
        return 1
    return n*fact(n-1)
print(fact(4))

猜你喜欢

转载自www.cnblogs.com/zichuan/p/9361570.html
今日推荐