for循环笔记-while-2
- 格式:docx
- 大小:14.24 KB
- 文档页数:1
python学习之循环结构(for、while)
在python中构造循环结构有两种做法,⼀种时for-in循环、⼀种时while循环
for-in循环
如果明确的知道循环执⾏的次数或者要对⼀个容器进⾏迭代,那么推荐使⽤for-in循环
例⼦:
上⾯代码中的range(101)可以⽤来构造⼀个从0到100的取值范围,这样就可以构造出⼀个整数的序列并⽤于循环中、也可以通过在循环中使⽤分⽀结构的⽅式来实现相同的功能
例⼦:
while循环
构造不知道具体循环次数的循环结构,推荐使⽤while循环,while循环通过⼀个能够产⽣或转换出bool值的表达式来控制循环、表达式的值为True、循环继续,表达式为Flase、循环结束。
例⼦:
上述代码中使⽤了break关键字来终⽌循环,break语句意思为结束循环;continue语句意思为结束当前循环进⼊下⼀个循环
例⼦:
循环和分结构⼀样,也是有嵌套使⽤的,也就是说在循环中还可以构造循环结构
例⼦:
输出乘法⼝诀(九九乘法表
学习总结,仅供参考,如有疑义,欢迎找茬......。
C#学习笔记(五):while循环和for循环while循环while循环和for循环,可以相互替换,范围和效能⼀样,理解事物的逻辑不⼀样while循环⽤于条件不确定的逻辑for循环⽤于计算次数的逻辑for循环快捷写法,按两下TABi++:for+按两下TABi--:forr+按两下TABfor循环:锁死次数using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace w2d1_for{class Program{static void Main(string[] args){#region for循环//for循环经常⽤来做固定次数,或者是在固定区间的循环//如:写⼀百遍“我要学好C#”//while循环经常来做,某⼀条件或者多条件达成则终⽌的循环//如:直到密码正确才允许登录//for (第⼀表达式(初始表达式);第⼆表达式(条件表达式);第三表达式(增量表达式))//{//循环体//}//在for循环开始之初,会执⾏初始表达式⼀次//在循环体开始前会执⾏条件表达式//如果条件表达式为真,则执⾏循环体完成后,执⾏增量表达式,再问条件表达式,以此循环//否则结束循环//正增长循环,快捷键:for +两下TAB;for (int i = 5; i <= 500; i++)//循环次数500-5+1=496{}//负增长循环,快捷键:forr + 两下TAB;for (int i = 500 - 1; i >= 0; i--){}#endregion#region for循环练习//找出100内所有素数。
素数/质数:只能被1和这个数字本⾝整除的数字,1不是质数,最⼩的质数是2。
//如果你遇到⼀个复杂,要抽象其⼦问题//⼦问题:某⼀个数是不是质数for (int j = 2; j <= 100; j++){int num = j;for (int i = 2; i <= num; i++){if (i == num){Console.WriteLine("{0}是⼀个质数", i);break;}}}}//求100-999之间的⽔仙花数,例如:153 = 1*1*1+5*5*5+3*3*3//取某⼀位等于这个数余这个位的上⼀位,如取百位,余千,然后与本位相除,如百位,除⼀百 //abc = a * a * a + b * b * b + c * c * c;for (int i = 100; i <= 999; i++){int a = (i % 1000) / 100;int b = (i % 100) / 10;int c = (i % 10) / 1;if (i == a * a * a + b * b * b + c * c * c){Console.WriteLine(i);}}#endregion#region 循环⼩练习//求1-100之间所有偶数的和?int count = 1;int sum = 0;for (int i = 1; i <= 100; i++){if (count % 2 == 0){sum += count;}count++;}Console.WriteLine(sum);//求数列 1,1,2,3,5,8,13, ... 的第20位数字是多少?int count1 = 1;Console.WriteLine(count1);int count2 = 1;Console.WriteLine(count2);int count3 = count1 + count2;for (int i = 3; i <= 20; i++){count1 = count2;count2 = count3;count3 = count1 + count2;Console.WriteLine(count3);}//假如⽕星2016年培养学员10万⼈,每年增长80%,请问按此速度增长,//到哪⼀年培训的学员⼈数将达到100万⼈?int year = 2016;float stu = 10f;float rate = 0.8f;while (true){year++;stu += stu * rate;if (stu >= 100f){Console.WriteLine("{0}年培训的学员⼈数将达到100万⼈", year); break;}}//输⼊班级⼈数,然后依次输⼊学员成绩(需提⽰当前是第⼏个学员),计算班//级学员的平均成绩和总成绩。
Shell中的for和while循环详细总结⼀、for循环1.数字段形式复制代码代码如下:for i in {1..10}doecho $idone2.详细列出(字符且项数不多)复制代码代码如下:for File in 1 2 3 4 5doecho $Filedone3.对存在的⽂件进⾏循环复制代码代码如下:for shname in `ls *.sh`doname=`echo "$shname" | awk -F. '{print $1}'`echo $namedone4.查找循环(ls数据量太⼤的时候也可以⽤这种⽅法)复制代码代码如下:for shname in `find . -type f -name "*.sh"`doname=`echo "$shname" | awk -F/ '{print $2}'`echo $namedone5.((语法循环--有点像C语法,但记得双括号复制代码代码如下:for((i=1;i<100;i++))doif((i%3==0))thenecho $icontinuefidone6.seq形式起始从1开始复制代码代码如下:for i in `seq 100`doif((i%3==0))thenecho $icontinuefidone⼆、while循环1.while循环注意为⽅括号[],且注意空格复制代码代码如下:min=1max=100while [ $min -le $max ]doecho $minmin=`expr $min + 1`done2.双括号形式,内部结构有点像C的语法,注意赋值:i=$(($i+1))复制代码代码如下:i=1while(($i<100))doif(($i%4==0))thenecho $ifii=$(($i+1))done3.从配置⽂件读取,并可以控制进程数量复制代码代码如下:MAX_RUN_NUM=8cat cfg/res_card_partition.cfg |grep -v '^$'|grep -v "#" | grep -v grep |while read partitiondonohup sh inv_res_card_process.sh $partition >log/resCard$partition.log 2>&1 & while [ 1 -eq 1 ]dopsNum=`ps -ef | grep "inv_res_card_process" | grep -v "grep" | wc -l`if [ $psNum -ge $MAX_RUN_NUM ]thensleep 5elsebreakfidonedone三.循环控制语句复制代码代码如下:# break 命令不执⾏当前循环体内break下⾯的语句从当前循环退出.# continue 命令是程序在本循体内忽略下⾯的语句,从循环头开始执⾏。
whilefor循环的使⽤⼀、while 循环1.while 循环的语句while条件:语句体语句体使⽤while循环容易出现死循环,需要加⼊循环控制条件times = 1while times <=5:print("times:",times)#循环结束的控制语句times +=1print("程序结束")例如:猜字游戏,假设答案是9 ,让⽤户从键盘中输⼊⼀个整数,使⽤while循环,提供多次机会给⽤户猜测。
⽐如说,给⽤户三次机会num = 9times = 1while times <= 3:num1 = int(input("请输⼊⼀个整数: "))if num1 == num:print("您猜对了")elif num1 < num:print("您猜⼩了")else:print("您猜⼤了")times = times + 12.break/continuebreak 语句会跳出循环,并终⽌循环;continue 语句会跳出当层循环,并且开始下⼀次循环。
例如:输出1到10,如果是2的倍数,则不输出(continue⽤法)times =1while times <= 10:if times % 2 ==0:times +=1continueprint(times)times = times +1例如:输出1到20,如果是5的倍数,则结束程序times = 1while times <=20:if times % 5 ==0:times +=1breskprint(times)times +=1print("程序结束")练习:1.求100以内的奇数之和 99+97+95+93+.......+1第⼀种:n = 0sum = 0while n <= 99:n = n + 1if n % 2 ==0:continuesum = sum + nprint(sum)第⼆种:n = 99sum = 0while n > 0:sum = sum + nn = n-2print(sum)2.创建⼀个包含了100以内的奇数的列表list = []n = 101while n >= 2:if n % 2 != 0:n = n - 2list.append(n)print(list)⼆、for 循环语句for变量in范围:for循环的循环体----循环的次数,由指定的范围内的数量1.遍历字符串str = "hello,world!"total = 0for i in str:print(i)total = total + 1print(total)2.遍历列表list = [1,2,3,"test",34,"python"]for l in list:print(l)3.range() 函数 range(始起值,结束值,步长值) range(始起值,结束值) 取值范围:始起值,到(结束值-1) for i in range(0,6):print(i)例如:请写出⼀段 python 代码实现删除⼀个list⾥⾯的重复元素list = [2,3,4,2,4,3,5,11,23,13]lst =[]for i in list:if i not in lst:lst.append(i)print(lst)print(sorted(lst))4.for循环的嵌套for变量in范围:语句for变量in范围:循环体for i in range(1,10):print("i-->:",i)for j in range(1,i+1):print("j-->:",j,end="\t")print()例如:使⽤for循环嵌套实现99乘法表# 第1种for i in range(1,10):for j in range(1,i+1):print("%d*%d=%2d"%(i,j,i*j),end = "\t")print()# 第2种for i in range(1,10):for j in range(1,i+1):print(str(i) + "*" + str(j) + '=' + str(i*j),end="\t")print()5.冒泡排序例如:定义⼀个列表,如 lst = [3,8,2,12,56,9],然后把列表中的数据由⾼到低排序,并输出。
for循环和while循环是程序设计中常用的两种循环结构,它们可以让程序重复执行一定的操作,使程序更加灵活和高效。
在实际编程中,合理运用for循环和while循环可以大大提高程序的运行效率,本文将围绕for和while语句的用法展开详细的探讨。
一、for循环的基本语法1. for循环的基本结构for循环是一种在已知循环次数的情况下使用的循环结构,其基本语法如下:for(初始化表达式; 条件表达式; 循环后表达式){//循环体}其中,初始化表达式用于初始化循环变量,条件表达式用于判断是否执行循环体,循环后表达式用于更新循环变量的值。
2. for循环的示例下面是一个使用for循环计算1到100的和的示例代码:int sum = 0;for(int i=1; i<=100; i++){sum += i;}cout << "1到100的和为:" << sum << endl;二、while循环的基本语法1. while循环的基本结构while循环是一种在未知循环次数的情况下使用的循环结构,其基本语法如下:while(条件表达式){//循环体}当条件表达式为真时,执行循环体,否则退出循环。
2. while循环的示例下面是一个使用while循环计算1到100的和的示例代码:int sum = 0;int i = 1;while(i <= 100){sum += i;i++;}cout << "1到100的和为:" << sum << endl;三、for循环和while循环的比较1. 使用场景for循环适用于在已知循环次数的情况下,特别是当循环次数为固定值时,使用for循环更为简洁明了。
而while循环适用于在未知循环次数的情况下,特别是当循环次数受条件限制时,使用while循环更加灵活。
循环过程简易知识点总结1. while循环while循环是最基本的一种循环形式,它允许程序重复执行一系列语句,直到条件不再满足为止。
while循环的语法通常如下:```while (条件) {// 循环体}```在这个例子中,条件是一个布尔表达式,如果条件为真,则执行循环体,然后再次检查条件。
如果条件为假,则循环结束,程序继续往下执行。
在使用while循环时,需要注意条件是否能够最终变为假,否则可能导致死循环的情况发生。
2. for循环for循环是另一种常用的循环形式,它允许程序按照一定的次数重复执行一系列语句。
for循环的语法通常如下:```for (初始化; 条件; 更新) {// 循环体}```在这个例子中,初始化是在循环开始前执行的语句,条件是每次循环前检查的布尔表达式,更新是在每次循环后执行的语句。
for循环的执行流程通常是:首先执行初始化;然后检查条件,如果条件为真,则执行循环体,然后执行更新,再次检查条件;如果条件为假,则循环结束,程序继续往下执行。
3. do-while循环do-while循环是一种后测试循环,它允许程序至少执行一次循环体,然后根据条件决定是否继续执行。
do-while循环的语法通常如下:```// 循环体} while (条件);```在这个例子中,循环体会至少执行一次,然后执行条件检查。
如果条件为真,则继续执行循环体,然后再次检查条件;如果条件为假,则循环结束,程序继续往下执行。
循环的应用循环在编程中有着广泛的应用,它可以用来处理诸如数组遍历、文件读取、数据处理等各种任务。
下面我们将介绍一些循环的常见应用场景。
1. 数组遍历循环可以用来遍历数组中的元素,实现对数组的一系列操作。
例如,可以使用for循环遍历数组,并对每个元素执行特定的操作:```int[] arr = {1, 2, 3, 4, 5};for (int i = 0; i < arr.length; i++) {// 对数组元素执行操作}```在这个例子中,for循环依次遍历数组arr中的每个元素,并执行指定的操作。
Python循环语句之while,for语句详解循环语句(有两种):while 语句for 语句while 语句:问题:输⼊⼀个整数n,让程序输出n⾏的:hello 1hello 2.......hell nwhile 语句:作⽤:根据⼀定条件,重复的执⾏⼀条语句或多条语句语法:while 真值表达式:语句块1......else:语句块2......说明:1,先执⾏真值表达式,测试布尔值为True或False2,如果真值表达式的测试值为True,侧执⾏语句1,然后再返回到第⼀步重复进⾏测试3,如果真值表达式的测试值为False。
则执⾏else⼦句中的语句块2,然后结束此while语句的执⾏,如果没有else⼦句,则直接结束while语句的执⾏。
4,else⼦句部分可以省略(同if语句类似)。
如:打印10⾏的helloi = 1 #创建并初始化⼀个控制while循环的变量iwhile i <= 10:print("hello") #此处执⾏10次i += 1#运⾏结果:[root@localhost data]# ./test.pyhellohellohellohellohellohellohellohellohellohellowhile语句的注意事项:1,要控制循环的真值表达式的值来防⽌死循环。
2,通常⽤真值表达式中的循环变量来控制循环条件。
3,通常在循环语句块內需要改变循环来控制循环的次数和变量的⾛向while循环的嵌套:while语句本⾝是语句,和其它的语句⼀样可以嵌套在其它复合语句中(如:if语句,while语句, for语句 ....内部)while语句嵌套⽰意:while 真值表达式:.......while 真值表达式2:......else:........else:........如:输⼊⼀个数,打印指定宽度的正⽅形:如:输⼊:5n = int(input("输⼊⼀个数:"))j = 1while j <= n:i = 1while i <= n:print(i,end=' ')i += 1print()j += 1######运⾏结果:1 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 51 2 3 4 5break 语句:作⽤:⽤于循环语句(while,for语句)中,⽤来终⽌当前循环语句的执⾏。
循环结构(for循环、while循环)循环结构(for循环、while循环)1、含义:循环语句可以在满⾜循环条件的情况下,反复执⾏某⼀段代码,这段被重复执⾏的代码被称为循环体语句;当反复执⾏这个循环体时,需要在合适的时候把循环判断条件修改为false,从⽽结束循环,否则循环将⼀直执⾏下去,形成死循环。
2、分类:1、for循环2、while循环--do...while循环3、循环语句的组成①初始化语句:⼀条或者多条语句,这些语句完成⼀些初始化操作。
②判断条件语句:这是⼀个boolean 表达式,这个表达式能决定是否执⾏循环体。
③循环体语句:这个部分是循环体语句,也就是我们要多次做的事情。
④控制条件语句:这个部分在⼀次循环体结束后,下⼀次循环判断条件执⾏前执⾏。
通过⽤于控制循环条件中的变量,使得循环在合适的时候结束。
for循环1、for循环:语句格式:for(初始化语句;判断条件语句;控制条件语句){循环体语句;}2、执⾏流程:(1)执⾏初始化语句,只执⾏了⼀遍(2)执⾏判断条件语句,看其结果是true还是false如果是false,循环结束。
如果是true,继续执⾏。
(3)执⾏循环体语句 //注意:第3步是执⾏循环体,⽽不是控制条件语句(4)执⾏控制条件语句(5)回到(2)继续3、例:打印10⾏HelloWorld⽅法⼀:使⽤⽼⽅法public class ForDemo1 {public static void main(String[] args) {System.out.println("HelloWorld");System.out.println("HelloWorld");System.out.println("HelloWorld");System.out.println("HelloWorld");System.out.println("HelloWorld");System.out.println("HelloWorld");System.out.println("HelloWorld");System.out.println("HelloWorld");System.out.println("HelloWorld");System.out.println("HelloWorld");⽅法⼆:利⽤for循环public class ForDemo1 {public static void main(String[] args) {for(int i=1;i<=10;i++){System.out.println("HelloWorld");}}}程序解释:①int i=1; 初始化值的作⽤,因为我们要打印10句HelloWorld,从第⼀次开始,所以我们需要定义⼀个变量 int类型的变量去开始计数,表⽰第⼏次循环②i<=10; 条件判断语句,这个语句使⽤控制是否进⼊循环的条件③i++ 控制循环体中的条件的变化,在这⾥表⽰的是,每循环⼀次,i++4、使⽤for循环的注意事项:1、条件判断语句只能是boolean类型2、当循环体的语句只有⼀条的时候,可以省略⼤括号,如果循环体的语句有多条的时候,这时候需要添加⼤括号,如果不添加循环语句只针对第⼀条语句有效(建议,永远不要省略⼤括号)3、如果在⼩括号后加分号,默认有⼀个空语句体,后⾯的代码为正常的代码块,不参与循环4、初始化语句可以不在for循环中的⼩括号中体现,但是必须在使⽤之前定义好5、条件判断语句可以删除,但是删除之后,就没有了控制循环结束的条件,就变成了死循环6、控制条件语句删除之后,也变成了死循环,你可以删除,但是初始化的变量的值⼀定要在循环体中发⽣变化。
3.2.1for循环与while循环的基本语法 不停地重复⼀件事情,时间久了会⾮常⽆聊,然后⼤脑就会由于疲劳⽽容易⼊睡。
重复性的劳动会使⼈疲劳,⽽计算机不会,只要代码写得正确,计算机就会孜孜不倦地重复⼯作。
在Python中主要有两种形式的循环结构:for循环和while循环。
while循环⼀般⽤于循环次数难以提前确定的情况,当然也可以⽤于循环次数确定的情况; for循环⼀般⽤于循环次数可以提前确定的情况,优势适⽤于枚举或遍历序列或迭代对象中元素的场合。
当循环带有else ⼦句时,如果循环因为条件表达式不成⽴或序列遍历结束⽽⾃然结束时则执⾏else结构中的语句,如果循环是因为执⾏了break语句⽽导致循环提前结束则不执⾏else中的语句。
其完整语法形式为:1while条件表达式:2循环体3 [4else:5 else⼦句6 ]78和910for变量in序列或迭代对象:11循环体12 [13else:14 else⼦句代码块15 ] 其中⽅括号内的else⼦句可有可⽆。
下⾯的代码演⽰了带有else⼦句的循环结构,该代码⽤来计算1+2+3+...+99+100的结果。
1 s = 02for i in range(1,101):3 s += i4else:5print('# 程序执⾏结果:{}'.format(s))67# 程序执⾏结果:5050 下⾯的代码使⽤while循环实现了相同的功能:1 s = i = 02while i <= 100:3 s += i4 i += 15else:6print('# 程序执⾏结果:{}'.format(s))789# 程序执⾏结果:5050 下⾯的代码巧妙运⽤range()函数来控制循环此时输出有星号(*)组成的菱形图案:1def main(n):2for i in range(n):3print((' * ' * i).center(n * 3))45for i in range(n,0,-1):6print((' * ' * i).center(n * 3))78 main(6) 建议:编程时⼀般优先考虑使⽤for循环。