精华内容
下载资源
问答
  • 运行的结果 在百度和论坛逛了一下,发现是解释器的问题,下面附上解决方法 查看解释器 如上图,我刚开始选择的是PyCharm默认的解释器(红色矩形) 改成Python3.8解释器(红色椭圆),结果就正常输出了 本人是...

    这是要运行的简单代码
    在这里插入图片描述
    运行的结果
    在这里插入图片描述
    在百度和论坛逛了一下,发现是解释器的问题,下面附上解决方法
    查看解释器
    在这里插入图片描述
    在这里插入图片描述
    如上图,我刚开始选择的是PyCharm默认的解释器(红色矩形)
    在这里插入图片描述
    改成Python3.8解释器(红色椭圆),结果就正常输出了
    在这里插入图片描述
    本人是技术小白,之前学了一段时间python,后面没怎么深入,最近想好好学一下Python,看了一段时间的书,在Python自带的idle写过一些代码,然后下个了PyCharm,由于之前没用过,就写了几行简单代码测试,才发现这个问题,写这个记录一下,希望对遇到同样问题的小白有帮助,大佬请忽略

    展开全文
  • 单击“转到此网页(不推荐)”,将得到如图3-25所示的运行结果。可以看到由于应用了服务器端Push来my.css,结果页面中文本已经变成蓝色。 图3-24 浏览器弹出安全提示 图3-25 程序3-18运行结果 ...
  • 运行一个helloword的例子时,会发现运行后一闪而过, ubuntu下,我们知道运行结果默认输出在terminal上, 所以这个一闪而过,我们会发现其实是最小化了,只要把上次运行的结果termial进行保留,也就是让窗口从最小...

    运行一个helloword的例子时,会发现运行后一闪而过,

    ubuntu下,我们知道运行结果默认输出在terminal上,

    所以这个一闪而过,我们会发现其实是最小化了,只要把上次运行的结果termial进行保留,也就是让窗口从最小化还原,

    那么后续运行代码时就都不会最小化了。



    还有个终极解决办法:

    settings=>preferences,然后选择内置terminal即可。(强烈推荐,你会感觉和windows下面一样的~)



    C++在VS code中有Ctrl+K,F进行代码自动排版,在codelite中也有,不过默认的快捷键非常奇葩,默认是ctrl+l,而且无效,果断改了:

    settings=>keyboard shortkeys



    同时删除Quick Add Next的快捷键,因为这个的快捷键默认是Ctrl+K,必须删除,否则会和新的上面提到的排版用快捷键冲突的。

    之后,选中代码,按下Ctrl+K,就可以对代码进行排版了

    ------------------------------------------------------------------------------

    因为codelite用Ctrl+F5运行代码,与xfce4的切换到第四个工作区的快捷键冲突,所以

    terminal中输入:

    xfce4-settings-manager

    在设置编辑器中如下设置:


    然后注销后生效


    展开全文
  • 我想是的先把数据读进文件中,然后再打开,用原来的部分数据覆盖文件中的数据,可是下面这段代码的“修改”之后的部分运行出来的结果是错的,请问是怎么回事呢? 或者有没有更好的删除数据的办法? ``` #include ...
  • 进入正题之前,小编先稍微说一下什么是递归。...我们先来看段代码:建议大家先思考这个代码在控制台输出的结果是什么?先不要看下面的结果。public class DiGuiTest { public static void main(String[] args) { ...

    进入正题之前,小编先稍微说一下什么是递归。递归就是在运行的过程中调用自己。递归需要有一个出口,如果无限递归是没有意义的,而且递归到一定程度,程序就会由于栈内存溢出导致程序报错。

    我们先来看段代码:建议大家先思考这个代码在控制台输出的结果是什么?先不要看下面的结果。

    public class DiGuiTest {
    
    	public static void main(String[] args) {
    		test(1);
    	}
    
    	public static void test(int a) {
    		if (a > 10) {
    			return;
    		}
    		System.out.println(a);
    		a++;
    		test(a);
    		System.out.println("递归后");
    	}
    }

    经过一番思考后,相信你已经有了自己的答案,接下里就揭晓正确答案了哦。我们先来看看程序运行的结果。

    7afe5492ff8408636f5b279628f810fe.png

    看到这个结果后,小编请大家在思考几个问题:

    1. 为什么不是输出的数字后面没有直接输出“递归后”这三个文字,而是在后面集中输出了十次“递归后”?
    2. 造成这种结果的原因是什么?
    3. 你的想法是不是跟第1个问题一样?

    如果你还没思考上面的几个问题,建议想想再往下看。这对你理解递归很好的帮助!

    32e8ae87a4ce7883ca72751419c359a3.png

    首先程序运行,首先从main方法开始压栈执行,先执行test(1);这行代码,然后进入方法后一直递归使用test方法,但是一运行到调用递归方法时,都会重新复制一份test方法压栈执行,但是之前的test方法还是在栈中,因为一碰到递归就会一直复制递归方法到栈中执行,一直到递归出口

    就这样一直到a>10时,到了递归出口,当参数a大于10时,此时栈内存中就只有一个main方法,十个递归方法。这时程序开始执行test(10)中未执行的代码,也就是递归方法后的输出语句。test(10)走完后,该方法已经运行完毕弹栈消失。接着运行test(9)中未运行的语句。以此类推,我们不难得到这样的结论:每次递归都会从方法区中复制一份方法到栈中压栈执行,这样就会一直调用递归的方法,一直压栈。直至到了递归出口,从最后进栈的那个递归方法运行递归后面的其他语句,运行完弹栈消失,然后一个接一个方法执行并且弹栈消失。也就是说最先输出的是最晚进栈的递归方法,这就是栈结构先进后出的特点。


    看到这,我想大部分人已经懂了一点。但是还有有点不清晰,所以我在最后在以图片配视频的方式来帮助大家理解本文核心。我暂时认为大家不清晰的点有以下几点:

    1. 弹栈消失的过程是什么样?
    2. 第一个进栈的递归方法后的输出语句在其他递归进栈的这段时间为什么不往下运行了?
    第一个问题采用动态的视频加图片的形式解答,这样更容易理解。(感谢君哥提供工具)通过视频我们可以看出最后进栈的是最先出栈的。这就是所谓的先进后出!
    tips:原网页是英文的,翻译后就成了一些看不懂的东西,忽略。
    知乎视频www.zhihu.com
    第二个问题,由于程序运行是从上往下的,所以一运行到递归就走递归的方法,实际第一个方法很痛苦,它一直在叫:“上面的哥们能快点吗?你们压着我运行不了,我很难受!”。所以早进栈执行的方法一直在等待,等待什么呢?等待他上面的递归方法弹栈消失,只有他上面的方法执行完才能轮到他。毕竟它上面压着九个哥们呢,这九个哥们不起来,最底下的你能起得来?

    综上所述:

    递归后的语句是能够执行的,但是执行顺序是到递归出口后,从最后一个进栈执行的方法执行递归后的语句,每执行完一个方法就弹栈消失,然后依次类推。

    展开全文
  • 有没有ide直接打印输出在dom js的结果的,不用每次调试都跳转到浏览器中看alterdocument.write()的打印结果,例如下面代码,直接在ide中运行代码,不用浏览器,就会执行getNodeByName()方法而打印alert()中的...
  • 说出下面代码输出的结果。 for(var i=0; i<5; i++){ setTimeout(function(){ console.log(i); }, 3000); } 回答:55555。 说一下,为什么? 解答:因为这里for中的var声明是全局的。 运行这段代码,会往异步...

    题目一

    说出下面代码输出的结果。

    for(var i=0; i<5; i++){
        setTimeout(function(){
            console.log(i);
        }, 3000);
    }
    

    回答:55555。

    说一下,为什么?

    解答:因为这里for中的var声明是全局的。

    运行这段代码,会往异步事件表(异步Event Table)中注册5个 “过3秒后运行的function(){console.log(i);}任务” 。直到同步队列(主队列)中的任务执行完成后,此时主队列为空,才会去检查异步事件表。按顺序按照对应的时间等待(这里都是3秒)结束后,才注册到异步任务队列中(也成等待队列),按照队列先进先出的原则,从异步任务队列不断取任务出来并放入到主队列中并由主线程来执行。此时在全局中,i的值为5,因此取出来的5个异步任务中运行结果都是打印5。

    那你说说,既然js是单线程的,它又是如何实现异步的呢?

    js中的异步以及多线程都可以理解成为一种“假象”,就拿h5的WebWorker来说,子线程有诸多限制,不能控制DOM,不能修改全局对象等等,通常只用来做计算做数据处理。
    这些限制并没有违背js是单线程语言的思想,所以说是“假象”。

    总的来说,JS异步的执行机制其实就是事件循环(eventloop),理解了eventloop机制,就理解了js异步的执行机制。

    在这里插入图片描述

    好,你提到了JS的事件循环(eventloop),你能说一下它是怎么运作的

    1. 首先判断JS是同步还是异步,同步就进入主线程运行,异步就进入event table.
    2. 异步任务在event table中注册事件,当满足触发条件后,(触发条件可能是延时也可能是ajax回调),被推入event queue
    3. 同步任务进入主线程后一直执行,直到主线程空闲时,才会去event queue中查看是否有可执行的异步任务,如果有就推入主线程中。
    4. 每次准备取出第一个宏任务执行前, 都要将所有的微任务一个一个取出来执行,也就是优先级比宏任务高,且与微任务所处的代码位置无关。

    img

    题目二

    for主体和seTimeout条件不变的前提下,那如果我要输出01234呢?

    • 使用自执行函数实现闭合作用域
    for (var i = 0; i < 5; i++) {
        (function (j) {
            setTimeout(function () {
                console.log(j);
            }, 3000);
        })(i);
    }
    
    • 直接用let,块级作用域,使每次注册异步任务时使用的i都是当前块内的值。
    for(let i=0; i<5; i++){
        setTimeout(function(){
            console.log(i);
        }, 3000);
    }
    
    • 其实和上面道理类似,使用了function实现闭合作用域。
    var output01 = function(i){
        setTimeout(function () {
            console.log(i);
        }, 3000);
    }
    for (var i = 0; i < 5; i++) {
        output01(i);
    }
    
    
    • 与上同理,闭合作用域
    var output02 = (i)=>{
        setTimeout(function () {
            console.log(i);
        }, 3000);
    }
    for (var i = 0; i < 5; i++) {
        output02(i);
    }
    

    题目三

    那如果我要输出012345呢?

    • 道理同上,先输出01234,再输出5
    for (var i = 0; i < 5; i++) {
        (function (j) {
            setTimeout(function () {
                console.log(j);
            }, 500 * j);
        })(i);
    }
    setTimeout(function () {
        console.log(i);
    }, 500 * i);
    
    • 这是比较骚的实现方法,使用promise.all(),等待所有异步任务执行完成后,才输出5
    const tasks = [];
    for (var i = 0; i < 5; i++) {
        (
            (j) => {
                tasks.push(new Promise((resolve) => {
                    setTimeout(() => {
                        console.log(j)
                        resolve();
                    }, 500 * j)
                }))
            }
        )(i);
    }
    // 等待所有异步任务执行完成
    Promise.all(tasks).then(() => {
        setTimeout(function () {
            console.log(i);
        })
    })
    
    • 道理同上
    const tasks = []
    var output03 = function(i){
        new Promise((resolve)=>{
            setTimeout(function(){
                console.log(i);
            }, 500*i)
        })
    }
    
    for(var i=0;i<5;i++){
        tasks.push(output03(i));
    }
    
    Promise.all(tasks).then(()=>{
        setTimeout(function(){
            console.log(i)
        }, 500*i)
    })
    

    结语

    这个Promise和setTimeout这块确实比较绕,不过只要遵守事件队列先进先出的原则来分析之,总能慢慢分析清楚,有空我将做一做这方面的笔记,并分享之。

    参考资料

    《js执行机制》 https://www.jianshu.com/p/1368d375aa66

    展开全文
  • 分两种情况进行计算(也就是两种情况的结果输出)。一种是每行时间数据,均要输出一个结果。另一种是对某个字段进行分组,然后根据分组来输出计算结果(比如企业)。 具体代码如下: ``` t05 = time.time() #...
  • 在没有安装Code Runner插件时,运行的代码是在 终端窗口 执行,执行结果没有出现中文乱码。 安装完Code Runner插件运行结果会切换到在 输出窗口 显示执行结果,同时会出现中文乱码问题,如下: 下面有三种...
  • 运行结果对比输出(OJ_SHOW_DIFF)中提示每个数据点的结果(AC/WA/TLE...)。 11-16 优化 @muzea 开发了从 GitHub 到 Gitee 的同步机制,并部署了CI。 11-13 更新 在运行时错误(RuntimeError)中显示数据点...
  • '''一开始符号总是得不到下面的运行结果,总是有点错乱,其实是符号选择错误...... 后来在各个符号前后都留有空格。''' for h in range(1,12): for l in range(1,12): if h in [1,6,11] and l in [1,6,11]:
  • 把之前程序导进来试运行下安装是否成功,发现控制台里显示结果有乱码。乱码部分是一个目录的输出,这个目录里含有中文路径 网上搜了下,有人说把下面图中两个Encoding设置为UTF-8会解决这个问题。这么配置了下...
  • 一个c++中的运行问题

    2020-04-03 13:44:24
    大家好,最近在用c++写继承类问题时,代码运行时遇到了以下问题:在for循环中,如果最后一个输入是Triangle,则程序直接结束,不会进行后面的输出了,找了好久都不知道问题出在哪里。 下面这张图是Triangle放在第二...
  • 欢迎来到StackOverflow!你想法是对,让我们先打开一些文件。with open("text.txt", "r") as filestream:with open("answers.txt", "w...由于我们使用了“with”,这些文件流将在下面空白的代码运行自动关闭...
  • 但是程序运行后执行结果依然是输出:A; 我tomcat中项目都删除干净了,然后重新加载,请问是怎么回事 [b]问题补充:[/b] 就是在MyEclipse中action的代码修改后不起作用,仍执行修改前程序比如说: 原...
  • (我在程序里面编了一个gg事件,用于证明程序是没有经过判断就直接运行case中事件,但结果确实是我没有发送指令,他就动了......)代码如下: ``` /*////////////////接线图////////////////////////////...
  • 【单选题】下面代码的输出结果是 s =[“seashell”,“gold”,“pink”,“brown”,“purple”,“tomato”] print(s[1:4:2])【填空题】依次填写以下Python语句执行结果: first, *middles, last = range(6)执行,...
  • 同学打包代码

    2012-06-22 13:48:26
    定义一个计算器类,该类包括两个组件对象,一个计算引擎和一个用户接口,用户接口对象处理接受的键盘输入信息,并显示答案,计算引擎对象对给出的数据执行相应操作,并存储操作的结果。 3. 设计一个Database类 设计...
  • 运行结果:分析:先选定第一个数字,然后将后面数字依次遍历求和,并与需要数字比较,需要n-1次,如果第一个数字不行,选择第二个,依次遍历求和。。。。需要n^2次,时间复杂度比较高,但也是可以,在面试中...
  • 下面是程序完整代码。本程序没有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法来获得输出,因为这些方法执行画面容易卡死。而是通过调用异步方法BeginOutputReadLine来获取输出,并在事件...
  • 3. 记录下面题目的程序和运行后的结果。 1 下列运算是否合法,为什么?如合法,结果是多少? (1) result1 = a' (2) result2 = a * b 不合法,应为result2=a.*b (3) result3 = a + b (4) result4 = b * d (5) ...
  • C#隐式运行CMD命令

    千次阅读 2015-06-09 14:50:12
    在命令文本框输入DOS命令,点击“Run”按钮,在下面的文本框中输出运行结果下面是程序完整代码。本程序没有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法来获得输出,因为这些方法执行...
  • 也许你的答案事在return之前,但往更细的说,我的答案事在return中间执行,请看下面程序代码运行结果:运行结果是1为什么呢?主函数调用子函数并得到结果的过程,好比主函数准备一个...下面的程序代码输出的结果是...
  • synchronized关键词是Java中由于实现多线程同步一个方法,这个关键字用于修饰方法。它原理是:被sychronized关键词修饰方法,在... 其输出结果如下图所示,注意线程 Thread-0 运行结束,线程Thread-1 才能够使
  •   我们先来看段代码:建议大家先思考这个代码在控制台输出的结果是什么?先不要看下面的结果。 public class DiGuiTest { public static void main(String[] args) { test(1); } public static void test...
  • 在命令文本框输入DOS命令,点击“Run”按钮,在下面的文本框中输出运行结果下面是程序完整代码。本程序没有使用p.StandardOutput.ReadtoEnd()和p.StandardOutput.ReadLine()方法来获得输出,因为这些方法执行...
  • 【单选题】关于Python的复数类型,以下选项中描述错误的是【单选题】将以下代码保存成Python文件,运行后输出的是: li = ['alex','eric','rain'] s = "_".join(li) print(s)【单选题】下面代码的输出结果是: a =...
  • 下面是小白的代码。 #include int main(int argc, const char * argv[]) { char hah[120],haha[120]; int i,j,num=0; printf("sting1 is "); gets(hah); printf("%s\n",hah); printf("string2 is "); gets...

空空如也

空空如也

1 2 3 4 5 ... 17
收藏数 323
精华内容 129
关键字:

下面代码运行后输出的结果是