鱼C论坛

 找回密码
 立即注册
查看: 2320|回复: 0

[技术交流] 零基础入门学习Python——笔记16之18讲函数灵活即强大

[复制链接]
发表于 2017-8-31 17:36:41 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
基础知识总结:
0、形参与实参:形参食指函数创建和定义过程中小括号里的参数,而实参是指函数在调用过程中传递进去的参数。
1、函数文档和#的区别:给函数写文档是为了让别人可以更好的理解你的函数,函数文档也是函数的一部分,可以用help和_doc_来访问这个函数文档
2、关键字参数:关键字参数是指函数在调用的时候,带上参数的名字去指定具体调用的是哪个参数,从而可以不用按照参数的顺序调用函数
3、默认参数和关键字参数的区别:关键字参数是在函数调用的时候,通过参数名制定需要赋值的参数,这样做就不怕因为搞不清参数的顺序而导致函数调用出错。而默认参数是在参数定义的过程中,为形参赋初值,当函数调用的时候,不传递实参,则默认使用形参的初始值代替。

程序题:
1、寻找水仙花数:
小甲鱼做法:
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()

自己的做法:
def flower():
    list1=[]              ---------------最后将所有的水仙花数放在列表里,但是多占用了内存
    for each in range(100,1000):
        bai=each//100
        shi=each//10%10
        ge=each%10
        if each == bai**3+shi**3+ge**3:
            list1.append(each)
    return list1

print('水仙花数是:',flower())
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(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)

自己的做法:
def findstr(subgoal,goal):
    i=0
    y=0
    count=0
    for each in range(len(goal)):
        if subgoal[y]==goal[i]:
            if subgoal[y+1]==goal[i+1]:
                y=0
                i+=1
                count +=1
        else:
            i+=1
    return count

print("请输入目标字符串:")
lstr=input()
print('请输入子字符串(两个字符):')
sstr=input()
print('子字符串在目标字符串中共出现%d次'%findstr(sstr,lstr))

评分

参与人数 1鱼币 +2 收起 理由
小甲鱼 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 14:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表