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

Python基础(八):循环深入讲解

,即前两个数字的相加结果 + 下⼀个数字( 前⼀个数字 + 1)。...:说3遍“媳妇儿, 错了”,这个程序是不是循环即可?...while 条件: print('媳妇儿, 错了')print('刷晚饭的碗')但如果女朋友还是生气,把这套惩罚要连续3天都执行,有如何书写程序?...i = 1while i <= 5: print('媳妇⼉,错了') i += 1 print('媳妇⼉原谅了...') 思考: 这个print是不是没有循环也能执行?...道歉到第三遍的时候,媳妇埋怨这⼀遍说的不真诚,是不是就是要退出循环了?这个退出有两种可能性:更生气,不打算原谅,也不需要道歉了,程序如何书写?只⼀遍不真诚,可以忍受,继续下⼀遍道歉,程序如何书写?

1.1K132

循环

,即前两个数字的相加结果 + 下一个数字( 前一个数字 + 1)。...情况二:如果吃的过程中,吃到第三个吃出一个大虫子...,是不是这个苹果就不吃了,开始吃第四个苹果,这里就是continue控制循环流程,即==退出当前一次循环继而执行下一次循环代码==。...,惩罚:说3遍“媳妇儿, 错了”,这个程序是不是循环即可?...while 条件: print('媳妇儿, 错了') print('刷晚饭的碗') 但如果女朋友还是生气,把这套惩罚要连续3天都执行,有如何书写程序?...道歉到第三遍的时候,媳妇埋怨这一遍说的不真诚,是不是就是要退出循环了?这个退出有两种可能性: 更生气,不打算原谅,也不需要道歉了,程序如何书写?

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

Java漫谈6

在聊数组之前先聊个别的,如果想在Java中实现一个 数字-月份 转换,那我该怎么做呢?就比如数字1代表了一月份,数字2代表了二月份…数字12代表了十二月份。...当然,现在手里的工具只有8大基本数据类型,如何构造类,流程控制语句。那么最先能想到的,也算是目前唯一能想到的就是用if控制语句来做逐个输出。...如果用if来写的话,示例如下: 我们再来回顾一下这整个过程,输入一个值i,判断它是不是等于1,如果是的话就输出,不是的话就判断它是不是等于2,如果是的话,再输出,不是的话再判断是不是等于3,如果是的话…...那既然它重复了,那能不能用循环来代替这样的重复,也就是1-12个月。...所以我可以把上面的方法改成for循环的,如下: 似乎这是一条路,但这样一来,结果就变成了 1月份,2月份,……,12月份, 而这样一来,与之前所说的纯数字月份就不一样了。

58590

史上最速解决:Power BI由按列排序导致的循环依赖

结果发现: 检测到循环依赖关系!...如果是从数据源中直接获取的这个表,那么可以在pq中直接将数字提取出来作为单独一列,这样加载到报告中它们就是相互独立的两列,两者之间并没有依赖关系,也就不会产生循环依赖: 自定义= Table.AddColumn...(更改的类型1, "自定义", each Text.Select([周数],{"0".."9"})) 但是这样做有个问题,比如我的数据表很大,在里面添加一列是会无端地加大数据量的,影响刷新速度,这不是想要的...而且,一般情况下,都是会将周数抽离出来作为单独的一个维度表,这样也可以对其他表进行关联计算: 那这个表是无法在pq里进行处理的。 此时我们应该如何做呢? 办法其实很简单。...解决问题 我们仍然对这个表添加一列[周数2]: 刚才我们说过,[周数]对[周数2]按列排序是会导致循环依赖的。但是如果再根据[周数]添加一列新列,它和[周数2]是否还存在循环依赖关系呢?

3.5K10

Java漫谈6

