实验3 分支与循环答案版_第1页
实验3 分支与循环答案版_第2页
实验3 分支与循环答案版_第3页
实验3 分支与循环答案版_第4页
实验3 分支与循环答案版_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

《Python基础》实验报告实验项目实验3:分支与循环学员姓名实验日期

实验3分支与循环一、实验目的1.熟练使用Python的常用运算2.利用if分支语句编写Python代码3.掌握while循环语句使用方法4.掌握for循环语句使用方法5.能够利用流程控制语句解决实际编程问题二、单元练习 (一)选择题1.下列选项中,当x为大于1的奇数时,运算结果为0的表达式是(C)A.x%2==1B.x/2C.x%2!=0D.x%2==02.在嵌套使用if语句时,Python语言规定else总是(A)A.和之前与其具有相同缩进位置的if相匹配;B.和之前与其最近的if相匹配;C.和之前的第一个if配对;D.和之前与其最近且不带else的if配对。3.下列Python语句正确的是

(D)A.min

=

x

if

x

<

y

else

y

B.max

=

x

>

y

?

x

:

y

C.if

(x

>

y)

print

x

D.if

1>2:

print(“hello”)

(二)填空题1.写出下列表达式的值,设a=3,b=4,c=5:表达式值a+b>candb==cFalsenot(a>b)andnotc||1Falsea<candc<bFalsea<c<bFalsea<borc<bTrue2.在算术运算符(+、-、*、/、%)、关系运算符()、逻辑运算符()和赋值运算符()中,运算优先级最高的运算符是**指数,最低的运算符not、or、and。3.判断一个字符是数字字符的条件表达式isdigit。4.判断一个字符是字母的条件表达式isalnum。5.在Python语言中,用True表示逻辑“真”,用False表示逻辑“假”。6.如果循环无休止的进行下去,这种状态称为死循环。7.使用循环输出1234568910,补充下面的填空count=1whilecount<=10:

ifcount!=7:

print(count)

count+=18.循环可以嵌套3-5层。三、课堂练习任务1:【猜字游戏】1.编写一个猜字游戏,要求随机输入一个0-10的数字,提供1次猜字机会。程序编写于下方importrandomsecret=random.randint(0,10)print("请你猜一猜从1到10的数字")print("你只有一次机会")guess=eval(input("请输入你猜的数字:"))ifguess<secret:print('太小了')elifguess>secret:print('太大了')else:print('答对了')print('正确答案是:'+str(secret))2.编写一个猜字游戏,要求随机输入一个0-100的数字,提供6次猜字机会。程序编写于下方importrandomkey=random.randint(1,10)c=0c2=6whilec<3:word=eval(input('猜一猜1-10的数字,请输入答案,还剩{}次机会:'.format(c2-c)))c+=1ifkey>word:print('太小了')elifkey<word:print('太大了')else:print('你在第{}次答对了'.format(c))breakifkey!=word:print('很遗憾你猜错了')print('正确答案是:'+str(key))任务2:【学生成绩等级评定】根据学生考试成绩,确定成绩等级,成绩与等级的对应关系如下表所示。成绩(score)等级(level)score>=90A80<=score<90B70<=score<80C60<=score<70DScore<60E程序编写于下方score=eval(input('请输入你的考试成绩:'))ifscore>=90:level='A'elif80<=score:level='B'elif(score>=70):level='C'elif(score>=60):level='D'else:level='E'print('你的考试等级为:'+level)任务3:【输入字符判断】键盘输入一个字符,判断该字符是数字、字母、空格还是其他。程序编写于下方word=input('请输入你的字符:')ifword.isdigit():print('你输入的是数字')elifword.isalpha():print('你输入的是字母')elifword.isspace():print('你输入的是空格')else:print('你输入的是其他')任务4:【统计字符分类】输入一行字符,统计出其中英文字母、空格、数字以及其他字符的个数,并打印出来。程序编写于下方word=input('请输入你的文本:')num_alpha=0num_digit=0num_space=0num_other=0foriinword:ifi.isalpha():num_alpha+=1elifi.isdigit():num_digit+=1elifi.isspace():num_space+=1else:num_other+=1print('该字符串共有{0}个字母,{1}个数字,{2}个空格,{3}个其他字符'.format(num_alpha,num_digit,num_space,num_other))任务5:【身体质量指数判断】身体质量指数(BMI)是指用体重除以身高的平方得出的数字,它是目前国际常用的衡量人体胖瘦程度以及是否健康的一个标准,具体如下。BMI值<18.518.5~24.925.0~27.9>27.9身体情况消瘦正常超重肥胖程序编写于下方high=eval(input('请输入你的身高:'))wight=eval(input('请输入你的体重:'))bmi=wight/(high**2)ifbmi<18.5:print('bmi='+str(bmi))print('偏瘦')elif(bmi>=18.5)and(bmi<=24.9):print('bmi='+str(bmi))print('正常')elif(bmi>=25)and(bmi<=27.9):print('bmi='+str(bmi))print('偏胖')else:print('bmi='+str(bmi))print('肥胖')任务6:【企业发放奖金判断】企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?程序编写于下方i=eval(input('Pleaseinputprofitsofthemonth:'))ifi<=100000:money=i*0.1elif(i>100000)and(i<=200000):money=100000*0.1+(i-100000)*0.075elif(i>200000)and(i<=400000):money=100000*0.1+100000*0.075+(i-200000)*0.05elif(i>400000)and(i<=600000):money=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03elif(i>600000)and(i<=1000000):money=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015else:money=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.001print('Thebonusis:'+str(money))任务7:【月份判断】使用if结构写一个程序,判断输入的月份应该有多少天。(2月定为28天)。程序编写于下方month=input('请输入月份(例:一月):')

