问: 我有一个调用自己的函数: def get_input(): my_var = input('Enter "a" or "b": ') if my_var !...: Type "a" or "b": a got input: a 但是,如果我输入别的东西,然后输入 "a" 或 "b",我会得到这样的结果: Type "a" or "b": purple You...Type "a" or "b": a got input: None 我不明白为什么 get_input() 函数返回的是 None,因为它本应只返回 my_var。这个 None 是从哪里来的?...我该如何修复我的函数呢? 答: 它返回 None 是因为当你递归调用它时: if my_var != "a" and my_var !...没有返回那个值。 因此,尽管递归确实发生了,但返回值却被丢弃了,然后你会从函数末尾退出。
今天讲的这个小问题,没有用过 PyCharm 的同学会完全不知所云,但用过的人,可能有一半以上概率会遇到这个算不上 bug 但也可能让人迷惑的坑。...情况就是:当你写了一段代码,点击 PyCharm 右上角的绿色小三角运行程序时,发现结果跟你预期的完全不相干。然后,无论你怎么修改代码,结果丝毫不会改变。甚至你一怒之下删光所有代码,竟然仍有输出!...其实原因也很简单:在 PyCharm里面,切换了当前编辑的 py 文件后,默认运行的代码文件是不会跟着变的。这时候用快捷键或者点运行按钮执行的都还是一开始设定的那个代码文件。 ?...或者在设置里重新设定下 run context configuration 的快捷键,用这个快捷键来运行,就会是当前的 py 文件了。...不过这样一来,如果你不是写单个文件的代码,而是开发有固定执行入口的项目,就反倒不方便了。所以具体就看你自己的需要了。 ?
单个函数不要返回多种类型Python 语言非常灵活,我们能用它轻松完成一些在其他语言里很难做到的事情。比如:让一个函数同时返回不同类型的结果。从而实现一种看起来非常实用的“多功能函数”。...就像下面这样:图片当我们需要获取单个用户时,就传递 user_id 参数,否则就不传参数拿到所有活跃用户列表。一切都由一个函数 get_users 来搞定。这样的设计似乎很合理。...抛出异常,而不是返回结果与错误我在前面提过,Python 里的函数可以返回多个值。基于这个能力,我们可以编写一类特殊的函数:同时返回结果与错误信息的函数。...图片在示例中, create_item 函数的作用是创建新的 Item 对象。同时,为了在出错时给调用方提供错误详情,它利用了多返回值特性,把错误信息作为第二个结果返回。乍看上去,这样的做法很自然。...使用生成器函数代替返回列表在函数里返回列表特别常见,通常,我们会先初始化一个列表 results=[],然后在循环体内使用 results.append(item) 函数填充它,最后在函数的末尾返回。
除了通过 return 语句返回内容,在函数内还可以使用抛出异常(raise Exception)的方式来“返回结果”。 接下来,我将列举一些与函数返回相关的常用编程建议。 编程建议 1....单个函数不要返回多种类型 Python 语言非常灵活,我们能用它轻松完成一些在其他语言里很难做到的事情。比如:让一个函数同时返回不同类型的结果。从而实现一种看起来非常实用的“多功能函数”。...抛出异常,而不是返回结果与错误 我在前面提过,Python 里的函数可以返回多个值。基于这个能力,我们可以编写一类特殊的函数:同时返回结果与错误信息的函数。...合理使用“空对象模式” 我在前面提到函数可以用 None 值或异常来返回错误结果,但这两种方式都有一个共同的缺点。...使用生成器函数代替返回列表 在函数里返回列表特别常见,通常,我们会先初始化一个列表 results=[],然后在循环体内使用 results.append(item) 函数填充它,最后在函数的末尾返回。
除了通过 return语句返回内容,在函数内还可以使用抛出异常(raise Exception)的方式来“返回结果”。 接下来,我将列举一些与函数返回相关的常用编程建议。 编程建议 1....单个函数不要返回多种类型 Python 语言非常灵活,我们能用它轻松完成一些在其他语言里很难做到的事情。比如:让一个函数同时返回不同类型的结果。从而实现一种看起来非常实用的“多功能函数”。...抛出异常,而不是返回结果与错误 我在前面提过,Python 里的函数可以返回多个值。基于这个能力,我们可以编写一类特殊的函数:同时返回结果与错误信息的函数。...同时,为了在出错时给调用方提供错误详情,它利用了多返回值特性,把错误信息作为第二个结果返回。 乍看上去,这样的做法很自然。尤其是对那些有 Go 语言编程经验的人来说更是如此。...使用生成器函数代替返回列表 在函数里返回列表特别常见,通常,我们会先初始化一个列表 results=[],然后在循环体内使用 results.append(item) 函数填充它,最后在函数的末尾返回。
函数返回值简介 1、简单介绍print和return的区别,print仅仅是打印在控制台,而return则是将return后面的部分作为返回值:作为函数的输出,可以用变量接走,继续使用该返回值做其它事。...2、函数需要先定义后调用,函数体中return语句的结果就是返回值。如果一个函数没有reutrn语句,其实它有一个隐含的return语句,返回值是None,类型也是’NoneType’。...def func(x,y): num = x + y return print(func(1,2)) #上面代码的输出结果为:None 从上面例子可以看出print( )只是起一个打印作用,函数具体返回什么由...return决定 return语句的作用: 结束函数调用、返回值 指定返回值与隐含返回值: 1、函数体中return语句有指定返回值时返回的就是其值 2、函数体中没有return语句时,函数运行结束会隐含返回一个...def showplus(x): print(x) return x + 1 num = showplus(6) add = num + 2 print(add) #上面函数的输出结果为:6、9 实例扩展
另一方面,归因的功能是 “解释”,这就是说尽管 “S是P” 和 “M是P” 不能保证 “S是M” 的正确性,但“S是M” (作为假说)和 “M是P” (作为背景知识)可以解释 “S是P” (作为观察结果...)为什么会发生。...根据类似的思路,我甚至可以坚持认为只有我本人是真实存在的,而世界(包括所有其他人)都不过是一个模拟环境中的幻象而已。...据说拉普拉斯在回答拿破仑为什么他的书中不提上帝的质问时回答 “陛下,我不需要那个假设”,也是这种立场。还原论的问题也和这一点有关。...目前对机器学习系统缺乏 “解释功能” 的批评,很大程度上也是因为用函数逼近的方法 “学习”,固然可以识别出一个照片中的物体是只猫,但却不会像我们那样说 “我认为那是只猫,因为……” ——不管你的理由是什么
注意:这个函数返回的值是int类型,表示个数 使用举例: list1.count(r) 二、copy函数 复制。...,"kim"] b=a.copy() 三、index函数 是一个索引,使用之后,返回的是列表中某个元素出现在列表中的索引位置。...注意:这个函数返回的是某个元素在列表中第一次出现的索引的位置 四、sort函数 sort函数用来对列表中的数值进行排序:默认情况下是升序排序的,注意,元素必须是数值类型。...list1.sort()使列表中元素升序排序 list1.sort(reverse=True)使列表中元素降序排序 顶层函数使用方式 list2=sorted(list1)这个函数使用后会返回一个新的列表...,排序的结果不会影响原来的列表 五、reverse函数 功能:使得列表中的元素逆向重组 如果使用list1.reverse() 那么会影响list1中的元素顺序 六、总结强调 1、index索引 2、
为什么看起来不是很复杂的网站,淘宝、腾讯却需要大量顶尖高手来开发? 阿里巴巴员工2万,百度技术人员超过6000,京东也有三四千攻城狮。 子柳: 就拿淘宝来说说,当作给新人一些科普。...我刚刚看了一下,我访问淘宝网首页需要加载126个资源,那么如此小的并发连接数自然会加载很久。...例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。...把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个学生。 进行分词之后,还需要根据你输入的搜索词进行你的购物意图分析。...通过对你的购物意图的分析,主搜索会呈现出完全不同的结果来。 之后的数个步骤后,主搜索系统便根据上述以及更多复杂的条件列出了搜索结果,这一切是由一千多台搜索服务器完成。
来源:知乎 链接:http://www.zhihu.com/question/20303645 为什么很多看起来不是很复杂的网站,比如 Facebook 需要大量顶尖高手来开发?...我刚刚看了一下,我访问淘宝网首页需要加载126个资源,那么如此小的并发连接数自然会加载很久。...例如,英文句子I am a student,用中文则为:“我是一个学生”。计算机可以很简单通过空格知道student是一个单词,但是不能很容易明白“学”、“生”两个字合起来才表示一个词。...把中文的汉字序列切分成有意义的词,就是中文分词,有些人也称为切词。我是一个学生,分词的结果是:我 是 一个学生。 进行分词之后,还需要根据你输入的搜索词进行你的购物意图分析。...通过对你的购物意图的分析,主搜索会呈现出完全不同的结果来。 之后的数个步骤后,主搜索系统便根据上述以及更多复杂的条件列出了搜索结果,这一切是由一千多台搜索服务器完成。
之前有同学跟我说过,老尚,我学了html、css、js和框架了,然后接下来我该学什么呢?言下之意,“我得再学哪些东西,才能写出来很牛b、很厉害的前端应用呢?”...因为这种开放式的提问,我只能给一个开放式的回答。但过一段时间问他,或是看他朋友圈,依然是在那些具体的前端知识点上面来回打转。 这是什么情况? 这就是找不到提升的途径。...为什么会这样? 因为错把学习前端技术本身,当成了前端开发技能的全部。 结果是什么? 用了很长时间在前端技术上,但要做什么东西,却没有思路,无从下手。 WEB前端开发是一门实践性很强的职业技能。我这句话一出来,可能有同学要喷我,“前端开发是技术、是科学。你用职业技能来形容它是拉低了它的身价”。...包含了,一需求分析;二业务逻辑,而业务逻辑又是根据需求分析的结果得来的。你只有搞清了需求分析与业务逻辑,你才能使用html、css、js做为工具来写出项目应用。
/* 2008 4 25 更新 */ 我的数据访问函数库的源码。整个类有1400行,原先就是分开来写的,现在更新后还是分开来发一下吧。 第三部分:返回结构 数组,这个是专门针对网页来设计的。...//新增加的部分,返回结构数组用于绑定控件 #region 函数实现 — — RunSqlStructBaseTitle /// /// 返回BaseTitle结构的数组。...ID 传入查询语句,返回第一条记录的第一的字段的值 SetCommand(SQL,); //设置command SqlDataReader...ID 传入查询语句,返回第一条记录的第一的字段的值 SetCommand(SQL,); //设置command SqlDataReader
一、给过程或函数传递一个数组参数。 LOCAL ARRAYabc[5] abc[1]="A" abc[2]="B" abc[3]="C" abc[4]="D" abc[5]="E" CLEAR ?...sendarr(@abc) Function sendarr Lparameters ltarray_b RETURN ltarray_b[3] Endfun 这里的传值,我们注意一个@,这个小老鼠...数据传值,使用的是地址引用传值。 二、过程或函数传递返回一个数组。 LOCAL ARRAY abc[5] abc=returnarr() ?abc[1] ?abc[2] ?abc[3] ?...也是地址引用返回值。 三、过程或函数传递返回几个数组。 LOCAL ARRAY a[5] LOCAL ARRAY b[3] returnarr_more(@a,@b) ?a[1] ?a[2] ?...ENDFUNC 上面的代码,其实是引用址传递,过程或函数直接改变传递参数的值,而已。所以我们也可以看到有些函数的参数,有一个是返回值参数。就是上面的用法。 好了。总结这些,为狐友们参考!
J.S:当我还是一个男孩的时候,我就希望最大化我的影响力。我意识到,我必须建立一个具备自我学习能力的AI,学会变得比我更聪明,这样让AI解决我无法解决的所有问题,然后我就可以退休了。...但这种设想受限当时的计算性能力无法进得到验证。 我仍然在为实现这一30年前的目标而努力,而且有越来越多的人对此感兴趣。为什么?...LSTM本身也是一种监督学习方法,因此在没有“老师”的情况下,它是无法成为能解决未知环境中各种问题的“真正的AI”。这就是为什么在30年的时间里,我一直在研究更加通用的AI。...现在AI技术也有被用在如控制军用无人机上,但宏观角度讲, 我不是很担心AI带来的变化,因为我们已经达到了自我毁灭能力的最大可能性,全世界有数千核弹头和运载它们的导弹,即使没有AI,如果我们打起核战争,几小时内地球会毁灭掉...,所以我并不是很担心AI带来的附加威胁。
大家好,又见面了,我是你们的朋友全栈君。...实践中发现,光线的强弱、方向对于识别率影响很大,因此打算再增加高光消除、阴影补偿两项。高光消除尝试了很多算法,效果都不是很理想,倒是阴影补偿,使用伽马校正很轻松就搞定了。什么是伽马校正呢?...就是提升图像的暗部细节。这与加曝处理是不一样的,加曝一般不区分图像的暗部和亮部。...奇怪的是,我在网上搜到的伽马校正函数看起来都很复杂,即便是 python 写的,也都得十几行甚至几十行,可我写的伽马校正函数只有一行。为什么会这样呢?是我理解的不对吗?...、伽马校正(gamma=2)的灰度二值化效果、伽马校正(gamma=3)的灰度二值化效果: 对于彩色图片,这个伽马校正函数依然有效。
不要相信早期的JDK APIs Java刚出现的时候,编程一定是件很痛苦的事。那时的API仍然不够成熟,你可能曾经遇到过这样一段代码: ? 看起来很奇怪对吗?...不要相信“-1” 我知道这很偏执,Javadoc中关于 String.indexOf() 的早期描述是这样的: “字符在字符序列中第一次出现的位置将作为结果[被返回],如果字符不存在则返回-1。”...这么说来,我的确一点都不相信自己。因为: ? 这也是为什么所有的变量和参数都用final声明的原因。 ? 好吧,我承认,这一条我自己也不常用,虽然我应该用。...总是在switch语句里加上default Switch…作为最滑稽的表达式之一,我不知道是该心存敬畏还是默默哭泣。...结论 编程时的强迫症有时候看起来会很奇怪,会使得代码往往比必需的还要冗长。你可能会想,“啊,这种情况永远不会发生!”
这是典型的C语言中函数模块中的返回值问题,算是常见的语法细节,很多人觉得C语言已经过时了,只能代表着这类人还不算是真正的技术人员,在嵌入式领域C语言依然充当着非常重要的角色,C语言在很多领域还是首选编程语言...常见的C语言难点有指针,结构体,函数,递归,回调,数组等等,看起来没多少东西,每个概念都能延伸很多功能点,今天的题目其实就是函数模块中的返回值的问题,面向对象编程的基本单元就属于函数,函数包括参数输入,...具体功能实现,最后是结果的输出,也就是这个题目的返回值,在正常情况下函数的返回值只有一个,但在实际编程中需要用到多个,在设计时候还是归结成一类,如果类型相近可以弄成数组方式,如果类型不太一致直接放在结构体中执行...2.结构体指针返回 结构体是C语言涉及数据结构的最直接的容器,通常在编程过程中实现一个功能模块,模块中的数据通常都会放在一个结构体中,在在功能函数中对结构体中的数值进行操作,因为结构体中可以放足够多的变量...,如果函数返回值是个指针的话,就能把整个结构体里面的内容返回出来,同样能够达到返回多个数值的作用,这种在平常的编程过程中用的最多,C语言中使用最频繁的关键点就是指针了,但也是很多初学者最不好理解的知识点
请看: 1 把字符串常量放在前面 通过把字符串常量放在比较函数equals()比较项的左侧来防止偶然的 NullPointerException 从来都不是一个坏主意,就像这样: ?...讨论一下… 2 不要相信早期的JDK APIs Java刚出现的时候,编程一定是件很痛苦的事。那时的API仍然不够成熟,你可能曾经遇到过这样一段代码: ? 看起来很奇怪对吗?...3 不要相信“-1” 我知道这很偏执,Javadoc中关于 String.indexOf() 的早期描述是这样的: “字符在字符序列中第一次出现的位置将作为结果[被返回],如果字符不存在则返回-1。”...因为: 这也是为什么所有的变量和参数都用final声明的原因。 ? 好吧,我承认,这一条我自己也不常用,虽然我应该用。...9 总是在switch语句里加上default Switch…作为最滑稽的表达式之一,我不知道是该心存敬畏还是默默哭泣。
领取专属 10元无门槛券
手把手带您无忧上云