在聊数组之前先聊个别的,如果想在Java中实现一个 数字-月份 转换,那我该怎么做呢?就比如数字1代表了一月份,数字2代表了二月份…数字12代表了十二月份。...当然,现在手里的工具只有8大基本数据类型,如何构造类,流程控制语句。那么最先能想到的,也算是目前唯一能想到的就是用if控制语句来做逐个输出。...,不是的话就判断它是不是等于2,如果是的话,再输出,不是的话再判断是不是等于3,如果是的话……等等,它的判断语句已经出现了重复,而且这种重复只需要同时改变输入的值和其中的一个判断因子,也就是说整个判断的框架...那既然它重复了,那能不能用循环来代替这样的重复,也就是1-12个月。...如果我们能把月份的具体名称放到一间“教室”里面,并有序的排上坐,也就是点名是说一号桌的时候,一月份会跳出来说声“到,是一月份”,那么这样一来问题就会被解决。

591110

抽丝剥茧C语言(中阶)分支与循环练习

1 } else { printf("NO");//这里是结果2.如果第一个结果不成立就会执行这个代码 } return 0; } 各位老铁可以复制到自己的编译器测试一下,试过了,没问题...输出1-100之间的奇数 上一道题,已经知道如何判断奇数了,这道题也很简单,首先思路是生成1到100的数字,然后每一个数字进行判断,是就打印,不是就不打印。...因为ret在第二层循环算的是1到变量 j 的阶乘,但是,出来之后,ret并不是1,也就是说再次进入时候,ret是上次 j 的阶乘,我们从新进入第二层for循环的时候ret不是1,也就是说算的已经不是 j...猜数字游戏 大家应该熟悉了我们上面的折半查找法,我们可以利用这个算法来玩个游戏。 我们来猜1到100数字如何?...,如果按快了都可能数值重复,起点的数是根据时间戳,过了几秒就重新定制起点,肯定数值差不多。

30800

太菜了吧》(19)巩固开始,数字1、2、3、4能够组成多少个 3 位数的不同的排列

小C:我们先分析题目,先问你1、2、3 三个数,能够怎么组成哪些不重复的数?你试着列举一下。 小媛:123、321、213、231、132? 小C:是不是每个位置,这三个数都需要显示一遍?...,是不是有 3 个位置,这一次循环可以当做百位的数字吗?...…等一下,懂了,你意思说这就是可以得出百位了,这个时候如果是第一次循环百位是 1,那么十位就可以得出了 1、2、3,例如 11*、12*、13这样,然后第二次就是 21、22*、23*。...小媛:不懂啊,又懵了。 小C:很简单呀,最里面的循环此时不是已经知道了当前外层循环所有变量的值了吗?只要判断这些数字不是互不相等不就好了吗? 小媛:好像是这么回事,怎么写呢?...那怎么保证结果重复呢? 小C:你傻嘛,的是依次增长的变量,肯定不重复呀。 小媛:ヾ(≧O≦)〃嗷~哈哈哈,懂了,因为所有位置的数都在依次网上增长,就等于从1开始遍历到10,肯定没有重复

32220

【Python】循环遍历傻傻分不清

当直到我们完成这个工程或者是项目的时候,此时,我们就可以脱离这个项目当中,那么这就叫做是循环。 在程序当中如果需要重复执行某段代码的时候,就可以使用 while 语句。...例如↓ print("*") print("*") 此时的运行结果是这样的↓ * * 而不是这样:** 从这里就明确的说明了print() 会给我们自动换行。那假设不想让它换行呢。...条件1成立时执行语句 while 条件2: 条件2成立时执行语句 条件2成立时执行语句 代码示例如下↓ 我们先用单个循环来试下如何打印下面...提示:在实际上的开发当中,除非能够确认元组当中的数据类型,不然针对元组的循环遍历的需求要求并不是很多。 那么有小伙伴可能会问为什么元组对于for语句的要求不是很多呢。...如需循环一组代码指定的次数,我们可以使用 range() 函数, range() 函数返回一个数字序列,默认情况下从 0 开始,并递增 1(默认地),并以指定的数字结束。

9010

OMG,12 个精致的 Java 字符串操作小技巧,学它

10、如何从字符串中找出第一个不重复的字符? 来,上个例子来理解一下这道题。比如说字符串“沉默王沉沉默二”,第一个不重复的字符是“王”,对吧?因为“沉”重复了,“默”重复了。...2)声明一个 List,把重复的字符放进去。 3)外层的 for 循环,从第一个字符开始,如果已经在 List 中,继续下一轮。...4)嵌套的 for 循环,从第一个字符的下一个字符(j = i + 1)开始遍历,如果找到和之前字符重复的,就加入到 List 中,跳出内层的循环如果找到最后(j == chars.length -...11、如何检查字符串中只包含数字? 有一种很傻的解法,就是用 Long.parseLong(string) 对字符串强转,如果转不成整形,那肯定不是只包含数字,对吧?...:" + string); } } } 输出结果如下所示: 只包含数字:123 12、如何实现字符串的深度拷贝?

39730

Python3 判断质数以及计算一个数字的质因数

Python3 初学实践案例(11)判断质数以及计算一个数字的质因数 昨天晚上看到群里有人问如何计算质因数,想了一下,实现了这个计算质因数的脚本。...如果傻呢,就从1循环到这个数字来进行全量循环计算。聪明一点就不需要了,只需要循环到这个数字的平方根的数字即可。 之前在 js 中就是这么干的。...上面的代码是从网上找到的,仔细看了一下,这段代码真的是绝顶聪明。因为循环到平方根,和循环数字用乘法递增,显然后者的运算量要小很多。...但是用户输入的不一定是一个数字,所以需要进行校验,如果不正确的话,就必须重新输入。 一开始是用的递归的方式来进行处理,但是发现这样如果 return 处理不好就会很麻烦。...最后,看下执行结果以及运算效率: ? 上图是几个很小的数字的运算的结果,顺便演示了传参和后输入数字结果。 ? 从结果我们可以看到这个质数是非常大的,但是运算还是很快就结束了。

2.5K30

Python3 初学实践案例(11)判断质数以及计算一个数字的质因数

Python3 初学实践案例(11)判断质数以及计算一个数字的质因数 昨天晚上看到群里有人问如何计算质因数,想了一下,实现了这个计算质因数的脚本。...如果傻呢,就从1循环到这个数字来进行全量循环计算。聪明一点就不需要了,只需要循环到这个数字的平方根的数字即可。 之前在 js 中就是这么干的。...上面的代码是从网上找到的,仔细看了一下,这段代码真的是绝顶聪明。因为循环到平方根,和循环数字用乘法递增,显然后者的运算量要小很多。...但是用户输入的不一定是一个数字,所以需要进行校验,如果不正确的话,就必须重新输入。 一开始是用的递归的方式来进行处理,但是发现这样如果 return 处理不好就会很麻烦。...最后,看下执行结果以及运算效率: 上图是几个很小的数字的运算的结果,顺便演示了传参和后输入数字结果。 从结果我们可以看到这个质数是非常大的,但是运算还是很快就结束了。

42720

Python 循环的本质就是一段代码懒得重复

五、Python 循环的本质就是一段代码懒得重复写 程序中的循环概念非常容易理解,一段相似的代码不想重复去写,然后让程序去完成这个操作就是循环。...例如,当循环一个列表的时候,如果出现一个大于 3 的数字,那终止循环,代码如下: for i in range(1,10): if i > 3 : print("出现大于3的数字...,终止循环") break 5.3.3 continue 继续循环 continue 与 break 类似,都是当满足某个条件时,要做的事情,只不过程序碰到 continue 关键字,不是终止循环...i>3 的时候,也就是列表中数字大于 3,直接进入下一次循环,这样导致一个事情就是在循环中发现比 3 大的数字之后,print 就不会执行了,所以运行代码会发现下述结果,只显示小于等于 3 的数字。...综合刚学习的内容,现在你知道如何对 for else 进行配对了吗?

59830

回溯算法:求组合总和(二)

candidates 中的数字可以无限制重复被选取。 说明: 所有数字(包括 target)都是正整数。 解集不能包含重复的组合。...此外还定义了int型的sum变量来统计单一结果path里的总和,其实这个sum也可以不用,用target做相应的减法就可以了,最后如何target==0就说明找到符合的结果了,但为了代码逻辑清晰,依然用了...如果是多个集合取组合,各个集合之间相互不影响,那么就不用startIndex,例如:回溯算法:电话号码的字母组合 「注意以上只是说求组合的情况,如果是排列问题,又是另一套分析的套路,后面再讲解排列的时候就重点介绍...其实如果已经知道下一层的sum会大于target,就没有必要进入下一层递归了。 那么可以在for循环的搜索范围上做做文章了。...「对总集合排序之后,如果下一层的sum(就是本层的 sum + candidates[i])已经大于target,就可以结束本轮for循环的遍历」。

47310

Python中while循环详细讲解、循环的作用和分类

一、循环的作用: 作用:让代码更高效的重复执行 下面用一个问题来说明循环的作用: 问题思考:假如你有个女朋友,有一天你们吵架,你媳妇让你对她说100遍:“媳妇,错了”,你媳妇才会原谅你,这个时候程序员会怎么做...答: 重复执行100次一样的代码,利用程序中的循环即可做到 二、循环的分类: 在python中,循环分为while和for两种,最终实现的效果相同。...快速体验语法: 需求:重复执行10次 print(‘媳妇,错了’)    分析: 初始值是1次,终点是10次,重复做的事情输出“媳妇,错了” #  需求: 重复打印10次,媳妇,错了 --- 1...while都会用到计数器,主要看你的需求了,这里需求有个打印10次,所以要计数器作为判断条件 打印结果如下图: 图片1.png 四、计数器书写习惯 在工作中,计数器第一次取值一般不取1,取得是数字0。...注意怎么区分是循环体的代码就看首行是不是被缩进了4格,最后一句代码print(‘结束了’)是顶格的,随意打印了5遍“媳妇,错了”后在执行到它。

1.6K20

一位未曾涉足算法的初学者收获

所以像算法这种基础知识自然就不是很熟悉。 那我为何会接触算法呢?​...如果仔细观察一下,会发现这其中进行了非常多的重复计算,我们不妨将设置一个 res 变量来输出一下结果 function fib(n) { if (n <= 1) { return n }...而在算法中要避免的就是重复计算,这能够高效的节省执行时间,因此不妨定义一个缓存变量,在递归时将缓存变量也传递进去,如果缓存变量中存在则说明已计算过,直接返回结果即可。...== j) { return [i, j] } } } } 当然针对上述 for 循环优化部分,比如说让 j = i + 1 ,这样就可以有效避免重复数字循环以及...由于用到了两次循环,很显然时间复杂度为 O(n²),并不高效。 哈希表​ 我们不妨将每个数字通过 hash 表缓存起来,将值 nums[i] 作为 key,将 i 作为 value。

