小甲鱼Python3学习笔记之第十八讲(仅记录学习)

第十八讲:函数,灵活即强大

一、知识点:

0.形参和实参:

def function(name):形参

function('abc'):实参

1.函数文档:

>>> def myfun(name):
	'测试函数文档'#函数文档
	print(name)

利用function.__doc__可以查看函数文档(双下划线)或者help(函数)也可以查看

2.关键字参数:

>>> def myfun(name,sex):
	print(name+'->'+sex)
>>> myfun(sex='male',name='bizka')
bizka->male

3.默认参数:

参数定义过程中为形参赋初值

>>> def myfun(name='bizka',sex='male'):
	print(name+'->'+sex)
>>> myfun()
bizka->male
>>> myfun('jessic','female')
jessic->female

4.收集参数:

>>> def para(*object):
	print('参数的长度是:',len(object))
	print('第二个参数是:',object[1])
>>> para(1,'a',3,4,5,6)
参数的长度是: 6
第二个参数是: a
----------------------------------------------------我是一条分割线------------------------------------------------------

二、课后作业:

0.请问以下哪个是形参?哪个是实参?

>>> def MyFun(x):
	return x**3
	y=3
	print(MyFun(y))

x是形参,y是实参。

1.函数文档和直接用‘#’为函数写注释有什么不同?

给函数写文档是为了别人更好的理解你的函数。

2.使用关键字参数,可以有效的避免什么问题的出现?

关键字参数,是指函数在调用的时候,带上参数的名字去指定具体调用的是哪个参数,从而可以不用按照参数的顺序调用函数。

3.默认参数和关键字参数表面最大的区别是什么?

关键字参数就是在函数调用的时候,通过参数名制定需要复制的参数,这样就不怕因为搞不清参数的顺序而出错。

默认参数是在参数定义的过程中,为形参附初始值,当调用函数时,不传递实参,则默认使用形参的初始值代替。

----------------------------------------------------我是一条分割线------------------------------------------------------

三、动动手:

0.编写一个符合以下要求的函数:

a.计算打印所有参数的和乘以基数(base=3)的结果

b.如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。

>>> def myfun(*num):
	base = 3
	if num[-1] == 5:
		print(sum(num[:-1])*5)
	else:
		print(sum(num)*base

1.寻找水仙花数:

题目要求:如果一个3位数等于其各位数字的立方和,则称这个数为水仙花数。例如153 = 1^3+5^3+3^3,因此153是一个水仙花数。编写一个程序,找出所有的水仙花数。

>>> def hua():
	for each in range(100,1000):
		a = each%10
		b = each%100//10
		c = each//100
		if each == a**3+b**3+c**3:
			print(each)
2.编写一个函数findstr(),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为"You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.",子字符串为"im",函数执行后打印“子字母串在目标字符串中共出现3次”。     
程序执行效果:

>>> def findstr():
	print('请输入目标字符串:',end='')
	temp = input()
	print('请输入子字符串(两个字符):',end='')
	temp1 = input()
	count = 0
	i = 0
	for i in range(len(temp)):
		if temp[i] == temp1[0] and temp [i+1] == temp1[1]:
			count += 1
	print('子字符串在目标字符串中总共出现%d次'%count)

----------------------------------------------------我是一条分割线------------------------------------------------------

猜你喜欢

转载自blog.csdn.net/huashu2017/article/details/80748505