018函数:灵活即强大

在这里插入图片描述

关键参数

>>> def say(name,words):
	print(name + ">" + words)

	
>>> say (name = "工程", words = "管理")
工程>管理

默认参数

>>> def say(name = "默认",words = "参数"):
	print(name + ">" + "words")

	
>>> say()
默认>words

收集参数

>>> def test(*params):
	print("参数长度是:",len(params))
	print("第二个参数是:",params[1])

	
>>> test(1,2,5,4,6)
参数长度是: 5
第二个参数是: 2

课后练习

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

    a) 计算打印所有参数的和乘以基数(base=3)的结果
    b) 如果参数中最后一个参数为(base=5),则设定基数为5,基数不参与求和计算。
    #可以理解为列表求和,再乘以base的值

def mFun(*param, base=3):
    result = 0
    for each in param:
        result += each

    result *= base
    
    print('结果是:', result)

mFun(1, 2, 3, 4, 5, base=5)
  1. 寻找水仙花数

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

def Narcissus():
    for each in range(100, 1000):
        temp = each
        sum = 0
        while temp:
            sum = sum + (temp%10) ** 3
            temp = temp // 10  # 注意这里用地板除

        if sum == each:
            print(each, end='\t')

print("所有的水仙花数分别是:", end='')
Narcissus()

  1. 编写一个函数 findstr(),该函数统计一个长度为 2 的子字符串在另一个字符串中出现的次数。例如:假定输入的字符串为“You cannot improve your past, but you can improve your future. Once time is wasted, life is wasted.”,子字符串为“im”,函数执行后打印“子字母串在目标字符串中共出现 3 次”。
def findStr(desStr, subStr):
    count = 0
    length = len(desStr)
    if subStr not in desStr:
        print('在目标字符串中未找到字符串!')
    else:
        for each1 in range(length-1):      
            if desStr[each1] == subStr[0]:
                if desStr[each1+1] == subStr[1]:
                    count += 1
                    
        print('子字符串在目标字符串中共出现 %d 次' % count)

desStr = input('请输入目标字符串:')
subStr = input('请输入子字符串(两个字符):')
findStr(desStr, subStr)
发布了42 篇原创文章 · 获赞 0 · 访问量 292

猜你喜欢

转载自blog.csdn.net/qq_43169516/article/details/103241301
今日推荐