zoukankan      html  css  js  c++  java
  • 【python018--函数参数】

    1、形参和实参

    >>> def MyFirstFunction(name):
        '函数定义过程中的name是叫形参'
        #因为Ta只是一个形式,表示占据一个参数位置
        print('传递进来的'+name+'叫做实参,因为Ta是具体的参数值!')
        
    >>> MyFirstFunction('尘封')
    传递进来的尘封叫做实参,因为Ta是具体的参数值!

    >>> MyFirstFunction('尘封')

    传递进来的尘封叫做实参,因为Ta是具体的参数值

    2、函数文档:目的是使人更好的理解函数

    >>> MyFirstFunction.__doc__
    '函数定义过程中的name是叫形参'

    ".__doc__"指系统的特殊属性

    3、关键字参数

    >>> def SaySome(name,word):
        print(name+'-->'+word)

    >>> SaySome(word='让编程改变世界',name='尘封')
    尘封-->让编程改变世界
    >>>

    解释:word='让编程改变世界',name='尘封,word=和name=就是关键字,优点在于打印的参数不会随着顺序输出,而是根据关键字输出

    4、默认参数:定义了默认值的参数

    >>> SaySome(word='让编程改变世界',name='尘封')
    尘封-->让编程改变世界
    >>> def SaySome(name='尘封',word='让编程改变世界'):
        print(name +'-->'+word)

    >>> SaySome()        #设置默认参数,是为了调用时忘记传入参数也能输出结果,并且也可以对默认参数进行改变
    尘封-->让编程改变世界
    >>> SaySome('苍井空','我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗!')
    苍井空-->我脱光衣服躺在镜头前,是为了生存,而你衣冠楚楚的站在镜头前,却只是为了私欲和欺骗!
    >>>

    5、收集参数

    def SaySome(*parame,ext):     #收集函数用*   号
        print('参数的长度是:',len(parame))
        print('第二个参数是:',parame[1])
    >>> SaySome('尘封','泪无痕','无名','冰点','破冰','一直播','战鲨',ext='小咖秀')
    参数的长度是: 7
    第二个参数是: 泪无痕

    二、练习题

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

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

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

    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)
    ===================== RESTART: /Users/wufq/Desktop/参数.py =====================
    结果是: 75

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

    def Narcissis():
        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 = ' ')
    print("所有的水仙花分别是:",end = ' ')

    Narcissis()

    3、编写一个函数findstr(),该函数统计一个长度为2的字符串在另一个字符串中出现的次数,例如:嘉定输入的字符串为“you cannot inprove your past,but you can inprove your future。Once time is wasted ,lift is wasted” ,字符串为“im”,函数执行后打印

    “子字母串在目标字符串中共出现了多少次”

    代码设计思路:

    1、函数有两个字符串

    2、一个字符串在另外一个字符串出现的次数,必然会有一个统计的默认值

    3、判断:a、一个字符串不在另外一个字符串的情况,b、在的情况下,先从字符串的第一个字符开始找,然后在从第二个字符串开始找,全部满足后自增1

    4、打印输出结果

    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]:#如果第一个if成立,也就找到了第一个字符,第二个字符在第一个字符的后一位继续找
                        count += 1   #如果第二个if成立,说明找到了目标字符,计数自增1
                        
            print('子字符串在目标字符串中共出现 %d 次' % count)  #最后打印出现的次数

    desStr = input('请输入目标字符串:')
    subStr = input('请输入子字符串(两个字符):')
    findStr(desStr, subStr)

  • 相关阅读:
    深入剖析RocketMQ源码-NameServer
    Percolator模型及其在TiKV中的实现
    源码解读Dubbo分层设计思想
    vivo营销自动化技术解密|开篇
    Node.js 应用全链路追踪技术——[全链路信息获取]
    Linux系统 usermod -a -G 不重启 立即生效
    安装Docker和Docker-Compose工具
    linux 启动停止jar
    check_ffmpeg_status
    shell 的字符完全匹配
  • 原文地址:https://www.cnblogs.com/frankruby/p/9101540.html
Copyright © 2011-2022 走看看