zoukankan      html  css  js  c++  java
  • 函数啊函数

    函数啊函数

     

    先上个经济学小常识!

    其实这个问题之前我就遇到过,并且花了半年多的时间才想清楚。举个简单的例子,一个公司,到底是买现成的设备和软件还是高薪雇个人自己来做呢?经济学给这类非常蛋疼的问题起了个专有名词——企业边界。经济学解释:交易成本和管理成本的比较确定了企业的边界,交易成本越低,越要外部化,管理成本越高,越要内部化。未来的企业,一定越来越小,越来越专。改成上面的例子,其实就是看公司业务了,如果严重依赖网络的,都外包出去,我操,完全控制不住啊!管理成本无限大啊!还是自己招人吧。但网络如果是非主营业务,那就没必要了。恩,就是这个意思。

    函数有什么卵用

    函数的三大优点
    1、代码重用
    2、保持一致性
    3、可扩展

    函数的返回值

    为什么要有返回值,因为想要函数执行的结果,后面的函数需要
    def test1():
        print('in the test1')
        return 0
    
    test1()

    返回值都能返回什么?

    def test3():
        print('in the test3')
        return 1,'hello',['alex','wupq'],{'name':'alex'}
    
    test3()     #可以返回任何值,本质还是只返回一个值
    函数的参数及调用
    def test(x,y):      #x,y为形参,如果不调用,x,y永远不会占内容
        print(x)
        print(y)
    
    test(1,2)           #1,2为实参,形参和实参一一对应
    test(y=2,x=1)       #关键字调用,与形参位置无关,
    test(2,y=1)         #注意!关键参数要在位置参数之后
    
    
    函数的非固定参数
    
    
    def test(x,y=2):      #特点:调用函数的时候,默认参数非必传
        print(x)            #用途:1、默认安装值 2、链接数据库端口号
        print(y)
    
    test(1,3)
    
    

    怎么一下放多个参数

    def test(*args):
        print(args)
    
    test(1,3,3,34,5)
    
    
    #接受n个位置参数,转成元祖的方式
    def test(*args):      #放多个参数,里面放元祖。args为默认用法,也可以是别的参数
        print(args)
    
    test(1,3,3,34,5)
    test(*[1,3,3,34,5])     #另一种传参方式
    #把n个关键字参数,转成字典的方式
    def test(**kwargs):
        print(kwargs)
    
    test(name='alex',age='8',sex='F')       #注意,这里传的key值
    test(**{'name':'alex','age':'8','sex':'F'})         #另一种传参方式
    #混合使用
    
    def test(name,age=18,*args,**kwargs):
        print(name)
        print(age)
        print(args)         #打印为空
        print(kwargs)       #打印字典
    
    test('alex',4,sex='F',hohhy='tesla')            #正常人
    test('alex',sex='F',hohhy='tesla',age=3)          #关键字参数age可以在最后
    作用域、局部与全局变量        能用,但不要用!不要用!不要用!

    在子程序中定义的变量称为局部变量,在程序的一开始定义的变量称为全局变量。
    全局变量作用域是整个程序,局部变量作用域是定义该变量的子程序。
    当全局变量与局部变量同名时:
    在定义局部变量的子程序内,局部变量起作用;在其它地方全局变量起作用
    
    
    login_status = False        #定义全局变量
    
    def auth(username,password):
        #get data from db
        _username = "alex"
        _password = "123"
        if username == _username and password == _password:
            print("passed authentication!")
            global login_status     #引用全局变量
            login_status = True
            print(login_status)
    
    username = input("username:")
    password = input("password:")
    auth(username,password)
    
    
    















  • 相关阅读:
    (华中科大)江南雨烟 C++ STL 专栏
    MoreWindows 微软认证专家博客目录(白话算法,C++ STL,windows编程)
    「转」基于Jmeter和Jenkins搭建性能测试框架
    【转】docker之Dockerfile实践
    Python 统一动态创建多个model对应的modelForm类(type()函数)
    owasp zap 安全审计工具 安装/拦截请求
    【转】持续集成 Sonar 平台搭建及 Sonar 自定义规则打包部署篇
    【转】SonarQube配置自定义的CheckStyle代码规则
    【转+整理】jenkins与SonarQube集成
    【转】jenkins插件pipeline使用介绍
  • 原文地址:https://www.cnblogs.com/fengdao/p/6017915.html
Copyright © 2011-2022 走看看