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

#PY小贴士# 我的PyCharm为什么执行结果很诡异?

今天讲的这个小问题,没有用过 PyCharm 的同学会完全不知所云,但用过的人,可能有一半以上概率会遇到这个算不上 bug 但也可能让人迷惑的坑。...情况就是:当你写了一段代码,点击 PyCharm 右上角的绿色小三角运行程序时,发现结果跟你预期的完全不相干。然后,无论你怎么修改代码,结果丝毫不会改变。甚至你一怒之下删光所有代码,竟然仍有输出!...其实原因也很简单:在 PyCharm里面,切换了当前编辑的 py 文件后,默认运行的代码文件是不会跟着变的。这时候用快捷键或者点运行按钮执行的都还是一开始设定的那个代码文件。 ?...或者在设置里重新设定下 run context configuration 的快捷键,用这个快捷键来运行,就会是当前的 py 文件了。...不过这样一来,如果你不是写单个文件的代码,而是开发有固定执行入口的项目,就反倒不方便了。所以具体就看你自己的需要了。 ?

1.3K20

为什么if-else会影响我的代码的复杂度

关于if-else的争议 我之前写了一篇文章《我用规则引擎消除if语句,提高了代码的可扩展性》,这篇文章我想阐述的观点是复杂的if语句可能会影响代码的阅读和代码的扩展性,会将非业务的条件逻辑与业务逻辑混合在一起...时间长了代码会越来越臃肿,因此这种情况下我推荐使用一些设计模式例如策略模式,责任链模式等去优化if语句带来的问题,文中我发现使用规则引擎也能实现类似效果,因此介绍了怎么使用规则引擎Easy Rules去取代...if-else增加了代码复杂度 文章发布后,有很大一部分读者认为只用设计模式会增加代码阅读性,还是会觉得if-else好,就算if写得再复杂,也要使用if-else。...当然也有赞同我的观点的: 统计了下,有八成读者评论是反对用其他方法代替if-else的。所以我还是想写篇文章表达下我的观点。...这里我要阐明我的一个观点: “我的观点并不是说,我们在编码时不能使用if-else,而是说我们不应该简陋地用if-else去实现业务的分支流程,因为这样随意的代码堆砌很容易堆出一座座"屎山"。

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

    我为什么建议大家一定的会 C 语言

    在如今 Python 和 Java 大火的市场前景下,我还是建议,如果你还在学校读书,或者你有大把的空闲时间,不着急去找工作,那就静下心来,好好学习一下 C 语言,会让你受益终生,也会让你的编程之路走的更远...其设计的精髓,其内涵思想,都是值得当下的我们学习与借鉴的 2、C 语言作为我接触编程的开始,对我的影响很大,带我入了 IT 这行,我本人也是极其的喜欢 C 语言,C 语言涉及了很多底层的知识,比如:内存...C 语言入门比较难,我也是非科班出身,一路全凭自己摸索,自己的智商并不高,我能做的到,代表大部分人应该都可以,换一种角度思考,如果难的都搞定了,简单的还是问题吗 与 C 结缘 我说说我自己本人的亲身经历...,由一名后台转算法,仅仅用了 3 个月的时间,但是为什么我能这么快的成功转型呢 扎实的基础功底、快速的学习能力、解决问题的能力、以及个人潜力 扎实的基础功底很重要,基础是什么:数据结构 + 算法,操作系统...,这些都是相通的,公司需要我做什么,我快速学习就好 语言是工具,重要的是思想,我很认同这句话,我以前没接触过 go,在百度实习的时候,我导师还给了我 1 周的时间去熟悉,才上项目,以前没咋用 Python

    1.4K50

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

    再从大脑结构来说,你可以理解它们分布在这个位置: 从距离上说,本能脑和情绪脑距离心脏更近,一旦出现紧急情况,它们就会优先得到供血,这就是为什么我紧张的时候会感觉大脑空白,因为最上方的理智脑供血不足了。...而且因为它年龄小,在遇到危险的时候,本身也竞争不过其他两重脑,所以就能解释,为什么人在遇到危险的时候都靠本能反应而不是靠理智。 02 那怎么解决这个问题呢? 其实很简单,就是打稿子,然后自己多练。...实验结果比较成功,比第一次的分享好太多了,领导都忍不住夸了几句,感觉进步很大,哈哈。 03 这个经验可以借鉴 其实这个方法不只是用在会议分享上,现在很火的视频直播、连麦分享,都可以这么用。...前几天和阿常聊天,她说起将要和小林连麦,想想都觉得会紧张,后来把默默把内容在脑子里过了几遍之后感觉踏实不少。...昨天我看了阿常和小林的连麦,非常稳,这也是我要继续学习的方向。 好了今天的分享就到这里。 今日鸡汤: 自信人生二百年,会当击水三千里。

    55440

    MySQL实战第十二讲-为什么我的MySQL会“抖”一下?

    你的 SQL 语句为什么变“慢”了 在本栏第 2 篇文章《MySQL深入学习第二篇 - 一条SQL更新语句是如何执行的?》中,我为你介绍了 WAL 机制。...如果刷脏页一定会写盘,就保证了每个数据页有两种状态: 一种是内存里存在,内存里就肯定是正确的结果,直接返回; 另一种是内存里没有数据,就可以肯定数据文件上是正确的结果,读入内存后返回。...这时候只能把最久不使用的数据页从内存中淘汰掉:如果要淘汰的是一个干净页,就直接释放出来复用;但如果是脏页呢,就必须将脏页先刷到磁盘,变成干净页后才能复用。...磁盘的 IOPS 可以通过 fio 这个工具来测试,下面的语句是我用来测试磁盘随机读写的命令: fio -filename=$filename -direct=1 -iodepth 1 -thread...但如果你在配置的时候不慎将 redo log 设置成了 1 个 100M 的文件,会发生什么情况呢?又为什么会出现这样的情况呢?

    46920

    Linux中的ps命令都用过,不过我相信你看完本文你会“卧槽,原来我只会皮毛!”

    Linux中的ps命令是Process Status的缩写。ps命令用来列出系统中当前运行的那些进程。...ps命令列出的是当前那些进程的快照, 就是执行ps命令的那个时刻的那些进程,如果想要动态的显示进程信息,就可以使用top命令。...使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等等。总之大部分信息都是可以通过执行该命令得到的。...PPID 则是其上级父程序的ID C CPU 使用的资源百分比 PRI 这个是 Priority (优先执行序) 的缩写,详细后面介绍 NI 这个是 Nice 值,在下一小节我们会持续介绍 ADDR 这个是...CMD 所下达的指令为何 在预设的情况下, ps 仅会列出与目前所在的 bash shell 有关的 PID 而已,所以, 当我使用 ps -l 的时候,只有三个 PID。

    75100

    MySQL深入学习第十二篇-为什么我的MySQL会“抖”一下?

    你的 SQL 语句为什么变“慢”了 在本栏第 2 篇文章《MySQL深入学习第二篇 - 一条SQL更新语句是如何执行的?》中,我为你介绍了 WAL 机制。...如果刷脏页一定会写盘,就保证了每个数据页有两种状态: 一种是内存里存在,内存里就肯定是正确的结果,直接返回; 另一种是内存里没有数据,就可以肯定数据文件上是正确的结果,读入内存后返回。...这时候只能把最久不使用的数据页从内存中淘汰掉:如果要淘汰的是一个干净页,就直接释放出来复用;但如果是脏页呢,就必须将脏页先刷到磁盘,变成干净页后才能复用。...磁盘的 IOPS 可以通过 fio 这个工具来测试,下面的语句是我用来测试磁盘随机读写的命令: fio -filename=$filename -direct=1 -iodepth 1 -thread...但如果你在配置的时候不慎将 redo log 设置成了 1 个 100M 的文件,会发生什么情况呢?又为什么会出现这样的情况呢?

    52930

    一名在读研究生的自白:我为什么会沉迷于openGauss 社区?| Q推荐

    ,这样积极的社区氛围让我很喜欢。”...“在参与 openGauss 社区交流之前,在这方面我就是个小白,我现在研究的课题也与 openGauss 强相关——借助 openGauss 的插件化架构,自定义一些算子实现以加速 openGauss...陈同学就曾参加过由 openGauss 社区与 Gauss 松鼠会、墨天轮联合举办的“知识问答竞赛"和“8 小时玩转 openGauss 训练营"两个活动。...与此同时,看板的发布,包括我自己在内的 openGauss 社区贡献者应该做的是继续保持初心,以开放的心态积极去做交流。”...通过陈同学我们也了解到,他身边许多同学在遇到技术问题时,也会优先想到去 openGauss 社区相关的 SIG 小组去寻求解决方案。

    30320

    sql注入报错注入原理解析

    我相信很多小伙伴在玩sql注入报错注入时都会有一个疑问,为什么这么写就会报错?...最开始我们看到的这张sage-count()表应该时空的,但是在group by语句执行过程中,一行一行的去扫描原始表的sage字段,如果sage在sage-count()不存在,那么就将他插入,并置count...,所以第二次运算的结果可能与第一次运算的结果不一致,但是这个运算的结果可能在虚拟表中已经存在了,那么这时的插入必然导致错误!...,但是还记得吗,在插入之前会进行第二次计算,这时x的值就变成了1@5.7.19,所以虚拟表变成了下面这样: ?...上面是使用rand(0)的情况,rand(0)是比较稳定的,所以每次执行都可以报错,但是如果使用rand()的话,因为它生成的序列是随机的嘛,所以并不是每次执行都会报错,下面是我的测试结果: ?

    88030

    sql注入 报错注入_sql原理

    大家好,又见面了,我是你们的朋友全栈君。 sql注入报错注入原理详解 前言 我相信很多小伙伴在玩sql注入报错注入时都会有一个疑问,为什么这么写就会报错?...最开始我们看到的这张sage-count()表应该时空的,但是在group by语句执行过程中,一行一行的去扫描原始表的sage字段,如果sage在sage-count()不存在,那么就将他插入,并置count...,所以第二次运算的结果可能与第一次运算的结果不一致,但是这个运算的结果可能在虚拟表中已经存在了,那么这时的插入必然导致错误!...x有没有x的值是x@5.7.19的数据项,结果显然是没有,那么接下来就将它插入到上表中,但是还记得吗,在插入之前会进行第二次计算,这时x的值就变成了1@5.7.19,所以虚拟表变成了下面这样: count...---- 上面是使用rand(0)的情况,rand(0)是比较稳定的,所以每次执行都可以报错,但是如果使用rand()的话,因为它生成的序列是随机的嘛,所以并不是每次执行都会报错,下面是我的测试结果:

    5.3K20

    写论文3个月,PS实验结果3分钟?Reddit热议:这不是我要的顶会论文

    【新智元导读】你有没有想过,顶会论文也有造假的情况?...这位发帖的博士生注意到,周围有一小群人(称为Group X)为通过会议的同行评审(peer review)而且夸大其研究结果。 这张图则很好的诠释了夸大实验结果的后果: ?...论文设定了一个故事情节(storyline),使得论证的数量远远超过了它应该达到的水平。为了支持这些论证,他们夸大了实验的结果(包括一些被人为操纵的图表、数据等) ,以使它看起来更吸引同行审查。...对于一些图像领域的论文来说,如果有0行代码演示它的功能,那作者就可以「花钱请人把论文实验的照片PS一下,没有人会知道」。...Group X 会特别选择那些评审人员对夸大的结果不那么怀疑的主题和领域来发表论文。 ?

    47020

    为什么我打开一些网站会提示:将此站点作为应用安装,我的网站要怎么样才可以和他一样

    要使您的网站在用户访问时出现“将此站点作为应用安装”的提示,您需要为网站添加一个名为“manifest.json”的文件。这个文件包含了网站的基本信息,如名称、图标等。...以下是一个简单的manifest.json文件示例: { "name": "您的网站名字", "short_name": "简短名字", "description": "网站描述", "...接下来,您需要在网站的HTML文件中的标签内添加以下代码,以引用manifest.json文件: 完成以上步骤后,当用户访问您的网站时,他们的浏览器将显示“将此站点作为应用安装”的提示。...确保HTML文件的标签内正确引用了manifest.json文件。 清除浏览器缓存并刷新网页。有时浏览器会缓存旧的网页内容,导致更新不及时。 使用浏览器的开发者工具检查是否有错误。...如果问题仍然存在,请提供更多关于您的网站的详细信息,例如使用的框架、浏览器类型等。这将有助于我为您提供更具体的解决方案。

    69050

    数据库系统概述——第三章 关系数据库标准语言SQL(知识点复习+练习题)

    2.小朋友,你是否有很多问号,为什么,快考试了你还啥也不会。 3.你们复习的时候,也是学着学着,手机就自动跳到手里了吗? 4.真正的大学生敢于直面崭新的课本。 5.睡也不敢睡,学也不想学。...SELECT * FROM Student; 查询结果计算的值: 例:查全体学生的姓名及其出生年份。...Sname,Sdept,Sage FROM Student WHERE Sage BETWEEN 20 AND 23; 例:查询信息系(IS)、数学系(MA)和计算机科学系(CS)学生的姓名和性别。...升序:ASC;降序:DESC;缺省值为升序 例:查询选修了3号课程的学生的学号及其成绩,查询结果按分数降序排列。...,Sdept FROM Student WHERE Sdept IN (SELECT Sdept FROM Student WHERE Sname=‘ 刘晨 ’); 带有比较运算符的子查询:(当内查询的结果是一个值时

    22910

    ​数据库原理及应用上机(实验三 SQL数据查询)

    这是一个无条件的选择查询,其命令为: SELECT * FROM Student; /*这里的“*”等价于ALL*/ 其结果为Student表中的全部数据。...SELECT Sname FROM Student WHERE Sdept='计算机系' and Sage<20; 3 查询结果排序 例24 查询选修了2号课程的学生的学号(Sno)和成绩(Grade...【例25】 查询全体学生情况,查询结果按所在系的系名(Sdpet)升序排列,同一系中的学生按年龄(Sage)降序排列。 4 集函数的使用 例26 查询学生总人数。...通过本次实验的学习,我不仅掌握了 SQL 查询语句的基本语法和使用方法,还学会了如何优化查询语句,提高查询效率和准确性。 在实验过程中,我遇到了一些问题,如语法错误、数据类型不匹配等等。...通过反复尝试和查找相关资料,我最终解决了这些问题,并对 SQL 查询语句的使用有了更深入的理解和掌握。 总之,本次实验对我的学习和成长非常有益。

    49710

    亲,你有一份 ChatGPT4 的体验机会待查收! 一站式 AI 工具箱 - Poe 介绍

    Dragonfly 是一款创意内容生成器,可以帮助用户创作各种类型的文本,如故事、诗歌、歌词等。 NeevaAI 是一款个性化搜索引擎,可以根据用户的偏好和需求提供最相关和最优质的搜索结果。...架构:Sage、ChatGPT 和 Dragonfly 基于生成式架构,这意味着它们会根据接收到的输入从头开始生成响应。...Dragonfly 是由 IBM 开发的聊天机器人,其特点是可以使用多种形式的对话方式,例如文字聊天、语音聊天和图像聊天等。较擅长提供正确和可信的信息,并且会拒绝不合规的提问。...Dragonfly 还可以根据用户的需要提供精准的回答,支持多语言,适用于多种场景。 三、使用截图 功能很强大,大家自行探索,这里给出我使用的几个典型示例。...Poe 提供一站式的 AI 服务,避免到处注册浪费大量的时间,值得点赞。 希望大家能够真正将 AI 利用起来,真正将 AI 变成生产力。

    1.3K10

    Web应用程序防火墙(WAF)bypass技术讨论(一)

    Web应用程序中发现RCE漏洞的情况还是挺常见的,2017 OWASP Top 10应用程序安全风险”也将“注入”置于第一位置,例如当解释器接收到用户可控的数据作为命令或查询来执行时,很有可能会导致注入风险...但是为什么使用通配符(特别是问号)可以逃避WAF规则集?让我先从Sucuri WAF开始解释。 Sucuri WAF bypass ? 测试WAF规则集的最佳方法是什么?...结果令人恐惧……Sucuri WAF接受了请求,我的应用程序执行了我输入c参数的命令。...此外,使用“问号”而不是命令语法使我能够bypass “OS File Access Attempt”,例如我们的/etc/passwd。...没办法……当你需要执行一个命令来读取文件时,有90%的概率会需要一个“空格”字符或“正斜杠”。 最后的想法 回归静态HTML页面……这是提高Web应用程序安全性的最快方法!

    2.9K40

    100%国产的AI操作系统,现在开源了!还有个AI版的App Store

    金磊 发自 凹非寺 量子位 报道 | 公众号 QbitAI 去年,一款像Windows一样的AI操作系统——Sage AIOS,横空出世。...AI操作系统升级开源,还有个AI版App Store Sage AIOS,是为企业量身打造、定位于底层的AI 操作系统。...这便是AI操作系统Sage AIOS 2.0的核心能力。 但打通了屏障还是不够的,为了支撑企业全面的智能化转型,第四范式还推出了Sage App Store。 ?...…… 而在看完第四范式所发布、开源的众多产品之后,不免心中会产生这样的疑惑: 为什么要这么做?背后是一种什么逻辑?...再例如你每天可能会逛的永辉超市,它旗下的永辉彩食鲜在关键的业务中也决定用AI来进行决策,结果也是非常的明显: 1个采购员可以完成100个采购员的工作,3000人变成能做100倍的生意,最终企业增长不再受制于人力与成本

    47640

    的区别

    均是和NullPointerException有关系,可他们的区别到底是什么呢?为什么别人开发的项目中出现了好多"?",而我读起来却满脸问号。...不过我觉得对于一个刚接触KT(Kotlin)的新手来说,他恐怕需要有汉语八级才能透彻理解这两句话的意思。 先阐述两个概念: "?"加在变量名后,系统在任何情况不会报它的空指针异常。 "!!"...size}") 编译器为什么自动把myList.size()变成了myList!!.size呢,为什么加上的是感叹号不是问号。 这是因为编译器在转化时为了保证代码转化前后的一致性所造成的。...加上去后好像并没有和之前Java代码有什么区别嘛,该null的地方任然会抛出异常。所以大多数情况下都会使用?来检测null,轮不到!!出场。!!...= Room() private fun checkRoom() { // 因为加上了问号,所以可以任意的把room变成空 room = null

    1.1K10

    ctf-web:文件包含漏洞和举例-HCTF2018 WarmUp「建议收藏」

    然后我使用预处理命令将文件进行了一个包含的操作,这样我后面就可以多次调用这个print_f函数了....假如我是黑客,然后我在某个公司开发的c语言程序的被包含文件中,偷偷把被包含的文件中添加一些后门命令,是不是就产生问题了呢?最起码能让你这个程序崩溃不能运行....所以,我们要学会一个最简单的绕过方法–url编码绕过 首先,当我们在百度搜索一些东西的时候,我们会发现我们输入的汉字都变成了一些由百分号开头的奇怪编码....这些编码就是经过浏览器url编码以后得到的结果.但是假如我们直接在网址栏输入编码后的代码,浏览器是不会进行url编码的. 最后服务器那头解码一次,就得到我们输入的结果了....第一次,服务器将编码解码,得到问号编码一次的结果. 第二次解码是由后台脚本解码的.仔细研究一下这段代码的逻辑就明白了.

    53620

    图文并茂解释Kotlin == 和 === 之间的差异

    a = "字符串" var b = a var c = a print(b === c) 那么打印出来的值就是true 有人问了这么一句话:为什么我用Int得到的结果好好像有点不对??...然后群里又有人说,在类型后面加个问号就可以了,就是声明成可选值就是可以达到我们预期的结果 然后我又试了一遍: ? 输入图片说明 很明显,答案还是一样的,为什么呢?明明把值声明成可选值了啊。...又有人说,我把值稍微调大一点,结果就不一样了。 然后我再次试了一遍: ? 输入图片说明 看到这里就觉得好奇怪了,为啥?为什么不加问号两个值地址相等?...integer包装类的话,就是对象了,那么对象与对象进行比较的话,地址是会不一样的,那么为什么在值小的时候相等,值大的时候不相等呢?...这个可能就与JVM的机制有关系了,【据说在JVM里面有一个常量池,如果是这个值存在于这个常量池里,那么jvm会直接拿常量池里的对象进行替换。所以你值小的时候得到的结果是相等的】。

    2K30
    领券