15430

这些常见的 PHP 代码性能对比你必须知道

但对于其中一些问题,遇到了特别提高性能的替代解决方案。 在本文中,想介绍其中的一些替代方案。如果你正在寻找在生产中进一步减少执行时间的可能性,这将非常有用。...删除重复项 你有一个包含重复项的大型数组,并且希望删除它们,以便只有一个具有唯一值的数组。...常规 array_unique($array); 其他方式 array_keys(array_flip($array)); 性能 创建了一个 400 万的数组,其中有 300 万个重复项,这是最好的优化结果...字母数字字符测试 如果你有一个字符串,并且希望测试它是否只包含字母数字字符。...额外的性能改进 以下是在编码约定中搜集的一些附加方法,发现它们可以略微提高性能 (如果适用): 更喜欢 JSON 而不是 XML 在之前声明变量,而不是循环的每次迭代中声明变量 避免循环头部中的函数调用

1.5K20

每天 3 分钟,小闫带你学 Python(八)

其实使用循环语句,很简单: i = 0 while i < 10000: print("媳妇儿,错了") i += 1 它真的可以输出一万遍,不信可以试一下,如果电脑性能不是很好劝你放弃...总结 1.只要是重复做一件事情,就可以使用循环。 2.循环是为了提高代码的重复利用率,节省工作量。...一个 demo 给大家打个样 ~ i = 0 while i < 5: print("第 %d 遍:喜欢你" % i) i += 1 我们看一下效果如何?...需要考虑到循环操作,也要考虑到换行符的使用。 2.然后是式子的规律,每一行的式子第2个数字为行数,第1个数字为 1,2,3... 是第几行就排列到几。...注意取不到 b,只能取到 b 的前一个数字。 range(5) 代表的是从 0 到 4 ,括号内省略了 0。 range(a,b)如果省略 a,默认从 0 开始。

