《Python语言程序设计》 课件 第4章 循环结构_第1页
《Python语言程序设计》 课件 第4章 循环结构_第2页
《Python语言程序设计》 课件 第4章 循环结构_第3页
《Python语言程序设计》 课件 第4章 循环结构_第4页
《Python语言程序设计》 课件 第4章 循环结构_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章循环结构第4章

循环结构for语句while语句breakcontinuepasselse循环结构的嵌套循环结构程序举例循环语句有时需要重复多次执行一系列语句,因此需要循环语句Python中循环包括两种:遍历循环和无限循环。遍历循环:for...in依次提取遍历结构各元素进行处理;无限循环:while根据判断条件执行程序。for循环语句4for

<循环变量>

in<遍历结构>

:

<语句块>-由关键字字for和in组成,完整遍历所有元素后结束-遍历结构:range(..)、字符串、列表、元组、字典、集合-每次循环,所获得元素放入循环变量,并执行一次语句块for循环语句(计数循环)5foriinrange(2):#[0,2)print(i)01foriinrange(2,5):#[2,5)print(i)234foriinrange(2,5,2):#步长2print(i)24AAforiinrange(3,12,3):print(i,"",end="")输出结果是:36936912345678910113456789101112BCDfor循环遍历字符串7for循环遍历列表–写法18a=['banana','apple','mango']foriina: print(i)bananaapplemango下面程序的输出结果是()。s=["橘子","芒果","草莓","西瓜","水蜜桃"]forkins:print(k,end="")A、橘子芒果草莓西瓜水蜜桃B、橘子芒果草莓西瓜水蜜桃c、西瓜D、"橘子""芒果""草莓""西瓜""水蜜桃"for循环遍历列表–写法29a=['banana','apple','mango']foriinrange(len(a)): #len求列表长度(元素个数)print(i,a[i])0banana1apple2mangolen用来求字符串长度,元组、集合、字典元素个数print(len("abc"))#>>3为了使以下代码的执行结果是:中国,韩国,日本,巴基斯坦,蒙古country=['中国','韩国','日本','巴基斯坦','蒙古']n=1forcincountry:ifn<len(country):print(____)else:print(c)n=n+1在横线处要补充的代码是()

。A、c,end=","B、cC、c,”,”D、c,sep=","for循环遍历元组11Python使用for和in的组合表达遍历循环,不能被遍历的数据类型是()。A、复数类型B、元组类型c、字典类型D、字符串类型4.1.2for循环程序举例【例4.1】求1+2+3+…+100的和。s=0s+1→ss+2→ss+3→s…..s+100→ss=s+通项【例4.1】求1+2+3+…+100的和。程序代码s=0foriinrange(1,101):s=s+iprint("1+2+3+...+100=%d"%s)【例4.2】求n!,即1×2×3×4×…×ns=1n=int(input("请输入1个整数:"))foriinrange(1,n+1):s=s*iprint("%d!=%d"%(n,s))【例4.3】输出所有的“水仙花数”,所谓的“水仙花数”是指一个三位数其各位数字的立方和等于该数本身,例如153是“水仙花数”,153=1*1*1+5*5*5+3*3*3foriinrange(100,1000):a=i%10b=i//10%10

c=i//100ifa**3+b**3+c**3==i:

print("%d是水仙花数"%i)4.2.1while循环的结构while表达式:

语句块语句块(循环体):重复做的事,用相同的代码写出来4.2while循环i=1whilei<5:print(i)i=i+11812345i=1whilei<5:print(i)i=i+1whilea=0:print("Hello")

SyntaxError:invalidsyntax4.2.2while循环程序举例【例4.4】使用while循环实现”猜数字”小游戏。猜数字游戏的规则是:随机生成一个1到100之间的数,玩家输入自己猜的数字,计算机给出对应的提示信息(再大一点、再小一点或猜对了),如果玩家猜中了数字,计算机提示用户一共猜了多少次,游戏结束,否则游戏继续。importrandomanswer=random.randint(1,100)number=int(input('猜一个1-100的数:'))n=1whilenumber!=answer:ifnumber<answer:print('再大一点')else:print('再小一点')number=int(input('再猜:'))

