首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么递归函数返回None

问: 有一个调用自己函数: 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 !...因此,尽管递归确实发生了,但返回值却被丢弃了,然后你会从函数末尾退出。在函数末尾退出意味着 Python 会隐式地返回 None,就像下面这样: >>> def f(x): ...

12010

为什么分享时候会感觉大脑空白

这也是最近遇到问题,这两个月做了两次技术分享,第一次就遇到上面的情况,有的点因为紧张怎么都想不起来,只能尴尬说,回头再重新捋一下发给大家。 为了避免每次遇到这种问题,得想办法解决。...再从大脑结构来说,你可以理解它们分布在这个位置: 从距离上说,本能脑和情绪脑距离心脏更近,一旦出现紧急情况,它们就会优先得到供血,这就是为什么紧张时候会感觉大脑空白,因为最上方理智脑供血不足了。...而且因为它年龄小,在遇到危险时候,本身也竞争不过其他两重脑,所以就能解释,为什么人在遇到危险时候都靠本能反应而不是靠理智。 02 那怎么解决这个问题呢? 其实很简单,就是打稿子,然后自己多练。...虽然没有连麦经验,但是感觉分享形式都是相通,所以我建议她先把要分享内容打稿,并熟读几遍,这样就算连麦紧张,还有稿子可以提醒,阿常执行力真的太强了,当天晚上稿子就出来了。...昨天看了阿常和小林连麦,非常稳,这也是要继续学习方向。 好了今天分享就到这里。 今日鸡汤: 自信人生二百年,会当击水三千里。

54140
您找到你想要的搜索结果了吗?
是的
没有找到

为什么程序代码不能终生责任制?

前言 知乎上有一个提问:为什么程序代码不能终生责任制? ↓↓↓ 今天,我们就这个话题,一起来做个讨论。...我们知道,诸如桥梁建造、商品房新建,这种民生建筑等建完房子之后,施工单位和相应工程师,是需要对其质量负一定责任,甚至可以说这种责任是终身制。...小伙伴们不妨先想一想,然后把你们答案,写在评论区。 回答 现在,据我多年观察现象来看,只要我们不从事非法软件研发工作,比如赌博、早期P2P金融类软件等等。...一些合理、合法软件,一般开发同学,出问题是不需要付什么法律责任,特别是离职后同学。...至于,为什么程序员不需要像建筑工程师那样,对工程质量付终身责任制这个问题,大家不妨发表一下你灼见,在评论区,与我们小伙伴一起讨论。

27130

为什么要创建一个不能被实例化

但如果有一天,你发现写了这样一个类: class People: def say(self): print(f'叫做:{self.name}') def __new...__(self): raise Exception('不能实例化这个类') kingname = People() kingname.say() 一旦初始化就会报错,如下图所示:...一个不能被初始化类,有什么用? 这就要引入我们今天讨论一种设计模式——混入(Mixins)。 Python 由于多继承原因,可能会出现钻石继承[1]又叫菱形继承。...显然,这样写会报错,因为两个类实例是不能比较大小: 但在现实生活中,当我们说 某人比另一个人大时,实际上是指某人年龄比另一人年龄大。...混入: 不能包含状态(实例变量)。 包含一个或多个非抽象方法。 参考资料 [1]钻石继承: https://en.wikipedia.org/wiki/Multiple_inheritance

3.4K10

为什么不会 C++ 不能算合格专家程序员?

因此,现在大多数程序员都跳过了 C++ 学习,并且更喜欢那些提供更抽象开发环境现代语言。 将解释一下,为什么学习 C++ 是所有努力成为编程专家程序必修课。...这就是为什么大多数程序员使用 Go 来构建高性能云工具,因为对云环境来说,二进制文件大小并不是问题。在高性能、轻量级软件开发方面,程序员仍然喜欢用 C++ 而不是 Go。...一些程序员使用 C++ 编程时会采用传统 OOP 范式。同时,有些程序员使用 C++ 编程时会采用过程以及函数编程范式。有时,我们经常不得不避免使用一些 C++ 特性,以便简化我们源代码。...因此,学习五种自己喜欢、精心挑选编程语言,并称它们为“最好编程语言”,是一个明智决定。 如果你仔细挑选五种编程语言,从各方面进行考虑——毫无疑问,C/C++ 也会在你名单上。...在这篇文章里介绍了最喜欢编程语言:每位开发人员都应该学习 5 种编程语言。

