zoukankan      html  css  js  c++  java
  • python 学习笔记 —— 函数的认识


    # 一 函数的基本知道
    # 函数 表示代码可以实现某个功能 。下次用这个功能时直接调用函数就可以。
    # 函数的定义
    # def canf(): # def 来定义函数 函数名加括号
    # print("我是函数") # 这里是代码块
    # canf() # 表示调用 命名为canf这个函数。
    # print(canf) # 这样执行显示的是这个函数内存中的地址
    # print(canf()) # 加括号显示的是函数执行后的结果的返回值

    # def canf():
    # lists = []
    # for i in range(0,10,2):
    # lists.append(i)
    # return lists # return 表示函数的返回值 返回值可以是任意数据类型。函数遇到return 就立即终止函数的运行 return 以下的代码就不运行了。
    # # return 返回值 可以返回一个和多个值 多个值是以元组的数据类型表示的。
    #
    #
    # print(canf())

    # 二 函数的传参

    # 函数分为 实参 和形参
    # def canf(name): # 写在定义函数的括号里的参数叫做 形参
    # print(f"{name}欢迎你的到来。")
    # canf("杨涛") # 写在调用函数括号里的参数叫做 实参

    # 实参的分类
    # 1. 位置参数 传输几个位置参数就得有几个形参 (实参和形参要一一对应)

    # def canf(a,b): # 位置参数有两个 形参就必须有两个
    # print(a+b)
    # canf(5,6) # 这里表示有连个位置参数

    # 小插曲 三元运算符 适用于 if ... else 简单得语句判断。
    # a = 10
    # b = 20
    # if a>b:
    # print(a)
    # else:
    # print(b)

    # 简写 格式

    # print(a if a>b else b ) # 表示 判断成功则返回 a 判断失败 则返回 b

    # def canf(a,b):
    # return a if a >b else b # 这个就表示三元运算符得简单判断。
    # c = canf(5,6)
    # print(c)
    #

    # 2. 关键字参数
    # def canf(a,b):
    # print(f"我打印的是{b}")
    # print(f"我打印的是{a}")
    # canf(b="名字",a="身高") # 这样直接赋值的是关键字参数 位置调换没有关系 但是还是的和形参数量一一对应。

    # 3. 混合传参
    # def canf(a,b,c):
    # print(a+b+c)
    # canf(4,5,c=50) # 混合传参 就是既有位置参照也有关键字参数。但是 位置参数要在关键字参数前面。也是要和形参的数量一一对应
    # # 混合传参 关键字参数的位置可以和其他关键字参数相互调换。


    # def canf(l1):
    # b = len(l1)
    # if b > 3:
    # return l1[:3]
    # else:
    # return l1
    #
    # print(canf(["杨涛","杨灿"]))

    # 简化版本的 三元运算
    # def canf(l1):
    # return l1[:2] if len(l1) else l1
    # c = canf(["杨涛","杨灿","郭文丽"])
    # print(c)

    # 形参 的介绍
    # 位置参数 形参的位置参数和实参的位置参数一样
    # 默认值参数

    # def canf(name,age="男",sex="175"): # 默认值参数是指 给形参赋值的 参数就叫做默认值参数 什么时候使用默认值参数 经常使用的参数可以设置为默认值参数。
    # print(f"我的名字叫{name},性别{age},身高{sex}")
    # canf("杨涛",age="女") # 如果有了默认值参数 实参除了位置参数必须写之外。默认值参数可以不用写,
    # # 默认值参数也可以修改。直接在实参的位置 和写关键字参数的方法一样 。直接赋值来修改默认值参数。

    # 万能参数 默认是 *args **kwargs 但是args 可以给改为任意字符 只要前面加个 * 符号 *args 表示接受所有实参的位置参数。
    # 但是 kwargs 可以改为任意字符 只要前面驾驶** 符号 ** kwargs 表示接受所有实参的 关键字参数。
    # def canf(*b,**c): # *b 是以元组的方式聚合 **c 是以字典的形式聚合
    # a = 0
    # e = 0
    # for i in b:
    # a = a+i
    # for v in c.values(): # for k,v in c.items() 这样也可以取出 v的值
    # e = e +v
    # print(a+e)
    # canf(1,2,3,4,5,6,7,8,9,10,s1=5,s2=6,s3=10)
    #

    # 形参角度的顺序
    # (位置参数 *位置参数 默认参数 仅限关键字参数 **默认参数)

    # * 和 ** 在函数定义时候代表的 聚合 在函数调用的时候代表 打散

    # def canf(*args,**kwargs):
    # print(args)
    # print(kwargs)
    # canf(*"杨涛",*"33") # 相当于以最小字符 打散到一个新的元组中 *
    # canf(**{'name' :'杨灿'},**{'sex' :'69'}) # 相当于把两个字典合并到一起了。**
    #
    #
    # 作用域的 划分 有全局和 局部的划分
    # 局部可以引用 全局的 但是 全局不能引用局部的
    # 局部引用全局的不能修改赋值 如果修改 global + 变量名
    # 局部也可以定义一个全局的变量 定义方法 global + 变量名
  • 相关阅读:
    垃圾回收器
    垃圾回收相关概念
    Spring Cloud 框架 -- Spring Cloud Gateway
    Spring Cloud 框架 -- Zuul
    报错:Failed to read artifact descriptor for org.springframework.cloud:spring-cloud-starter-netflix-zuul:jar:2.2.2.RELEASE
    Spring Cloud 框架 -- Resilience4j
    Spring Cloud 框架 -- OpenFeign
    Spring Cloud 框架 -- Eureka 服务的注册与消费
    Spring Cloud 框架 -- Hystrix 的基本介绍与使用
    打包 Spring Boot 项目报错:Failed to execute goal on project provider: Could not resolve dependencies for project com.example:provider:jar:0.0.1-SNAPSHOT
  • 原文地址:https://www.cnblogs.com/yangtao481/p/13086173.html
Copyright © 2011-2022 走看看