zoukankan      html  css  js  c++  java
  • python_30期【函数def 函数名():】

    #!/user/bin/python3
    #  -*- coding: utf-8 -*-
    # @Time      : 2020/6/5 11:40
    # @Author    :Test_zhangping
    # @Email     :981874735@qq.com
    # @File      :class_python函数.py
    # 三步函数法
    # 1.先用零散的代码写出功能要求
    # 2.变成def 函数名()
    # 3.想办法提高他的复用性 参数化
    # 函数的定义!!
    # 基本语法
    
    # def get_money():   #冒号之后,是功能的实现代码。
    #     print("取了500万!!")
    #     print("我笑醒了!")
    #     print("不用上班了!")
    # 调用 函数名称()
    # get_money() # 不知道如何实现的,但是我只是使用了它
    
    # ()准备几个坑,相当于告诉调用者,必须把坑填满,否则功能使用不了。
    # 定义时,()放的形参,并不是具体的数据。形参用变量表达。形参用来接收 - 调用者实际传进来的数据。
    # 形参个数由什么来决定? 需求。功能实现需要几个用户数据。
    def get_money_V2(cardNum,passwd,count):
        """
        函数功能说明
        :param cardNum: 卡号
        :param passwd: 密码
        :param count: 取款金额
        :return:
        """
        # 卡号必须大于10位。
        if len(cardNum) < 10:
            print("卡号错了,再见!")
        # 密码必须为6位。否则不玩了。
        if len(passwd) != 6:
            print("密码长度出错,再见!")
        # 金额必须为100的整数倍。不然提示你金额出错。
        if int(count) % 100 != 0:
            print("金额不为100的整数倍!")
        # pass   # 我还没有想好写什么代码。不写呢,又要报错。使用pass占位。
    # 调用
    # 1、所有参数必须得传
    # 2、位置传参。对应的位置传对应的值。
    # 调用的时候,传的是具体的数据。叫做实参。
    # get_money_V2("12345678900","4567","500")
    get_money_V2("12345678900",4567,"500") # TypeError: object of type 'int' has no len()
    # print() # ctrl+B 看源码。
    
    # 默认参数:如果你没有传对应的实参。我就默认我在定义时提供的值。
    # 定义时,形参=值
    # 默认参数在最后。
    # 不限定个数。
    def get_money_V3(cardNum,passwd="123456",count=1000):
        # 卡号必须大于10位。
        if len(cardNum) < 10:
            print("卡号错了,再见!")
        # 密码必须为6位。否则不玩了。
        if len(passwd) != 6:
            print("密码长度出错,再见!")
        # 金额必须为100的整数倍。不然提示你金额出错。
        elif int(count) % 100 != 0:
            print("金额不为100的整数倍!")
        else:
            print(count)
    # get_money_V3("123456789",)  # 使用默认值。
    # get_money_V3("12345678900","123000")  # 部分使用默认值。
    # # 调用时,关键字参数. 传参时,形参=实参。
    # get_money_V3("12345678900",count=2000)
    def get_money_V4(cardNum,*args,**kwargs):
        # args是元组。()
        # kwargs是字典。{key:value}
        # 卡号必须大于10位。
        if len(cardNum) < 10:
            print("卡号错了,再见!")
        print(args)
        print(kwargs)
        for item in args:
            print(item)
    
    # get_money_V4("12345678900")
    # get_money_V4("12345678900",True,"123456",100)
    # res = get_money_V4("12345678900",True,"123456",name="小简",city="长沙")
    # get_money_V4("12345678900",True,"123456",name="小简",city="长沙")
    
    # 位置参数(必传No1),默认参数(可传可不传)、不定长参数(支持传多个)
    # 顺序(参考print):不定长参数   默认参数(可传可不传)
    # *args,**kwargs
    
    # 返回值。 礼尚往来。
    # s = print(res)
    # print(s)
    
    def get_money_V5(cardNum,passwd="123456",count=1000):
        # 卡号必须大于10位。
        if len(cardNum) < 10:
            print("卡号错了,再见!")
            return cardNum  # 遇到return就退出函数调用。
        # 密码必须为6位。否则不玩了。
        if len(passwd) != 6:
            print("密码长度出错,再见!")
            return
        # 金额必须为100的整数倍。不然提示你金额出错。
        if int(count) % 100 != 0:
            print("金额不为100的整数倍!")
        else:
            # 三个条件 都满足了,我就给你吐钱!
            print("条件满足,准备吐钱。。。")
            return cardNum,count
    
    
    # 接收返回值  变量 = 函数调用
    # carn,money = get_money_V5("123456789000",count=2000)  # 调用
    # print(carn,money)
    # res = get_money_V5("123456789000")
    # print(res)
    
    # tuple_my = "hello",True
    # print(tuple_my)
    
    res = get_money_V5("12345678") # 不满足其中一个分支。执行过程中当遇到了return,退出了函数调用。
    print(res)
    
    # 函数
    # 函数是干嘛的吗??? 功能实现!
    # 函数先定义再调用。
    # 定义:def 函数名称():
    #            实现功能
    
    # 参数:与用户交互。用户输入。
    # 在实现功能的时候,需要与外部交互。需要外部提供一定的数据,以实现功能。
    # 由需求来决定,有没有参数,有几个参数。
    
    # 参数的类型:位置参数、默认参数、不定长参数(*args,**kwargs)
    # 调用的时候:必传位置参数,默认参数可传可不传,也可以用关键字传参(形参=实参)、不定长参数可以传多个。
    
    # 函数在使用之后,给用户的输出。有输入有输出。有反馈。
    # 返回值。return关键字实现。
    # 1、函数无return,默认调用后的返回值为None
    # 2、return 值   值可以是任意类型数据。
    # 3、return后可以不跟值。表示返回为None
    # 4、调用函数时,遇到return,则结束函数调用。
    # 调用的时候,接收功能的输出:变量 = 函数调用
  • 相关阅读:
    What's wrong with this code ?
    自己实现的一个Script Callback
    一个给文档评分的WebPart
    Portal中的列表不能设置权限?
    TechED2004 广州 参会计划
    SharePoint站点中用户信息与AD用户信息的“不一致”问题
    上周进行的SPS Training部分Session的资料
    过去的2004,开始的2005
    一个示范性的文档库结构TreeView WebPart
    TechED2004广州 第一天
  • 原文地址:https://www.cnblogs.com/zhang-ping1205/p/13050538.html
Copyright © 2011-2022 走看看