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

【Python】第二章(条件语句和循环语句)

写程序时,常常需要指明两条或更多的执行路径,而在程序执行时,允许选择其中一条路径,或者说当给定条件成立时,则执行其中某语句。在高级语言中,一般都要有条件语句。...python默认的流程     选择流程/分支流程:根据在某一步的判断,有选择的去执行相应的逻辑的一种结构 if—else语句 Python的条件语句是通过一条或者多条语句的结果进行执行(Flash—不成立...,Turn—成立) Python当中的if语句通常用于控制程序的一个执行过程,如下实例: if 判断条件: 执行语句…… else: 执行语句…… 条件判断:判断条件表达式的值是真还是假...,以及number = number + 1的使用 题目二:用while循环打印出9*9的乘法口诀表 row = 1 # 行 while row <= 9: col = 1 # 列...用一段话来讲的话就是:break:代表中断结束的意思,只要是满足条件直接结束本次循环跳出来了,只能用于循环语句当中的!  那么我就用一个代码告诉大家break的使用吧!

81630

你会在浏览器中打断点吗?我会!

有条件的代码行 只在满足限定条件时,在指定地方触发断点 记录点 在不暂停代码运行的情况下向控制台输出日志 DOM 在更改或删除特定 DOM 节点或其子节点时触发断点 XHR 当 XHR URL 包含某个字符串模式时触发断点...是一个在浏览器开发者工具中使用的 JavaScript 方法,用于「监控指定元素上特定类型的事件」。...这个方法通常用于调试和分析事件的触发情况。...日志代码行断点 使用「日志代码行断点」(logpoints)可以在「不暂停执行且不用在代码中添加console.log()调用的情况下」,将消息输出到控制台。...一个带有「两个点的粉色图标」出现在行号列的顶部。 这个示例展示了在第 9 行设置的「日志代码行断点」,将变量i的值输出到控制台。

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

    PHP使用递归算法查找子集获取无限极分类等实操

    image.png 递归函数是我们常用到的一类函数,最基本的特点是在函数或子过程的内部,直接或者间接地调用自己的算法,但必须在调用自身前有条件判断,否则无限调用下去,也就是所谓的死循环 递归在项目中用到比较多的地方是获取商品分类或者其他的分类...按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始,到主干、枝干、叶子,网络上很多无限级的分类,但无非是两种,一种是递归算法,一种是非递归算法 无限级分类是一种分类技巧,例如部门组织,文章分类...(自己),递归的本质是利用空间换时间 项目中需要获取分类或者查询用户邀请人的时候,一般都是直接将所有所有数据查出来,然后调用递归方法去实现逻辑,这样也节省了不少时间,也就是上面所说的空间换时间 这里用我在项目中做的一个查询某一用户的下级作为演示...,表里存的数据一般都是在每一个用户的数据中加上一个inv_id /** * 获取用户ID */ public function actionGetUserId() { $model = new...原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:PHP使用递归算法查找子集获取无限极分类等实操

    1.9K30

    开发人员不得不知的MySQL索引和查询优化

    索引相关 索引基数 基数是数据列所包含的不同值的数量,例如,某个数据列包含值 1、3、7、4、7、3,那么它的基数就是 4。...如果某数据列含有很多不同的年龄,索引会很快地分辨数据行;如果某个数据列用于记录性别(只有“M”和“F”两种值),那么索引的用处就不大;如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。...在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。惯用的百分比界线是“30%”。...如果条件有 or,即使其中有条件带索引也不会使用(这也是为什么建议少使用 or 的原因),如果想使用 or,又想索引有效,只能将 or 条件中的每个列加上索引。...但是有几种情况就不是简单加索引能解决了: 业务代码循环读数据库 考虑这样一个场景,获取用户粉丝列表信息,加入分页是十个,其实像这样的 SQL 是十分简单的,通过连表查询性能也很高。

    78120

    开发人员不得不知的MySQL索引和查询优化

    索引相关 索引基数 基数是数据列所包含的不同值的数量,例如,某个数据列包含值 1、3、7、4、7、3,那么它的基数就是 4。...如果某数据列含有很多不同的年龄,索引会很快地分辨数据行;如果某个数据列用于记录性别(只有“M”和“F”两种值),那么索引的用处就不大;如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。...在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。惯用的百分比界线是“30%”。...如果条件有 or,即使其中有条件带索引也不会使用(这也是为什么建议少使用 or 的原因),如果想使用 or,又想索引有效,只能将 or 条件中的每个列加上索引。...但是有几种情况就不是简单加索引能解决了: 业务代码循环读数据库 考虑这样一个场景,获取用户粉丝列表信息,加入分页是十个,其实像这样的 SQL 是十分简单的,通过连表查询性能也很高。

    64710

    开发人员不得不知的MySQL索引和查询优化

    索引相关 索引基数 基数是数据列所包含的不同值的数量,例如,某个数据列包含值 1、3、7、4、7、3,那么它的基数就是 4。...如果某数据列含有很多不同的年龄,索引会很快地分辨数据行;如果某个数据列用于记录性别(只有“M”和“F”两种值),那么索引的用处就不大;如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。...在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。惯用的百分比界线是“30%”。...如果条件有 or,即使其中有条件带索引也不会使用(这也是为什么建议少使用 or 的原因),如果想使用 or,又想索引有效,只能将 or 条件中的每个列加上索引。...但是有几种情况就不是简单加索引能解决了: 业务代码循环读数据库 考虑这样一个场景,获取用户粉丝列表信息,加入分页是十个,其实像这样的 SQL 是十分简单的,通过连表查询性能也很高。

    84520

    MySQL索引和查询优化

    索引相关 索引基数 基数是数据列所包含的不同值的数量,例如,某个数据列包含值 1、3、7、4、7、3,那么它的基数就是 4。...如果某数据列含有很多不同的年龄,索引会很快地分辨数据行;如果某个数据列用于记录性别(只有“M”和“F”两种值),那么索引的用处就不大;如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。...在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。惯用的百分比界线是“30%”。...如果条件有 or,即使其中有条件带索引也不会使用(这也是为什么建议少使用 or 的原因),如果想使用 or,又想索引有效,只能将 or 条件中的每个列加上索引。...但是有几种情况就不是简单加索引能解决了: 业务代码循环读数据库 考虑这样一个场景,获取用户粉丝列表信息,加入分页是十个,其实像这样的 SQL 是十分简单的,通过连表查询性能也很高。

    1.3K118

    mysql基本知识点梳理和查询优化

    如果某数据列含有很多不同的年龄,索引会很快地分辨数据行;如果某个数据列用于记录性别(只有“M”和“F”两种值),那么索引的用处就不大;如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。...,之前只能新建一个ROUND (t.logicdb_id)列然后去维护; 如果条件有or,即使其中有条件带索引也不会使用(这也是为什么建议少使用or的原因),如果想使用or,又想索引有效,只能将or条件中的每个列加上索引...):本来index仅仅是data access的一种访问模式,存数引擎通过索引回表获取的数据会传递到MySQL Server层进行where条件过滤。...where:WHERE子句的值总是false,不能用来获取任何元组; select tables optimized away:在没有GROUP BY子句的情况下基于索引优化MIN/MAX操作或者对于...本质上也是一种索引访问,它返回所有匹配某个单独值的行,然而它可能会找到多个符合条件的行,所以它应该属于查找和扫描的混合体; range:只检索给定范围的行,使用一个索引来选择行。

    60510

    MySQL基本知识点梳理和查询优化

    如果某个数据列用于记录性别(只有"M"和"F"两种值),那么索引的用处就不大。如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。...)为索引,mysql8.0开始支持函数索引,5.7可以通过虚拟列的方式来支持,之前只能新建一个ROUND(t.logicdb_id)列然后去维护 4、如果条件有or,即使其中有条件带索引也不会使用(这也是为什么建议少使用...):本来index仅仅是data access的一种访问模式,存数引擎通过索引回表获取的数据会传递到MySQL server层进行where条件过滤,5.6版本开始当ICP打开时,如果部分where条件能使用索引的字段...4、impossible where: WHERE子句的值总是false,不能用来获取任何元组 5、select tables optimized away: 在没有GROUP BY子句的情况下基于索引优化...本质上也是一种索引访问,它返回所有匹配 某个单独值的行,然而它可能会找到多个符合条件的行,所以它应该属于查找和扫描的混合体 range:只检索给定范围的行,使用一个索引来选择行。

    10510

    MySQL DBA基本知识点梳理和查询优化

    如果某个数据列用于记录性别(只有"M"和"F"两种值),那么索引的用处就不大。如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。...)为索引,mysql8.0开始支持函数索引,5.7可以通过虚拟列的方式来支持,之前只能新建一个ROUND(t.logicdb_id)列然后去维护 如果条件有or,即使其中有条件带索引也不会使用(这也是为什么建议少使用...的一种访问模式,存数引擎通过索引回表获取的数据会传递到MySQL server层进行where条件过滤,5.6版本开始当ICP打开时,如果部分where条件能使用索引的字段,MySQL server会把这部分下推到引擎层...6. impossible where: WHERE子句的值总是false,不能用来获取任何元组 7. select tables optimized away: 在没有GROUP BY子句的情况下基于索引优化...本质上也是一种索引访问,它返回所有匹配 某个单独值的行,然而它可能会找到多个符合条件的行,所以它应该属于查找和扫描的混合体 range:只检索给定范围的行,使用一个索引来选择行。

    87010

    这几个方法颠覆你对Pandas缓慢的观念!

    其次,它使用不透明对象范围(0,len(df))循环,然后在应用apply_tariff()之后,它必须将结果附加到用于创建新DataFrame列的列表中。...在这种情况下,所花费的时间大约是.iterrows方法的一半。 但是,这还不是“非常快”。一个原因是.apply()将在内部尝试循环遍历Cython迭代器。...▍矢量化操作:使用.isin()选择数据 什么是矢量化操作?如果你不基于一些条件,而是可以在一行代码中将所有电力消耗数据应用于该价格(df ['energy_kwh'] * 28),类似这种。...这与我们上面的循环操作相比如何?首先,你可能会注意到不再需要apply_tariff(),因为所有条件逻辑都应用于行的选择。因此,你必须编写的代码行和调用的Python代码会大大减少。...Pandas有一个内置的解决方案,它使用 HDF5,这是一种专门用于存储表格数据阵列的高性能存储格式。

    2.9K20

    这几个方法会颠覆你的看法

    其次,它使用不透明对象范围(0,len(df))循环,然后在应用apply_tariff()之后,它必须将结果附加到用于创建新DataFrame列的列表中。...在这种情况下,所花费的时间大约是.iterrows方法的一半。 但是,这还不是“非常快”。一个原因是.apply()将在内部尝试循环遍历Cython迭代器。...▍矢量化操作:使用.isin()选择数据 什么是矢量化操作?如果你不基于一些条件,而是可以在一行代码中将所有电力消耗数据应用于该价格(df ['energy_kwh'] * 28),类似这种。...这与我们上面的循环操作相比如何?首先,你可能会注意到不再需要apply_tariff(),因为所有条件逻辑都应用于行的选择。因此,你必须编写的代码行和调用的Python代码会大大减少。...Pandas有一个内置的解决方案,它使用 HDF5,这是一种专门用于存储表格数据阵列的高性能存储格式。

    3.5K10

    mysql基本知识点梳理和查询优化

    如果某个数据列用于记录性别(只有"M"和"F"两种值),那么索引的用处就不大。如果值出现的几率几乎相等,那么无论搜索哪个值都可能得到一半的数据行。...在这些情况下,最好根本不要使用索引,因为查询优化器发现某个值出现在表的数据行中的百分比很高的时候,它一般会忽略索引,进行全表扫描。惯用的百分比界线是"30%"。...)为索引,mysql8.0开始支持函数索引,5.7可以通过虚拟列的方式来支持,之前只能新建一个ROUND(t.logicdb_id)列然后去维护 如果条件有or,即使其中有条件带索引也不会使用(这也是为什么建议少使用...6、impossible where: WHERE子句的值总是false,不能用来获取任何元组 7、select tables optimized away: 在没有GROUP BY子句的情况下基于索引优化...本质上也是一种索引访问,它返回所有匹配 某个单独值的行,然而它可能会找到多个符合条件的行,所以它应该属于查找和扫描的混合体 range:只检索给定范围的行,使用一个索引来选择行。

    64130

    黑盒测试的测试方法有哪些_黑盒测试包含哪些测试内容

    选取略小于最小值的无效测试数据(或者略大于最大值的无效测试数据)。 (以蓝点表示测试用例) 小结:边界值测试是一种最基本的黑盒测试方法,它是“等价类划分”这种测试方法的良好补充。...边界值测试对布尔型无效(因为布尔型不是“true”就是“false”,不存在边界值的概念) 边界值测试并非黑盒测试独有,它也可以应用在白盒测试(比如数组边界的测试、对循环次数边界的测试……) ———...1个等价类, 在考虑“>”号误写成“的情况下,这两个等价集中的数据都是等价的,比如0~10这个等价类中,使用0或使用10来进行测试都能发现缺陷。...,里面的数据并不等价,比如误写成x>1的情况下,使用1做测试和使用2做测试揭示缺陷是不同的,使用1做测试发现不了缺陷,但使用2测试就能发现缺陷。...可从第1列条件项开始,逐列向右填满。如第1列是: Y Y Y ,第二列是: Y Y N 等等。 •④填入动作顶。这样便得到形如图的初始判定表: 条件桩:列出了问题的所有条件。

    1.7K40

    一文打通CAS

    重量级锁,这里的排他时间要短很多,所以在多线程情况下性能会比较好。...再次强调,由于CAS是一种系统原语,原语属于操作系统用语范畴,是由若干条指令组成的,用于完成某个功能的一个过程,并且原语的执行必须是连续的,在执行过程中不允许被中断,也就是说CAS是一条CPU的原子指令...参数:o – 用于更新字段/元素的对象/数组 偏移 – 字段/元素偏移 增量 – 要添加的值 返回:上一个值 CAS是靠硬件实现的从而在硬件层面提升效率,最底层还是交给硬件来保证原子性和可见性实现方式是基于硬件平台的汇编指令...,在intel的CPU中(X86机器上),使用的是汇编指令cmpxchg指令。...是指尝试获取锁的线程不会立即阻塞,而是采用循环的方式去尝试获取锁,当线程发现锁被占用时,会不断循环判断锁的状态,直到获取。

    24930

    Excel VBA编程教程(基础一)

    End If Next i End Sub 以上代码运行后,在 A2:A10 单元格区域,依次判断每一个单元格是否为空,如果是空,则用上一个单元格的值填充。...在上一个例子的基础上,这次对不及格的学生,在C列填入不及格。...Next循环可以按指定次数,循环执行一段代码。For 循环使用一个数字变量,从初始值开始,每循环一次,变量值增加或减小,直到变量的值等于指定的结束值时,循环结束。 For ......Next 循环语法如下: For [变量] = [初始值] To [结束值] Step [步长] '这里是循环执行的语句 Next 其中: [变量] 是一个数字类型变量,可在循环执行的语句里使用...这里为了演示使用了 Do While 循环,实际情况下,这种求和问题,使用 For 循环更简洁。

    12.5K22

    MySQL之优化SELECT语句

    在第二个查询中,我们使用正确的数据类型(整数)来比较,避免了不必要的转换。 3. 范围优化 范围访问方法是MySQL优化器用于检索包含一个或若干个索引值的时间间隔内表行的子集的一种访问方法。...这种优化方法可以用于选择连续范围内的索引值所对应的行,从而避免全表扫描,提高查询效率。...4.跳过扫描范围访问方法: 在某些情况下,MySQL优化器可以使用跳过扫描的范围访问方法,以更快地跳过一些不符合条件的索引值,从而减少扫描的范围,提高查询性能。...这个优化的目标是替代MySQL早期版本中使用的块嵌套循环算法(Block Nested-Loop Join),从而提高查询性能。 哈希连接是一种连接算法,用于在两个数据集之间执行连接操作。...对于NDB群集,此优化可以消除在群集的数据节点和发出查询的MySQL服务器之间通过网络发送不匹配的行的需求,并且可以将查询的使用速度提高5到10倍(在某些情况下)。

    13910

    你竟然是这样的区块链!

    我们使用被称为sha-256,这一常用的加密散列值算法,来生成一个256字节的标记,这个标记里包含了散列函数中其它各个区块的属性。...我们需要取出最后一个区块,我们可以用最后几个区块来找到这个区块里的索引和散列值。 我们还能给它加上一个时间戳,从而得知其生成时间。...我们将写入硬代码,在区块自身的函数中提前找到自身的属性,并用其构建我们的区块链,将其储存在内存条中。...给出一个新区块和上一个区块,或者说是区块链中最后一个区块,我们首先可以检查下区块之间,索引的排序是否正确,随后还能检查,前一个散列值属性是否合乎上一个已经被认证了的区块散列值。...我们则需在可能存在不一致的情况下,选择使用哪个区块链,以防产生冲突,假如有两个节点生成了,相同数目的区块。我们的解决方法是在其中选择,有最多区块的那个区块链。

    51530

    前端面试指南之React篇(二)

    否则会导致死循环react性能优化是在哪个生命周期函数中在shouldComponentUpdate 这个方法中,这个方法主要用来判断是否需要调用render方法重绘DOM因为DOM的描绘非常消耗性能,...如下所示, username没有存储在DOM元素内,而是存储在组件的状态中。每次要更新 username时,就要调用 setState更新状态;每次要获取 username的值,就要获取组件状态值。...表单如何呈现由表单元素自身决定。如下所示,表单的值并没有存储在组件的状态中,而是存储在表单元素中,当要修改表单数据时,直接输入表单即可。有时也可以获取元素,再手动修改它的值。...当要获取表单数据时,要首先获取表单元素,然后通过表单元素获取元素的值。注意:为了方便在组件中获取表单元素,通常为元素设置ref属性,在组件内部通过refs属性获取对应的DOM元素。...DOM元素,并获取其值,但是 React建议使用约束性组件。

    2.9K120

    前端day09-JS学习笔记

    break作用:结束该switch语句,所以一般情况下要加上,如果不加上则会发生穿透 穿透:从上一个case代码快执行到下一个case代码快 break关键字的作用就是防止穿透 3.default语句可以写在任何地方...1.断点调试是一种非常经典的调试方法,在其他编程语言中也经常使用这种调试方法,只不过不同的语言使用的工具不同而已 前端开发中的js代码主要使用谷歌浏览器的开发者工具进行断点调试 2.代码调试的能力非常重要...好处:循环变量的声明与循环变量自增在一个小括号中,可以更好的避免死循环 注意点:原则上语句1,语句2,语句3可以是任意代码,但是不建议乱写,因为会导致死循环 语句1:通常是定义循环变量 语句2:条件表达式...循环:适合循环次数不固定 4.do-while循环:适合循环次数不固定,但是循环体代码至少要执行一次 1.5-break与continue关键字 1.break:结束整个语句 break既可以用于循环结构也可以用于...switch分支结构 2.continue:结束本次循环体,进入下一次循环判断 continue只能用于循环结构语句 1.6-循环次数不固定02:穷举 穷举:从1遍历到无穷大,找出符合条件的数 最后附上一张思维导图

    88100
    领券