【int() 函数】 第二个参数是转换进制base,如果不传,默认是十进制 (base=10),如果传了,就用传入的参数
int('123') # ==> 123
int('123', 8) # ==> 83
函数的参数按从左到右的顺序匹配,所以默认参数只能定义在必需参数的后面,否则将会出现错误。
def power(x, n=2):
s = 1
while n > 0:
n = n - 1
s = s * x
return s
【可变参数*args】 Python会把可变参数定义为一个tuple,可以通过位置下标取出对应的元素
【可变关键字参数】 函数会把可变参数当作tuple去处理,一个拥有必需参数,默认参数,可变参数,可变关键字参数的函数,定义顺序是这样
def info(**kwargs):
print('name: {}, gender: {}, age: {}'.format(kwargs.get('name'), kwargs.get('gender'), kwargs.get('age')))
info(name = 'Alice', gender = 'girl', age = 16)
可变参数是一个个的字符,调用时参数时
kwargs.get('names')
可变参数是一个个list,调用参数时
kwargs['names']
传参时:变量名 = 值
1.请定义一个 greet() 函数,它包含一个默认参数,如果没有传入参数,打印 Hello, world.
,如果传入参数,打印Hello, 传入的参数内容.
# Enter a code
def greet(n = 'Hello, world'):
if n != 'Hello, world':
print('Hello')
else:
print('Hello, world.')
greet()
greet(1)
2.要计算任意个数的平均值,当可变参数长度为0的时候,也能正确返回结果。结果为什么是2.0
# Enter a code
def average(*args):
if len(args) == 0:
return 0
else:
sum = 0
for item in args:
sum += item
avg = sum / len(args)
return avg
print(average())
print(round(average(1,2,2,3,4),2))
3.编写一个函数,它接受关键字参数names,gender,age三个list,分别包含同学的名字、性别和年龄,请分别把每个同学的名字、性别和年龄打印出来。
# Enter a code
def func(**kwargs):
num = 0
for ch in kwargs['names']:
print(ch,kwargs['gender'][num],kwargs['age'][num])
num = num + 1
func(names = ['Alice', 'Bob', 'Candy'], gender = ['girl', 'boy', 'girl'], age = [12, 13, 14])