if(month=='一月'):

print(str(month)+'应该有31天')

elif(month=='二月'):

print(str(month)+'应该有28天')

elif(month=='三月'):

print(str(month)+'应该有31天')

elif(month=='四月'):

print(str(month)+'应该有30天')

elif(month=='五月'):

print(str(month)+'应该有31天')

elif(month=='六月'):

print(str(month)+'应该有30天')

elif(month=='七月'):

print(str(month)+'应该有31天')

elif(month=='八月'):

print(str(month)+'应该有31天')

elif(month=='九月'):

print(str(month)+'应该有30天')

elif(month=='十月'):

print(str(month)+'应该有31天')

elif(month=='十一月'):

print(str(month)+'应该有30天')

elif(month=='十二月'):

print(str(month)+'应该有31天')任务8:【水仙花数】输出所有的“水仙花数”。“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。例如:153=13+53+33,该数即为水仙花数。程序编写于下方num=0foriinrange(100,1000):c=i%10b=i//10%10a=i//100ifa**3+b**3+c**3==i:print(str(i))num+=1print('共{}个'.format(num))任务9:【用数字组数】用数字1、2、3、4进行组数,能组出多少个互不相同且不重复数字的三位数?并打印出来。程序编写于下方num=0foriinrange(1,5):forjinrange(1,5):forkinrange(1,5):if(i!=j)and(j!=k)and(i!=k):print(i,j,k)num+=1print('共{}个'.format(num))任务10:【评委评分】分别利用while语句和for语句完成如下功能。某比赛有7个评委,选手的得分为这7个评委的评分总和,请编程实现统计功能。程序编写于下方while方式:Ssum=0c=0whilec<7:score=eval(input('{}号评委请输入评分:'.format(c+1)))Ssum=Ssum+scorec+=1print('该选手得分为:{}'.format(Ssum))程序编写于下方for方式:Ssum=0forcinrange(1,8):score=eval(input('{}号评委请输入评分:'.format(c)))Ssum=Ssum+scoreprint('该选手得分为:{}'.format(Ssum))任务11:【break语句和continue语句的使用】输入若干字符,对输入的英文字母原样输出,其他字符不输出,直到输入回车键时结束。程序编写于下方text=''word=''while1:word=input('请输入文本:')foriinword:ifi.isalpha():text=text+iprint(text)text=''ifword=='':break四、拓展任务任务1:【验证码】一般网站在登录时,都会进行“验证码”输入。在输入验证码字符时,无论用户输入的是大写字母还是小写字母,验证时都会忽略大小写的差异,认为是相同的字符。这说明系统已经对验证码中的字符和用户输入的字符进行了大小写转换,然后进行匹配。那么这种转换是如何实现的?请编程实现“从键盘输入一组字符,无论大小写,都转换成小写形式输出”。程序编写于下方string=input('Pleaseinputyourtext:')print(string.lower())任务2:【商品促销】某淘宝商场采用购物打折的方式进行促销。具体促销方式如下:购买金额折扣1000元及以上九折2000元及以上八折3000元及以上七折请编写程序,当输入顾客实际购物金额,计算并输出优惠价。程序编写于下方money=eval(input('请输入你的购物金额:'))if(money>=1000)and(money<2000):level=0.9cash=money*levelprint('折后金额为:'+str(cash))elif(money>=2000)and(money<3000):level=0.8cash=money*levelprint('折后金额为:'+str(cash))else:level=0.7cash=money*levelprint('折后金额为:'+str(cash))任务3:【闰年】输入一个年份,求它是否是闰年?闰年的条件是:能被4整除不能被100整除或者能被400整除(y%4==0andy%100!=0ory%400==0)程序编写于下方year=eval(input('请输入年份:'))while(1):ifyear>=1000andyear<=9999:if(year%4==0andyear%100!=0)or(year%100==0):print('该年为闰年')else:print('该年不是闰年')breakelse:year=eval(input('请输入正确年份:'))任务4:【月份判断】使用if结构写一个程序,判断输入的月份应该有多少天。(2月根据是否是闰年判断是否28天还是29天)。程序编写于下方defJudgeYear(year):flag=Falseif(year%4==0andyear%100!=0)or(year%100==0):flag=Trueprint('该年为闰年')returnflagdefrestr(string,p,c):new=[]forsinstring:new.append(s)new[p]=creturn''.join(new)任务5:【韩信点兵】淮安民间传说着一则故事——“韩信点兵”。话说韩信带1500名兵士打仗,战死四五百人,于是韩信要求士兵们先后站3人一排,多出2人;站5人一排,多出4人;站7人一排,多出6人。韩信很快说出人数:1049。现在给你3个队伍的多出人数,分别为非负整数a,b,c,请计算军队的总人数?程序编写于下方a=eval(input('请输入3

温馨提示

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

最新文档

评论

0/150

提交评论