62220

求最大连续子集

第三层循环不过是将第二层的内容进行逐次累加, 也就是第二层循环的第 n 次累加结果, 正好是第 n+1次的倒数第二条结果. 如果将这样的结果进行向后传递, 就可以将第三层循环减掉了....因为这个方法不是咱想出来的, 咱就不分析他是如何出来的了, 简单看一看她为什么能够求出结果值. 当遍历到$i 的位置时, maxHere 保存了 i-1 的最大和....若加上当前值为正数, 则可以继续往后加, 因为正数相加必然令数字变大. 但如果相加结果为负数, 则将其重置为0 , 因为负数相加必然令数字变小. 所以 第三行 取相加结果与0的较大值....当时是如何解决这种情况呢? 大量做题. 俗话说, 熟能生巧, 熟读唐诗三百首, 不会作诗也会吟. 说的都是重复的力量....虽然英语是个渣渣, 但是 public cost class 这些词, 一看就会, 为什么? 每天都在写, 想不会都难啊. 说下来, 如何解决上面的问题呢? 简单说, 多做题.

1.3K10

如何在交叉验证中使用SHAP?

特别是在数据集较小的情况下,结果可能会因数据如何拆分而大为不同。这就是为什么经常建议重复100次交叉验证以对结果有信心的原因。 为了解决这些缺点,决定编写一些代码来实现它。...假设您熟悉SHAP的一般用途和其实现代码的外观,因此不会花太长时间进行说明。 我会在代码中添加注释,因此您可以检查这些注释,如果您仍然不确定,那么请查看介绍中的链接或库的文档。...即,如果数据被分割得不同,结果如何改变。 幸运的是,我们可以在下面编写代码来解决这个问题。 2.3. 重复交叉验证 使用交叉验证可以大大提高工作的鲁棒性,尤其是在数据集较小的情况下。...虽然它在这个数据集上表现得很好,但在其他情况下可能不是这样。此外,为什么我们不应该尝试最大化我们的结果呢?...通过多次重复(嵌套)交叉验证等程序,您可以增加结果的稳健性,并更好地评估如果基础数据也发生变化,结果可能会如何变化。

10110

算法入门

下一个是 214 ,新的最小数,250 不是,384, 299, 223, 312 都不是,现在扫完了所有数字,214 是最小的。...现在重复同样的过程,这次不从最上面开始,从第 2 个数开始,先看到 239,我们当作是 "最小数",扫描剩下的部分,发现 223 最小,所以把它和第 2 位交换,重复这个过程,从第 3 位数字开始,让...239 和 307 互换位置,重复直到最后一个数字。...03 算法复杂度 这个函数可以排序8个, 80个或8千万个数字,函数写好了就可以重复使用。...这意味着,大致来说,如果要排 N 个东西,要循环 N 次,每次循环中再循环 N 次,共 N*N, 或 N。算法的输入大小和运行步骤之间的关系叫算法的复杂度,表示运行速度的量级。

38620
领券