57351

程序员2年发现宝藏软件……

优秀程序员之所以优秀原因并不一定是他写代码速度比所有人都快,但是他解决事情效率一定是比很多人都要高。...,这里推荐一个经常在用思维导图软件——Xmind, 展现个人思维特别好软件,听说用了的人以后,老板都要给加薪,是用了2年多了,有免费版和付费版,对于我们绝大部分程序员来说免费版久够用了 编辑器...,这个软件可以让编辑好,直接发到infoq,csdn,博客园等等网站,支持性也比较好,所以强烈推荐,再给朋友们看一下,它简洁页面吧 idea 作为一个Java程序员,对这个软件真的是爱了,爱了...谷歌翻译插件 由于程序员平时看英文文档,像我这种英语本身不好的人,这个翻译插件可谓是帮了不少忙,插件右键,直接翻译,比有道词典感觉能更好用一点,当然你要是小语种用户,那可就太适合你了,官方说是支持...100多种语言,但是博主菜,只用英语和中文翻译 最后 这就是平常最常用软件了,欢迎各位在评论区补充你们所用软件,如果感觉有用还请给我点个赞哦,你们认可就是对最大鼓励,最后,疫情在家,你我应该听从街道办

24320

为什么程序有bug(一):逻辑篇

本来是希望 when <10 之后应该continue,在写第一个when<0时候头脑还是很清晰。但是呢,当写第二个时候就用四肢写代码了,习惯性打了个return。...很明显,还有许多该做事情都没有就跳出循环了。 像这样错误还有什么时候容易犯呢?比如: "!" 非判断时候,容易搞反了。 三目运算符,写错位置。...} 这里本来意思针对请求类型不同进行处理,但是我们在进行对比时候,用Request类型和Response类型进行比较,显然存在问题。...accountService == null){ waitBind();//等待绑定成功、然后跨进程获取数据 } Info info = pushService.aidlGetInfo(); } 发现这个问题现象是程序刚启动时随机出现几次...但是,我们在清除accountID时只清除了数据库,没有清除缓存,再次登录时候用缓存值。这样就会导致程序陷入了死循环。所以在进行存储操作时,需要考虑好同步问题。

92520

为什么产品经理工资不能够比程序员高?

今天,我们不聊程序员与产品经理工作上爱恨情仇,因为之前写过类似的文章了。今天想聊得话题就是:为什么产品经理工资不能够比程序员高?...反正认为大部分程序员正常反应肯定都是:不服气,凭什么?都会多多少少产生离职念头或者想法。要是前几年遇到这种情况,肯定也是这种反应,但是现在不会这么想了。为什么呢?...产品经理需要从项目初期规划到上线乃至运营都要参与其中,很多工作都很累,很杂。 所以,认为:一个优秀产品经理工资应该是很高,会比程序员高。这个前提是:你确实能够把产品做得让程序员服气才行。...特别欣赏一句话:产品就是拍电影,优秀产品经理等于大导演,优秀程序员等于那些片酬超高演员。大导演工资和优秀演员片酬,谁高谁低比就是技术。...如果在遇到上述情况,建议大家把眼光不要盯在工资比较上,而是自己能力上,想想自己能力到底值多少钱?

2.4K80

为什么网页总是卡?前端性能优化规则要点

下面整理出一些常用性能优化要点,同时再罗列一下雅虎军规、2-5-8原则、3秒钟首屏指标这三个常用规则要点。...加载完成后,用户交互使用时也需注意性能 ❝「加载优化」 ❞ 「减少HTTP请求」:尽量减少页面的请求数(「首次加载同时请求数不能超过4个」),移动设备浏览器同时响应请求为4个请求(「Android支持...「无阻塞」:头部内联样式和脚本会阻塞页面的渲染,样式放在头部并使用link方式引入,脚本放在尾部并使用异步方式加载 「首屏加载」:首屏快速显示可大大提升用户对页面速度感知,应尽量针对首屏快速显示优化...setTimeout 适当使用Canvas动画:5个元素以内使用CSS动画,5个元素以上使用Canvas动画,iOS8+可使用WebGL动画 「优化高频事件」:scroll、touchmove等事件可导致多次渲染 函数节流...函数防抖 使用requestAnimationFrame监听帧变化:使得在正确时间进行渲染 增加响应变化时间间隔:减少重绘次数 「GPU加速」:使用某些HTML5标签和CSS3属性会触发GPU渲染

1.7K20

用编程模拟疫情传播来告诉你: 为什么现在你还不能出门

dis_k=5036a3151e400b7b5d9cde11c9e80a1f&dis_t=1582083144 本片来自新片场创作人Ele实验室 (导演/出品人/制片人/策划/剪辑) 程序员用计算机编程方式...看完视频你就明白为什么不能出门了,千万不要放松警惕!(@Ele实验室 ) 在家憋了一段时间的人们,耐心也在一点一点消磨中。很多人已经忍不住开始想蠢蠢欲动了。...他们总有一套自己理论:我们城市才一点确诊病人,而且在距离我们很远地方,就出去一会儿,哪有那么巧合,就感染上了。没事儿!大街上都没人,戴着口罩又没事。...因此通过这一次疫情防控,为了你、、他,请以后感冒发烧生病之后,能够带个口罩,减少传染率。因为不知道你体内这一个病毒威力如何。 ?...因此一个疫情发生,必须依靠强大有力政府比如中国,和广大医院医生护士等伟大工作者们努力,所以平时请尽量尊重他们这个职业。 ?

2.1K10

为什么数据库应用程序这么慢?

当然这两者是相互联系。 如果您应用程序(或同一网络上其他应用程序)生成网络流量压倒可用带宽,则这可能会增加延迟。 延迟 延迟是在应用程序和SQL Server之间发送TCP数据包所需时间。...专注于一个小型可重复工作流将让您隔离问题。 接下来问题当然是为什么要花10秒钟?缩小问题第一个也是最简单方法是将应用程序尽可能靠近SQL Server,在同一台机器上或在同一个LAN上运行。...请记住选择相关网络界面,并注意您需要在与Wireshark数据库不同计算机上运行应用程序以查看流量​​。确保您没有运行任何其他本地SQL应用程序,而不是您尝试捕获其他本地SQL应用程序。...或者,当您知道您没有带宽瓶颈时,您需要查看应用程序使用多少带宽。为此,您还需要运行靠近数据库应用程序,捕获Wireshark中数据包,并检查应用程序使用带宽。...相反,我们已经看到,企业将越来越多内存或CPU放入SQL服务器,这样永远不会弥补网络延迟额外时间。 如果您可以确定工作流程处理时间真正用途,您可以以正确方式指导您时间和精力。

2.3K30

为什么建议线上高并发量日志输出时候不能带有代码位置

如果大家发现网上有抄袭本文章,欢迎举报,并且积极向这个 github 仓库 提交 issue,谢谢支持~ 本文是“为什么建议”系列第二篇,本系列中会针对一些在高并发场景下,对于组内后台开发一些开发建议以及开发规范要求进行说明和分析解读...往期回顾: 为什么建议在复杂但是性能关键表上所有查询都加上 force index 在业务一开始上线时候,我们线上日志级别是 INFO,并且在日志内容中输出了代码位置,格式例如: 2022-03...在上面给出线程堆栈例子中,调用打印日志方法代码位置信息就是这一行:at com.xxx.apigateway.filter.AccessCheckFilter.filter(AccessCheckFilter.java...模拟两种方式获取调用打印日志方法代码位置,与不获取代码位置会有多大性能差异 以下代码参考 Log4j2 官方代码单元测试,首先是模拟某一调用深度堆栈代码: 然后,编写测试代码,对比纯执行这个代码...由此,建议:对于微服务环境,尤其是响应式微服务环境,堆栈深度非常深,如果会输出大量日志的话,这个日志是不能带有代码位置,否则会造成严重性能衰减。

1.4K20

详解Java构造方法为什么不能覆盖,钻牛角尖病又犯了....

三 但是,看了输出,就纳闷为什么为什么第三行不是BigEgg2.Yolk(),不能覆盖吗?...那么,他们构造方法为什么不能覆盖,都是Public Yolk(){}。 当然,网上都说子类继承父类除构造方法以外所有方法,但这是结果,要知道为什么!! 五 先说几个错误观点 1....有说构造方法方法名与类名必须一样,父子类不能同名,故不能继,所以不能覆盖构造方法。 这个不用多说,这个例子,就是大神写出来打这样说的人。 2....有说因为子类继承父类时候,先运行父类构造函数;具体说就是运行父类时就会先“调用”父类构造函数,注意“调用”和继承不是一个含义,实质上是“自动运行”。...这个强行用中文语法来解释,达到中文6级了啊。 3. 有说构造方法不是成员函数,故不能继承,所以谈不上覆盖。 这个真的有道理,是java官方文档上。大多数人找到这里估计就满足了。

2K20

接触了不少小公司程序员后,感叹真会有不少程序员做不到30岁

1 能踏实做好增删改查程序员,就算能力达标 朋友开一家软件坐了坐,顺带近距离观察了他们java程序开发日常,首先说明,接触程序员不是才入职,而是普遍有2到3年工作经验。...2 除了业务知识外,这些程序员还会什么? 朋友所在公司里程序员天天都在创造价值,所开发和维护项目还真值不少钱,他们每天也不能算闲。...但除却哪些摸鱼程序员,那些态度积极程序员技术上掌握了哪些技能? 1 业务知识点,比如某个业务流程该怎么,中间该从哪里获取数据,该返回什么。...这些业务可能是这批程序员平时接触最多所谓技能,而公司也是凭借“能正确开发业务”来考核程序员,但这些只能算业务知识,不算技术。...所以,朋友公司看到一些程序状况,可能就未必是孤例了。不能说大多数小公司程序员都这样,但像这样程序员还真未必在少数。

58710

996程序员们,为什么不建议你买保险?

996程序员们工作强度高、压力大,一旦患病,对家庭生活质量会产生极大威胁。 可以说,一人患上重疾,就等于一家人被判了死刑。 如何避免呢?很多人想到买保险,但我劝你不要着急买!...为此,邀请了好朋友资深保险规划师杨震,请他从客观中立角度给大家开一次讲座,全面解读保险里陷阱,避免大家日后被坑。讲座开始前,先上一波干货,给大家分析一下日常买保险常见各种不正确姿势。...但很多人不知道,国家早已对各大保险公司疾病进行了统一,前25种重疾病种各家保险公司定义都是相同。 所以,我们看重数量应该是,重疾条款中附加轻症和中症项目。...所以正确做法是先给家里经济支柱足保障,先大人后小孩,才会真正意义上给宝宝一个安稳未来。...可以说,买错保险,是赔多少问题;投保时候不重视健康告知,是能不能拿到理赔金问题。 ◆ ◆ ◆ ◆ ◆

2.8K20

OpenCV论道:为什么伽马校正函数只有一行?

大家好,又见面了,是你们朋友全栈君。...,对原图透视变换、仿射变换,得到矩形棋盘;利用霍夫圆形检测或轮廓检测取得棋子;借助于机器学习识别棋子,最终得到对弈局面。...奇怪是,在网上搜到伽马校正函数看起来都很复杂,即便是 python 写,也都得十几行甚至几十行,可我写伽马校正函数只有一行。为什么会这样呢?是理解不对吗?...、伽马校正(gamma=2)灰度二值化效果、伽马校正(gamma=3)灰度二值化效果: 对于彩色图片,这个伽马校正函数依然有效。...发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/192950.html原文链接:https://javaforall.cn

1.1K20

nextline函数_在JAVA中Scanner中next()和nextLine()为什么不能一起使用?

大家好,又见面了,是你们朋友全栈君。...很好实现 …… 就继续在这里记录一下 Scanner 坑吧 一、next & nextLine 区别next不能得到带有空格字符串 一定要读到有效字符后才可以结束,结束条件是碰到空格、tab 键、...、tab 键、enter 键都不能当作结束符。...这些函数与 nextLine 连用都会有坑 坑点就是 next 系列函数返回了数据后,会把回车符留在缓冲区,因此我们下一次使用 nextLine 时候会碰到读取空字符串情况 解决方案:输入都用...nextLine ,格式转换 输入 next 系列函数调用后,中间调用一次 nextLine 调用去掉了回车符后,再调用一次 nextLine 调用真正输入我们数据 都使用 nextLine: class

2.6K10

『设计模式』反射,反射程序快乐!为什么老是加班?为什么工资不如他多?原来是不懂反射!

看完不会,请评论,亲自给你解释,嘻嘻! ? 什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新函数可以被引进,已有的函数可以被删除等在结构上变化。...动态类型语言,就是类型检查是在运行时,是不是合法要到运行时才判断,例如JavaScript就没有编译错误,只有运行错误。...喜欢问问题小朋友要来了? 为什么没有getDeclaredConstructor方法和getDeclaredConstructors方法? 为什么为什么? 有啊!!...关于为什么要使用private访问权限构造器,使用这个构造器不就不能外部访问了嘛,不也就无法进行实例化对象了吗?...总结 这时候又会有小朋友问: 为什么要这么麻烦,直接调用不就好了?

1.1K20

程序电商六大优势,看了你就知道为什么必须做小程序

但是这几个关于小程序却在心里: 已经做了微商、淘宝、京东,为什么要再做一个小程序商城? 小程序有多少交易量?能跟这些巨头平台相比吗? 以前不少人微店,但谁知他们挣没挣钱。...是个传统零售店店主,听说过小程序,但它真的能帮我赚钱? 既然大家有这方面的问题,就为大家一一解答。...二、优势二 与微商城相比,用户体验好 ▼ 在小程序之前,微信里商城通常用 H5 制作,H5体验比起小程序就差很多。用户在第一次打开时候一般比较慢,这一点跟小程序差不多。...四、优势四 流量来源更多样 ▼ 在 H5 商城时代,真正微商挣到钱的人无非两类:通过朋友圈分销(甚至违法传销);大自媒体/公众号。 前一类难免存在违规,或者是把熟人坑了一把。...小程序现在提供了很多免费流量入口,小程序与公众号关联也更为完美,小程序嵌入公众号方式也让用户整个阅读体验不一样,交易流程也更为顺畅。

1.9K50

为什么程序员总是发现不了自己Bug? 程序员: 不认识他啊

这种汹涌澎拜斗争是经常要面对,而且显然会困扰许多软件开发人员。 2.“为什么这个脚本需要这么多库?”...“用 30 分钟写函数,花 2 小时让它工作。” 这难道不像我们自己编程故事吗?你正兴致勃勃地在构建着什么,但是突然之间,函数输出了一个致命错误。...最后发现整个方法实际上是错误,而且从头来过更容易!如果开始时候能先一番研究的话,从长远来说,反而节省时间。 8.“花费大力气才找出问题原因是缺少了右括号。”...因此,要是有一些有帮助注释就会让你获益良多。 12.“20 分钟前它还可以工作……” 在构建程序时,可能最令人沮丧部分就是,它从能工作到不能工作——而你没有更新代码任何部分!...当我一筹莫展时,往往会选择从头开始,因为这样才有可能找到完成项目的正确道路。 为什么程序员发现不了自己 Bug? ?

1.1K10
领券