zoukankan      html  css  js  c++  java
  • python-16-初识函数

    前言

    以前写的python代码都是像记流水账一样,那么函数时什么额?它可以在任何需要它的地方进行调用,函数分为:

    • 内置函数,print(),len()
    • 自定义函数

    一、自定义函数

    1、我们都知道内置函数 len() 是计算长度,如下:

    s = '我是十位字符串666'
    lg = len(s)
    print(lg)

     2、这是有没有想到自定义一个函数也是计算长度呢?   直接定义函数名 def xxx():  一般小写,我们一起看看吧

    def my_len(s):            # 自定义 my_len 函数
        count = 0
        for i in s:
            count += 1
        return count
    
    s = '我是十位字符串666'
    lg = my_len(s)            # 调用 my_len 函数计算长度
    print(lg)

     3、函数返回值:return

    ①return 表示有返回值,结束函数调用,没返回值就不写 return

    ②return 可返回多个值,用多个变量接收:有多少返回值就用多少变量接收、用一个变量接收: 得到的是一个元组

    # 多个返回值,有多少返回值就用多少变量接收,一个变量接收返回的是元组。
    def common():
        return 1, 2, 'ss'
    print('一个变量接收:', common())         # 一个变量接收
    
    r1, r2, r3 = common()            # 多个变量接收
    print('多个变量接收:', r1, r2, r3)

     4、函数的形参与实参:

    ①形参,定义函数时的参数,接收参数;

    • 位置参数:必须传,且有几个参数就传几个值
    • 默认参数: 可以不传,如果不传就是用默认的参数,如果传了就用传的(也就是常说的默认值)

    ②实参,调用函数实际传入的参数;

    • 按照位置传参
    • 按照关键字传参
    • 混着用可以:但是 必须先按照位置传参,再按照关键字传参数
    • 不能给同一个变量传多个值

     

    5、定义函数时注意:

    • 位置参数 : 直接定义参数
    • 默认参数,关键字参数 :参数名 = '默认的值'
    • 动态参数 : 可以接受任意多个参数,也就是万能参数(参数名之前加*,习惯参数名args、参数名之前加**,习惯参数名kwargs)
    • 顺序:①位置参数,②*args,③默认参数,④**kwargs
    def my_len(s, a, *args, q=123, **kwargs):  # 万能参数 
    
        return s, a, args, q, kwargs
    
    # *args 是元组, **kwargs 是字典
    lg = my_len('我是S', '我是a', 'ar1', 'ar2', q=321, name='小龙')
    print(lg)

    6、另一种方式传参

    ① *arges:组合所有传过来的值,为元组

    def login(*args):
        ''' login注释 '''
        print(args)
    
    a = '小龙', '笑脸', 'GG', 889
    login(*a)

    ② **kwargs :关键字传参,组合为字典

    def login(**kwargs):
        ''' login注释 '''
        print(kwargs)
    
    login(a=1, b=2)
    a = {'a': 1, 'b': 2}
    login(**a)

     

    欢迎来QQ交流群:482713805

  • 相关阅读:
    SpringBoot集成Shiro 实现动态加载权限
    docker 常用命令 以及常见问题
    sql小知识点
    下载文件时-修改文件名字
    关于.net导出数据到excel/word【占位符替换】
    常见js报错
    .net core api +swagger(一个简单的入门demo 使用codefirst+mysql)
    .net core +codefirst(.net core 基础入门,适合这方面的小白阅读,本文使用mysql或mssql)
    基础测试jmeter5.0+badboy(从小白到入门)
    关于ef+codefirst+mysql/dapper(dbFirse)(入门)
  • 原文地址:https://www.cnblogs.com/gsxl/p/12063755.html
Copyright © 2011-2022 走看看