返回值

函数初识

社会主义新天地 提交于 2019-12-27 12:16:37
一,什么是函数?    现在有这么个情况:python中的len方法不让用了,你怎么办? 来测试一下‘hello word’ 的长度: s1 = "hello world" length = 0 for i in s1: length = length+1 print(length) OK,完事儿了,非常完美。但是主管又提出一个需求,要计算两外一个字符串的长度:‘hello china’, 于是你的代码就变成了这样: s1 = "hello world" length = 0 for i in s1: length = length+1 print(length) s2 = "hello china" length = 0 for i in s2: length = length+1 print(length) 这样确实可以实现len方法的效果,但是总感觉不是那么完美?为什么呢? 首先,之前只要我们执行len方法就可以直接拿到一个字符串的长度了,现在为了实现相同的功能我们把相同的代码写了好多遍 —— 代码冗余 其次,之前我们只写两句话读起来也很简单,一看就知道这两句代码是在计算长度,但是刚刚的代码却不那么容易读懂 —— 可读性差 所以,我们就想能不能用一段代码,来实现相同的功能,比如,咱们也写一个len()叫做my_len()可以代替len()的方法,既解决了代码冗余

函数 - 多个返回值、lambda

99封情书 提交于 2019-12-27 10:59:14
## 函数返回多个值: 1、函数如果返回多个值,会默认把值放到一个元组里面 def say():   return 1,2,3,4 print(say()) ------------- (1,2,3,4) 2、函数返回多个值,可用多个变量来接收 def say():   return 1,2,3,4 a,b,c,d = say() ------------a=1,b=2,c=3,d=4 print(a,b,c,d) ## 匿名函数(lambda) 函数功能很简单,只用一次 res = lambda x:x+1 #冒号后面的是函数体,也是函数的处理逻辑,冒号前面的是返回值 print(res(1)) 例:字典排序 #字典是无序的,不能直接对字典进行排序,得转成 list d = {'a':1,'b':2,'c':3} res = sorted(d.items(),key = lambda x:x[0]) print(res) ## 定义传参类型 如:def is_float(s:str): #规定参数 s 为 字符串 类型,但并没有任何特殊作用,定义后仍可传其它类型 来源: https://www.cnblogs.com/lynn-chen/p/8990183.html

函数复习

雨燕双飞 提交于 2019-12-27 09:57:02
1 什么是函数?  函数就是具备某一个功能的工具,    ----需要工具时,需要提前准备好,然后拿来就用且可以重复使用  所以    函数需要先定义,再使用 2 为什么要用函数?   1,代码的组织结构不清晰,可读性差  2,遇到重复的功能只能重复编写实现代码,代码冗余  3,功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维护难度极大 3 函数的分类:内置函数与自定义函数  内置函数:python解释器已经为我们定义好了的函数  自定义函数:我们自己根据需求,事先定制好的我们自己的函数,来实现某种功 4 如何自定义函数   语法  def 函数名(参数1,参数2,参数3.......):      """注释"""      函数体      return 返回的值  # 函数名要能反映其意义       函数使用的原则:先定义,再调用    函数即"变量","变量"必须先定义后引用。未定义而直接引用函数,就相当于在引用一个不存在的变量名    函数的使用,必须遵循原则:先定义,后调用   ###我们在使用函数时,一定要明确区分定义阶段和调用阶段###    #定义阶段      def foo():        print('from foo')        bar()      def bar():        print('from bar')  

Prometheus 函数

北战南征 提交于 2019-12-27 09:33:17
函数列表 一些函数有默认的参数,例如: year(v=vector(time()) instant-vector) 。v是参数值,instant-vector是参数类型。vector(time())是默认值。 abs() abs(v instant-vector) 返回输入向量的所有样本的绝对值。 absent() absent(v instant-vector) ,如果赋值给它的向量具有样本数据,则返回空向量;如果传递的瞬时向量参数没有样本数据,则返回不带度量指标名称且带有标签的样本值为1的结果 当监控度量指标时,如果获取到的样本数据是空的, 使用absent方法对告警是非常有用的 absent(nonexistent{job="myjob"}) # => key: value = {job="myjob"}: 1 absent(nonexistent{job="myjob", instance=~".*"}) # => {job="myjob"} 1 so smart ! absent(sum(nonexistent{job="myjob"})) # => key:value {}: 0 ceil() ceil(v instant-vector) 是一个向上舍入为最接近的整数。 changes() changes(v range-vector) 输入一个范围向量,

C++11 新特性:Lambda 表达式