n+=1print(f'恭喜你猜对了!共猜了{n}次')【例4.5】斐波那契数列:0、1、1、2、3、5、8、13、21、34、…根据斐波那契数列的定义,F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n>=2),输出不大于50的序列元素。分析:从第三项开始,每一项都等于前两项之和。 0 1 第一次:

a b 第二次:

a

第三次:...... 1bb=a+ba=ba,b=b,a+bprint(a)程序代码:a,b=0,1whilea<=50:print(a,end=',')a,b=b,a+b4.3.1break语句通常和if语句连用,用于满足某条件时,执行到break语句,结束循环。234.3循环中的break、continue、pass和elseforiinrange(1,10):print("*")if(i==5):print("循环结束")break*****循环结束【例4.6】输入一个整数,判断是否是素数。算法分析:

素数即质数,是指在大于1的自然数中,除了1和它自身外,不能被其他自然数整除的数。使用穷举法,遍历求模进行判断。将flag作为素数标识,初值为True(认为n是素数)。穷举n可能的因子2到n-1,遍历进行求模运算。一旦整除,将flag赋值为False,同时执行break语句,跳出循环。最后通过判断flag的值,输出结果。n=int(input("请输入一个数:"))flag=True

foriin

range(2,n):

ifn%i==0:flag=Falsebreak

ifflag=True:

print(n,"是素数。")else:

print(n,"不是素数。")以下代码的输出结果是()。forsin"PythonNice!"":ifs==“i":breakprint(s,end=“")A、PythonB、PythonNc、PythonNiD、PythonNice4.3.2continue语句

结束当次循环,继续执行后续次数循环foriinrange(1,10):

if(i<=5):

continue

print(i)

****以下代码的输出结果是()。foriinrange(1,6):ifi%4==0:continueelse:print(i.end=",")A、1,2,3,B、1,2,3,4,c、1,2,3,5,D、1,2,3,5,6以下代码的输出结果是()。forsin"grandfather":ifs=="d"ors=='h':continueprint(s,end=")A、grandfatherB、granfaterC、grandD、father4.3.3pass语句空语句,它不做任何操作。forxinrange(10):pass

循环的确10次,但是除了循环本身之外,它什么也没做。while

表达式:

语句组1else:

语句组2........判断表达式

是否为真,若为真转2),若为假转3)执行语句组1,回到1)执行语句组2继续往下执行........31else中的语句会在循环正常执行完的情况下执行4.3.4else语句x=0whilex<5:print(x,"小于5")x=x+1else:print(x,"大于或等于5")320小于51小于52小于53小于54小于55大于或等于5【例4.7】输入一个整数,判断是否是素数。n=int(input("请输入一个整数:"))foriinrange(2,n):ifn%i==0:print("{}不是素数".format(n))breakelse:print("{}是素数".format(n))下面代码的输出结果是()。x=10whilex:x=x-1ifx%2:print(x,end=")else:passA、86420B、975311c、97531D、8642004.4循环语句的嵌套(多重循环)如果一个循环结构的循环体又包括一个循环结构foriinrange(5):forjinrange(10):print("*",end="")print()

实现一个5行10列的星号图:**************************************************下面代码的输出结果是()。foriin"PYTHON":forkinrange(2):print(i,end="")A、PPYYTTHHOONNB、PPYYTTOONNc、PPYYTTHOONND、PPYYTTH【例4.8】输入整数n,输出一个n-1行的数字三角形阵列。该阵列每行包含的整数序列为从该行序号开始到n-1,例如第1行包含1到n-1的整数,第i行包含从i到n-1的整数。例如输入:8输出:1234567234567345674567567677n=eval(input("请输入一个整数:"))foriinrange(1,n):

forjinrange(i,n):

print(j,end='')

print()【例4.9】编写程序输出3~100之间的全部质数。分析:可分为以下两步。(1)判断一个数是否为素数。(2)对指定范围内的每一个数都执行(1)forninrange(3,101):

flag=True

foriinrange(2,n):

ifn%i==0:

flag=False

break

ifflag==True:

print(n,end="\t")4.5循环语句的综合应用例4.10

我国古代的《张丘建算经》中有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论