#! /usr/bin/env python
#coding=utf8
"""
Author: Wenlicheng(本人Python小白,记录一下学习过程)
Date:2019-11-04
Description:Python学习笔记-函数的参数
"""
#位置参数
# 计算x的任意次方 x,n为位置参数,调用函数时应依次赋值给位置参数,赋值多于或者少于位置参数数量,程序会报错
def test(x, n):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
a = test(3, 2)
print(a)
#默认参数 定义默认参数要牢记一点:默认参数必须指向不变对象!
def test1(x, n = 2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
b = test1(2)
print(b)
#可变参数 计算数学题a2 + b2 + c2 + ……
def calc(*num):
sum = 0
for x in num:
sum += x ** 2
return sum
c = calc(1, 2, 3)
print(c)
num = [2, 3, 4] #调用可变参数时,在参数前面加*号变为可变参数传进去
d = calc(*num)
print(d)
#关键字参数
def student(name, age, **kw):
stu = ('name:', name, 'age:', age, 'other:', kw)
return stu
print(student('Yasuo', 20)) #只传入必填参数
print(student('Yasuo', 20, city='LoL')) #传任意个数的关键字参数
print(student('Yasuo', 20, city='LoL', kills=99))
extra = {'city':'LoL', 'kills':99} #将dict作为参数传入
print(student('Yasuo', 20, **extra))
#命名关键字参数,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。
def person(cardid, dender, *, city, job):
p1 = cardid, dender, city, job
return p1
print(person(14144, 'man', city='Gungzhou', job='Software Test')) #调用命名关键字参数
#参数组合,以上5中参数可以组合使用,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数
def combination(a, b, c = 1, *args, **kwargs):
com = ('a=', a, 'b=', b, 'c=', c, '可变参数=', args, '关键字参数=', kwargs)
return com
def combination1(a, b = 1, *, c, **kwargs):
t= ('a=', a, 'b=', b, 'c=', c,'关键字参数=', kwargs)
return t
print(combination(1, 2, 'test', name = 'wen'))
print(combination1(3, 4, c = 5, language = 'python'))