python-函数拓展(缺省/多值参数/拆包/递归)

1 交换两个元素值

a=1
b=2
a,b=(b,a)
print(a)
print(b)

2 列表“+=”本质:

def demo(numlist):
    numlist+=numlist
    #本质是extend函数,外部的变量值会随之改变
    #与numlist=numlist+numlist不同
    print(numlist)
numlist=[1,2,3]
demo(numlist)
print(numlist)

3 缺省参数

def print_info(name, title="", gender=True):
"""
:param title: 职位
:param name: 班上同学的姓名
:param gender: True 男生 False 女生
"""
gender_text = "男生"
if not gender:
gender_text = "女生"
print("[%s]%s 是 %s" % (title, name, gender_text))
# 假设班上的同学,男生居多!
# 提示:在指定缺省参数的默认值时,应该使用最常见的值作为默认值!
print_info("小明")
print_info("老王")
print_info("小美", gender=False)

4 多值参数:
参数前一个*,定义元组,前一个**,定义字典

def demo(num,*nums,**n):
    print(num)#得到1
    print(nums)#得到2,3,4
    print(n)#得到ming=xiao,age=18
demo(1,2,3,4,ming='xiao',age=18)

5.元组和字典的拆包:
调用时,在元组前加*,在字典前加**

def demo(*nums,**n):

    print(nums)
    print(n)
gl_nums=(1,2,3)
gl_n={
     "xiao":"ming","age":18}
demo(*gl_nums,**gl_n)

6.递归求和

def demo(n):
    if n==1:
        return 1
    else:
        return n+demo(n-1)
print(demo(2))

你可能感兴趣的:(python,python)