首页
学习
活动
专区
工具
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): ...

13910

批量导入Excel文件,为什么我导入的数据重复了?

小勤:大海,为什么我从Excel文件夹导入的数据重复了? 大海:数据给我来试试看?...所以在后续编辑查询的时候我们首先要把合并工作表的内容过滤掉,否则以后刷新数据时会连合并工作表的数据一起导入。...Table 和DefineName的情况在Excel中可通过以下方法识别(以下2图不是本文涉及的数据导入操作步骤): 了解这些内容之后,我们就可以按需要去选择数据以避免重复了。...Step-05:选择Sheet类别的工作表 经过这样的筛选后,我们最终导入的数据就只有该工作簿中最原始的工作表数据,后续的操作就没有什么差别了,我们继续完成它。...好在从Power Query的每个步骤里出来的结果都是看得见摸得着的东西,还比较容易理解,只需要操作上注意筛选一下就行了。

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

    五、CLR加载程序集代码时,JIT编译器对性能的产生的影响

    1、CLR首次加载代码造成的性能损失      四、CLR执行程序集中代码介绍了CLR在首次执行一个类的时,会初始化一个内部结构,然后当目标方法被首次调用时,JITComplier函数(JIT编译器)...),JIT编译器必须再次将IL编译成本机指令.对于某些应用程序,这可能会增加内存的负担....首次加载程序集代码时,JIT将IL编译成本地代码时,会对其进行代码优化,这类似与非托管C++编译器的后端所做的事情.这可能也会花费加多的时间生成优化代码. ?...代码若在调试器中执行,一些函数求值可能无法进行.但是,优化过的IL代码变得更小,结果EXE/DLL文件也更小..../debug:full开关告诉JIT编译器你打算调试程序集,那么JIT编译器会记录每条IL指令所生成的本机代码.这样依赖,就可利用Visual Studio的“即时”调试功能,将调试器连接到正在运行的进程

    95070

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

    我本来是希望 when 的,在写第一个when的时候头脑还是很清晰的。但是呢,当写第二个的时候就用四肢写代码了,习惯性的打了个return。...由于我们通常还需进行反方向的转换,所以这里一不小心在“copy"或者直接写的时候搞反了,埋下了祸根。 像这类的问题还有? SQLite的字段设置为了unique的,但是insert的时候有重复。...accountService == null){ waitBind();//等待绑定成功、然后跨进程获取数据 } Info info = pushService.aidlGetInfo(); } 发现这个问题的现象是程序刚启动时随机出现几次...mAccount.setLoginSuccess(true) } //Thread-2 private synchronize Account getAccount(){ return mAccount; } 这里和1可能有些重复...但是,我们在清除accountID时只清除了数据库,没有清除缓存,再次登录的时候用的缓存的值。这样就会导致程序陷入了死循环。所以在进行存储操作时,需要考虑好同步的问题。

    96920

    我的WCF之旅(1):创建一个简单的WCF程序

    为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用。本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构。...Contracts:一个类库项目,定义服务契约(Service Contract),引用System.ServiceMode程序集(WCF框架的绝大部分实现和API定义在该程序集中); Services...程序集。...在上面的代码中,在创建ChannelFactory的时候再在构造函数中指定终结点的相关要素(契约通过范型类型表示,地址和绑定则通过参数指定)。...此外,一个Web应用在运行的时候会默认从位于根目录下的Bin目录加载程序集,而默认的情况下,我们编译后的程序集会自动保存到Bin\Debug|Release目录下,所以须要通过VS修改Services项目属性

    66321

    我的WCF之旅(1):创建一个简单的WCF程序

    为了使读者对基于WCF的编程模型有一个直观的映像,我将带领读者一步一步地创建一个完整的WCF应用。本应用功能虽然简单,但它涵盖了一个完整WCF应用的基本结构。...Contracts:一个类库项目,定义服务契约(Service Contract),引用System.ServiceMode程序集(WCF框架的绝大部分实现和API定义在该程序集中); Services...程序集。...在上面的代码中,在创建ChannelFactory的时候再在构造函数中指定终结点的相关要素(契约通过范型类型表示,地址和绑定则通过参数指定)。...此外,一个Web应用在运行的时候会默认从位于根目录下的Bin目录加载程序集,而默认的情况下,我们编译后的程序集会自动保存到Bin\Debug|Release目录下,所以须要通过VS修改Services项目属性

    91790

    msbuild 使用 ProduceOnlyReferenceAssembly 创建作为引用的仅公开成员程序集

    ,为了做一些有趣的业务,期望只是包含程序集的公开成员定义,如公开的方法和公开的属性和枚举等,但是不要包含具体的实现逻辑代码。...或者说在特定平台上不知道如何实现,只是为了辅助构建通过而已,如我在 Unity 3D 上提供的一些库,表示我不知道如何实现,我只是为了让构建能通过而已 使用 ProduceOnlyReferenceAssembly...可以让输出的程序集 dll 或 exe 里面只是包含了公开的成员的定义,但不包含具体的实现代码。...这样的程序集是仅仅作为被引用的程序集使用的,不能被实际调用 下面来告诉大家如何构建这样的程序集,构建有两个方法,第一个是放在 csproj 项目文件里面。...咱可以通过在构建的时候,修改构建命令来打出仅作为引用的程序集,如执行以下代码 msbuild /p:ProduceOnlyReferenceAssembly=true 此时构建出来的 dll 就是只读程序集

    78020

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

    应用问题:处理时间慢 每当客户端向SQL Server发送请求时,要检索所需的数据集,完成请求所需的总处理时间都包括: 应用程序处理时间:应用程序在发送下一个请求之前处理上一个响应中的数据需要多长时间...专注于一个小型可重复的工作流将让您隔离问题。 接下来的问题当然是为什么要花10秒钟?缩小问题的第一个也是最简单的方法是将应用程序尽可能靠近SQL Server,在同一台机器上或在同一个LAN上运行。...然后,您应该在会话窗口中看到您的App工作流对话。 使用的带宽显示为“字节A - > B”和“字节B - > A” 在高延迟网络上运行应用程序时重复捕获,并再次查看使用的带宽。...一个聊天应用程序是发送许多重复和不必要的查询,使得更多的网络往返行程比必要。 通常,这些应用程序最初是在高速LAN上开发并部署的,所以“chattiness”从来没有真正引起问题。...这两种最常见的方法是: 重写代码 - 例如,您可以聚合和过滤服务器上的多个数据集,以避免每个数据集进行查询,尽管并不总是更改应用程序 使用查询预取和缓存 - 有一些WAN优化工具可以做到这一点,但它们有时是昂贵的

    2.3K30

    我的 Serverless 实战 — 云函数与触发器的创建与使用 ( 开通腾讯云 “ 云开发 “ 服务 | 创建云函数 | 创建触发器 | 测试触发器 )

    文章目录 一、开通腾讯云 " 云开发 " 服务 二、创建云函数 三、创建触发器 四、测试触发器 一、开通腾讯云 " 云开发 " 服务 ---- 阿里云 , 腾讯云 , 都提供了相关 Serverless..., 该模块就是 Serverless 中的 Faas 空间 , 云函数在该模块运行 ; 二、创建云函数 ---- 选择 " 云函数 " 界面的 " 新建云函数 " 选项 , 选择 Node.js 运行环境..., 完成云函数创建 ; 点击函数名称 , 进入该云函数界面 , 选择函数代码模块 , 可以编辑云函数代码 ; 默认的代码如下 : 'use strict'; exports.main = async..." , 修改后点击左下角 " 保存 " 按钮 , 右上角提示 " 函数更新成功 " 后 , 说明修改完成 ; 三、创建触发器 ---- 触发器在 " 环境 " 层级下的 " 访问服务 " 模块创建 ;...点击 " 新建 " 按钮 , 在如下对话框中输入相关配置 , 域名选择本本实例的域名 , 触发路径任意输入一个路径 , 关联资源一定要选择之前创建的云函数 ; 等待触发器创建成功 ; 四、测试触发器

    1.7K30

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

    996的程序员们工作强度高、压力大,一旦患病,对家庭生活质量会产生极大的威胁。 可以说,一人患上重疾,就等于一家人被判了死刑。 如何避免呢?很多人想到买保险,但我劝你不要着急买!...为此,我邀请了我的好朋友资深保险规划师杨震,请他从客观中立的角度给大家开一次讲座,全面解读保险里的陷阱,避免大家日后被坑。讲座开始前,先上一波干货,给大家分析一下日常买保险常见的各种不正确姿势。...而那些花高价买的万能险、返还险等,认为包括了“教育金”和“养老金”,不但有保障,还可以理财,很划算。但其实,这种保险的价格比纯保障型的贵好几倍,同样的价格,保额也严重不足。...但很多人不知道,国家早已对各大保险公司疾病进行了统一,前25种重疾病种各家保险公司定义都是相同的。 所以,我们看重的数量应该是,重疾条款中附加的轻症和中症的项目。...要不然,我们花再多钱也是白搭,更得不到风险防御的效果。 买保险的4个正确打开方式 买保险的各种不正确姿势,每天都在我们身边上演,这么深的水,怎么才能避免被坑钱呢?

    2.8K20

    VBA自定义函数:在单元格区域中创建不重复的随机数

    标签:VBA,自定义函数 有时候,我们需要创建一组不重复的随机组,例如在指定单元格区域中创建一组不重复的随机数用于模拟数据分析。 下面的一个VBA自定义函数,可用于创建指定数值范围的不重复随机数。...() '保存随机选择的结果 (随机排序) Dim SrcULimit As Long '源数组的上限....用于消除重复 Dim UsedSourceNo As Long '从源数组中随机选择....Result_Index Application.ScreenUpdating = True RandomSeq = TempArray_Result End Function 要在单元格区域A1:A10000中创建从...1至10000之间的不重复随机数,调用RandomSeq函数并实现目标的代码如下: Sub RandomSeq_Example_Usage() Dim TestArray() Dim DestRange

    36710

    技术分享 | 为什么我的 MySQL 客户端字符集为 latin1

    问题背景 我司某客户最近在检查一批新安装的 MySQL 数据库时,发现了下面的现象: 该批次的 MySQL 客户端字符集全部为 latin1 ; 而之前使用同样参数模板部署的 MySQL ,客户端字符集却为...utf8 ; 已知 MySQL 版本为 5.7.32 ,服务器操作系统为 Redhat 7 ,那么为什么两次安装的 MySQL 字符集会不一样呢?...字符集介绍 首先我们简单回顾下 MySQL 字符集的相关知识,MySQL 字符集大体可以分为下面两个方面: Server 级别字符集 Server 级别的字符集,即数据存储到数据库时使用的字符集,又可以细化分为库级别...后,MySQL 客户端字符集变为了 latin1 那么,为什么会这样呢,我们看下官方文档上是怎么说的:https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html...,就会使用操作系统的(这里支持包括不完全精确匹配时,OS 字符集将映射到最接近的 MySQL 字符集);如果不支持,就使用客户端默认字符集; 我们知道 en_US 最接近的字符集就是 latin1 ,所以回到我们的问题

    1.4K30

    技术分享 | 为什么我的 MySQL 客户端字符集为 latin1

    问题背景 我司某客户最近在检查一批新安装的 MySQL 数据库时,发现了下面的现象: 该批次的 MySQL 客户端字符集全部为 Latin1 ; 而之前使用同样参数模板部署的 MySQL ,客户端字符集却为...utf8 ; 已知 MySQL 版本为 5.7.32 ,服务器操作系统为 Redhat 7 ,那么为什么两次安装的 MySQL 字符集会不一样呢?...参数指定; Client 级别字符集 Client 级别的字符集,即客户端连接进数据库时使用的字符集,分别由下面几个参数控制: character_set_client:Server认为Client发送过来的请求是用该参数进行编码的...Latin1 [qinguangfei0511-5.png] 那么,为什么会这样呢,我们看下官方文档上是怎么说的:https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html...(这里支持包括不完全精确匹配时,OS字符集将映射到最接近的MySQL字符集);如果不支持,就使用客户端默认字符集; 我们知道en_US最接近的字符集就是Latin1,所以回到我们的问题,当服务器的字符集为

    2K30

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

    看完不会,请评论,我亲自给你解释,嘻嘻! ? 什么是动态语言? 动态语言,是指程序在运行时可以改变其结构:新的函数可以被引进,已有的函数可以被删除等在结构上的变化。...喜欢问问题的小朋友要来了? 为什么没有getDeclaredConstructor方法和getDeclaredConstructors方法? 为什么?为什么? 有啊!!...总结 这时候又会有小朋友问: 为什么要这么麻烦,我直接调用不就好了?...不知你是否发现,从类的创建的方法的使用,所有的一切都是用的字符串,那么也就是说,我可以通过读入数据,或者配置文件的方式,创建类,调用方法。...写在最后: 我叫风骨散人,名字的意思是我多想可以不低头的自由生活,可现实却不是这样。

    1.1K20

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

    这种汹涌澎拜的斗争是我经常要面对的,而且显然会困扰许多软件开发人员。 2.“为什么这个脚本需要这么多库?”...“我用 30 分钟写函数,花 2 小时让它工作。” 这难道不像我们自己的编程故事吗?你正兴致勃勃地在构建着什么,但是突然之间,函数输出了一个致命的错误。...“哦,天哪,我以前为什么不写点注释呢?” 当涉及到比较基础的前端 HTML / CSS / JS 时,我们没有必要写注释。...但更复杂的脚本和程序却需要一定形式的条理组织,当你在几个月后,甚至若干年之后需要再回过头来看的话。 有时你会忘记注释函数及其参数、输出格式,和其他的必要数据。这在一段时间之后无疑会导致混乱。...当我一筹莫展时,我往往会选择从头开始,因为这样才有可能找到完成项目的正确道路。 为什么程序员发现不了自己的 Bug? ?

    1.1K10

    运维告诉我CPU飙升300%,为什么我的程序上线就奔溃了 | Java Debug 笔记

    代码层面从功能上看没有任何问题但是投入使用后却让我头大问题描述====系统上点击数据录入功能在全局监控中会受到相关消息的通知。...然后客户注册时候将这些接口和客户端绑定在一起当我们监听程序坚挺到数据变动就会对绑定到相关接口的客户端发送最新数据业务定位业务上很好定位,问题就是出现在我们的监听程序中。...在这种的并发场景下应该是不会出问题的。现在出了问题肯定我们的程序逻辑有缺陷上面是我们的发送消息的代码。代码也很简单。先获取所有符合发送条件的客户端 。...我们1W个用户同事在线的可能有5000+ 。 那么我们需要5000次以上的反射着肯定是吃不消的。这也是为什么本文开头说功能正常不代表业务正常。解决方案====这就是量变引起质变。...而且我们系统对数据实时性也是可以接受一定时间延迟的。我在这里又加上缓存这样就解决了我们循环的问题经过测试本次改动在CPU上大概优化了100倍。

    23110

    【不是问题的问题】为什么复位中断服务程序里面直接调用的main函数,难道所有程序都在复位中断里面执行的?

    这个问题之前一直理所当然,没有深究过,认为就是复位中断服务程序退出后进入到main的,实际不然。...【视频版】 https://www.bilibili.com/video/BV1Le411V7jS 【引出问题】 我们这里以MDK,IAR和GCC分别进行说明: (1) MDK的处理: main函数确实是在复位中断服务程序里面执行的...: 下面是__main的具体执行流程,其中调用了main,进入到main后,我们的程序就是一个死循环,一般不会退出main去执行exit(): (2)IAR的处理: 跟MDK的__main类似:...也就是说上电复位或者手动复位,此时的复位中断服务器程序就是作为普通程序来执行的,已经不再是中断式的处理机制,就是简单的函数跳转到了main里面。...参考资料: 1、https://developer.arm.com/docume ... del/exception-types 2、MDK的C库启动过程和初始化,即__main函数的执行全过程 https

    79740
    领券