社会主义新天地 提交于 2019-12-27 03:59:51
或许,Lambda 表达式算得上是 C++ 11 新增特性中最激动人心的一个。这个全新的特性听起来很深奥,但却是很多其他语言早已提供(比如 C#)或者即将提供(比如 Java)的。简而言之,Lambda 表达式就是用于创建匿名函数的。GCC 4.5.x 和 Microsoft Visual Studio 早已提供了对 lambda 表达式的支持。在 GCC 4.7 中,默认是不开启 C++ 11 特性的,需要添加 -std=c++11 编译参数。而 VS2010 则默认开启。 为什么说 lambda 表达式如此激动人心呢?举一个例子。标准 C++ 库中有一个常用算法的库,其中提供了很多算法函数,比如 sort() 和 find()。这些函数通常需要提供一个“谓词函数 predicate function”。所谓谓词函数,就是进行一个操作用的临时函数。比如 find() 需要一个谓词,用于查找元素满足的条件;能够满足谓词函数的元素才会被查找出来。这样的谓词函数,使用临时的匿名函数,既可以减少函数数量,又会让代码变得清晰易读。 下面来看一个例子: #include <algorithm> #include <cmath> void abssort(float *x, unsigned N) { std::sort(x, x + N, [](float a, float b) {

Web基础了解版08-JSTL

Deadly 提交于 2019-12-27 01:33:09
JSTL JSP为我们提供了可以自定义标签库(Tag Library)的功能,用来替代代码脚本,Sun公司又定义了一套通用的标签库名为JSTL(JSP Standard Tag Library),里面定义很多我们开发中常用的方法 使用JSTL 1. 先引入JSTL标签库的jar包类库到WEB-INF/lib目录下 2.使用taglib指令导入需要的标签库 CORE 标签库 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> XML 标签库 <%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %> FMT 标签库 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %> SQL 标签库 <%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %> FUNCTIONS 标签库 <%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %> 3. 使用JSTL 如: <c:out value="hello"> < /c

自学Java之day04_方法

ぃ、小莉子 提交于 2019-12-27 01:12:15
方法的由来 我们在学习运算符的时候,都为每个运算符单独的创建一个新的类和main方法,我们会发现这样编写代码非常的繁琐,而且重复的代码过多。能否避免这些重复的代码呢,就需要使用方法来实现。当我们需要这个功能的时候,就可以去调用。这样即实现了代码的复用性,也解决了代码冗余的现象。 方法的概念 方法: 就是将一个功能抽取出来,把代码单独定义在一个大括号内,形成一个单独的功能。 方法的定义 格式: 定义格式解释: 修饰符: 控制方法的访问权限,一般情况下都是根据需求来决定的。目前固定写法 public static。 返回值类型: 一般情况下都是根据需求来决定的,表示方法运行的结果的数据类型,方法执行后将结果返回到调用者 方法名: 为我们定义的方法起名,满足标识符的规范,用来调用方法。 参数列表: 方法在运算过程中的未知数据,调用者调用方法时传递 return: 将方法执行后的结果带给调用者,方法执行到 return ,整体方法运行结束。返回值类型是void,方法大括号内的return可以不写。return 结果; 这里的"结果"在开发中,我们正确的叫法成为方法的返回值 tips: 参数: 就是进入方法的数据。 返回值 :就是从方法中出来的数据。 参数列表: 包括参数类型(进入方法的数据是什么类型)和参数名称(进入方法的数据对应的变量名称)。参数如果有多个,使用逗号进行分隔 代码演示 /

Golang中interface{}转为数组

不想你离开。 提交于 2019-12-27 00:22:21
interface{} 转为普通类型   我们都知道在golang中interface{}可以代表任何类型,对于像int64、bool、string等这些简单类型,interface{}类型转为这些简单类型时,直接使用 p, ok := t.(bool) p, ok := t.(int64) 如果ok==true的话,就已经类型转换成功。   假设有这样一个场景,我们有一个函数有返回值,但是返回值的类型不定,所以我们的返回值类型只能以接口来代替了。返回接口类型之后,我们就要对其类型进行判断然后进行类型转换。如果返回的是数组的话,我们就不能像上面那样直接进行转换了。那有什么办法呢?   可以考虑使用 reflect.Typeof(mm).Kind() 。 func generate() (interface{}, bool) { //s := []string{"123", "345", "abc"} //s := 123 s := "mmm" return s, true } func test() { origin, ok := generate() if ok { switch reflect.TypeOf(origin).Kind() { case reflect.Slice, reflect.Array: s := reflect.ValueOf(origin) for i

day 9 - 1 函数

两盒软妹~` 提交于 2019-12-26 21:58:48
函数 函数:定义了之后,可以在任何需要它的地方调用 函数模拟 len() 方法 #len() 方法的使用 s="世界上唯一不变的就是变化" print(len(s)) #下面是我们常用的 len() 方法的使用 s="世界上唯一不变的就是变化" print(len(s)) #下面我们来使用函数模拟 len() 方法 s="世界上唯一不变的就是变化" def my_len(): #def 关键字定义函数 声明函数 i=0 for j in s: i=i+1 print(i) my_len() #调用函数 这样我们便实现了使用函数来计算长度的功能,但这并不是我们想要的 与 len() 相比的不同 1.不能变,只能计算 s 字符串的长度 2.只是输出了结果 3.没有返回值 我们先来解决返回值的问题(还有 print() 打印结果的问题) s="世界上唯一不变的就是变化" def my_len(): i=0 for j in s: i=i+1 return i #设定返回值 #然后我们可以赋值的调取 length = my_len() print(length) #我们也可以直接调取,是不是发现什么 print(my_len()) #是不是和下面 len() 又相近了些 s="世界上唯一不变的就是变化" print(len(s)) 返回值 return 表示结束一个函数   与 break

08.1 Day Python之函数初识(整理后版本)

拜拜、爱过 提交于 2019-12-26 21:42:50
函数初识 1、函数的定义 def func(): ''' 测试函数 :return: ''' s = '人生苦短我用python' count = 0 for i in s: count += 1 return count 2、函数的调用 def func(): ''' 测试函数 :return: ''' s = '人生苦短我用python' count = 0 for i in s: count += 1 return count res = func() # 函数名加括号进行调用:func() print(res) >>> 12 3、函数的返回值 1、返回值的种类 ① 没有返回值,返回None 只有return:结束一个函数的继续 没有return 有return None:不常用 # 只有return:结束一个函数的继续 def func(): ''' 测试函数 :return: ''' s = '人生苦短我用python' count = 0 for i in s: count += 1 return #这里没有count 相当于不给返回值 res = func() # 函数名加括号进行调用:func() print(res) >> > None # 没有return 和只有一个return效果一样 def func(): ''' 测试函数 :return: ''' s =