Python语言及其应用(第2版)习题和实训参考答案-Python语言-3_第1页
Python语言及其应用(第2版)习题和实训参考答案-Python语言-3_第2页
Python语言及其应用(第2版)习题和实训参考答案-Python语言-3_第3页
Python语言及其应用(第2版)习题和实训参考答案-Python语言-3_第4页
Python语言及其应用(第2版)习题和实训参考答案-Python语言-3_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

3.3.2习题1.打印一个左对右的“九九表”。2.请填写下面的表格,完成基本逻辑运算符的真值表。mnm==nm!=nmandnmornnotmFalseFalseTrueFalseFalseFalseTrueFalseTrueFalseTrueFalseTrueTrueTrueFalseFalseTrueFalseTrueFalseTrueTrueTrueFalseTrueTrueFalse3.执行下面的布尔表达式,并写出运行结果。(1)带括号的布尔表达式:>>>not(TrueandTrue)>>>False>>>not(Trueand(FalseorTrue))>>>False>>>not(Trueor(FalseorTrue))>>>False(2)不带括号的布尔表达式:>>>notTrueandFalseorTrue>>>True>>>TrueorFalseorTrueorFalse>>>True>>>FalseandnotFalseorTrue>>>True>>>FalseandFalseorTrue>>>True4.输入一个三角形的三条边,并判断该三角形是否为等腰三角形。答:略5.编写程序,输入两个整数,并将这两个整数按从小到大的顺序输出。答:略3.5实训3.5.1实训1:分支一、实训目的1.熟练使用Python的常用运算符。2.利用if分支语句编写Python代码。二、单元练习 (一)选择题1.下列选项中,当x为大于1的奇数时,运算结果为0的表达式是(D)。A.x%2==1 B.x/2C.x%2!=0 D.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)andnotcor11a<candc<bFalsea<c<bFalsea<borc<bTrue2.在算术运算符(+、-、*、/、%)、关系运算符(==、!=、>、<、>=、<=)、逻辑运算符(and、or、not)和赋值运算符(=、+=、-=、*=、/=、%=、**=、//=)中,运算优先级最高的运算符是算术运算符,最低的运算符是逻辑运算符。3.判断一个字符是数字字符的条件表达式为ifstr.isdigit():。4.判断一个字符是字母的条件表达式为ifstr.isalpha():。5.在Python语言中,用True表示逻辑“真”,用False表示逻辑“假”。

三、实训任务任务1:【猜字游戏】编写一个猜字游戏,要求随机输入一个0~10的数字,提供1次猜字机会。程序编写于下方'''

编写一个猜字游戏,要求随机输入一个0~10的数字,提供1次猜字机会。

'''

fromrandomimportrandint

key=randint(0,11)

num=eval(input('请输入数字:'))

ifnum>key:

ans='太大了'

elifnum<key:

ans='太小了'

else:

ans='恭喜你猜对了!'

print(ans)

print('正确答案是:{}'.format(key))任务2:【学生成绩等级评定】根据学生考试成绩确定成绩等级,成绩与等级的对应关系如下表所示。成绩(score)等级(level)score>=90A80<=score<90B70<=score<80C60<=score<70DScore<60E程序编写于下方'''

根据学生考试成绩确定成绩等级,成绩与等级的对应关系如下表所示。

'''

score=eval(input('请输入你的考试成绩:'))

ifscore>=90:

level='A'

print('你的考试等级为:'+level)

elif(score>=80)and(score<90):

level='B'

print('你的考试等级为:'+level)

elif(score>=70)and(score<80):

level='C'

print('你的考试等级为:'+level)

elif(score>=60)and(score<70):

level='D'

print('你的考试等级为:'+level)

else:

level='E'

print('你的考试等级为:'+level)任务3:【输入字符判断】从键盘输入一个字符,判断该字符是数字、字母、空格还是其他。程序编写于下方'''

从键盘输入一个字符,判断该字符是数字、字母、空格还是其他。

'''

word=input('请输入你的字符:')

ifword.isdigit():

print('你输入的是数字')

elifword.isalpha():

print('你输入的是字母')

elifword.isspace():

print('你输入的是空格')

else:

print('你输入的是其他')任务4:【身体质量指数判断】身体质量指数(BMI)是指用体重(单位:kg)除以身高(单位:m)的平方得出的数字,它是目前国际常用的衡量人体胖瘦程度以及是否健康的一个标准,具体如下。BMI值<18.518.5~24.925.0~29.9>29.9身体情况消瘦正常超重肥胖程序编写于下方'''

身体质量指数(BMI)是指用体重(单位:kg)除以身高(单位:m)的平方得出的数字,

它是目前国际常用的衡量人体胖瘦程度以及是否健康的一个标准,具体如下。

'''

height=eval(input('请输入你的身高(米):'))

weight=eval(input('请输入你的体重(千克):'))

bmi=weight/(height**2)

ifbmi<18.5:

flag='偏瘦'

elif(bmi>=18.5)and(bmi<=24.9):

flag='正常'

elif(bmi>=25)and(bmi<=27.9):

flag='偏胖'

else:

flag='肥胖'

print('BMI={}'.format(bmi))

print('身体情况:{}'.format(flag))任务5:【企业发放奖金判断】企业发放的奖金根据利润提成。利润(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)低于或等于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('请输入本月利润(元):'))

ifi<=100000:

reward=i*0.1

elif(i>100000)and(i<=200000):

reward=100000*0.1+(i-100000)*0.075

elif(i>200000)and(i<=400000):

reward=100000*0.1+100000*0.075+(i-200000)*0.05

elif(i>400000)and(i<=600000):

reward=100000*0.1+100000*0.075+200000*0.05+(i-400000)*0.03

elif(i>600000)and(i<=1000000):

reward=100000*0.1+100000*0.075+200000*0.05+200000*0.03+(i-600000)*0.015

else:

reward=100000*0.1+100000*0.075+200000*0.05+200000*0.03+400000*0.015+(i-1000000)*0.01

print('应发奖金:{}元'.format(reward))任务6:【月份判断】使用if结构写一个程序,判断输入的月份应该有多少天(2月定为28天)。程序编写于下方'''

使用if结构写一个程序,判断输入的月份应该有多少天(2月定为28天)。

'''

month=eval(input('请输入月份:'))

if(monthin[1,3,5,7,8,10,12]):

day=31

elif(month==2):

day=28

elif(monthin[4,6,9,11]):

day=30

else:

day='输入月份有误'

print('本月应该有:{}天'.format(day))四、拓展任务任务1:【验证码】一般网站在登录时,都会进行“验证码”输入。在输入验证码字符时,无论用户输入的是大写字母还是小写字母,验证时都会忽略大小写的差异,认为是相同的字符。这说明系统已经对验证码中的字符和用户输入的字符进行了大小写转换,然后进行匹配。那么这种转换是如何实现的呢?请编程实现“从键盘输入一组字符,无论大小写,都转换成小写形式输出”。程序编写于下方'''

请编程实现“从键盘输入一组字符,无论大小写,都转换成小写形式输出”。

'''

word=input('请输入验证码:')

print('验证码转换后的结果:{}'.format(word.lower()))任务2:【商品促销】某商场采用购物打折的方式进行促销,具体促销方式如下。购买金额折扣1000元及以上九折2000元及以上八折3000元及以上七折请编写程序,当输入顾客实际购物金额后,计算并输出优惠价。程序编写于下方'''

某商场采用购物打折的方式进行促销,具体促销方式如下。

请编写程序,当输入顾客实际购物金额后,计算并输出优惠价。

'''

money=eval(input('请输入购买金额(元):'))

if(money>=3000):

percent=0.7

elif(money>=2000):

percent=0.8

elif(money>=1000):

percent=0.9

else:

percent=1

print('打折后金额:{}元'.format(percent*money))任务3:【闰年】输入一个年份,求它是否是闰年。闰年的条件是:能被4整除不能被100整除或者能被400整除(y%4==0andy%100!=0ory%400==0)。程序编写于下方'''

输入一个年份,求它是否是闰年。闰年的条件是:

能被4整除不能被100整除或者能被400整除

(y%4==0andy%100!=0ory%400==0)。

'''

year=eval(input('请输入年份:'))

if(year%4==0andyear%100!=0oryear%400==0):

print('是闰年')

else:

print('不是闰年')任务4:【月份判断】使用if结构写一个程序,判断输入的月份应该有多少天(2月根据是否为闰年判断是28天还是29天)。程序编写于下方'''

使用if结构写一个程序,判断输入的月份应该有多少天(2月根据是否为闰年判断是28天还是29天)。

'''

defjudgeYear(year):

if(year%4==0andyear%100!=0oryear%400==0):

return1

else:

return0

year=eval(input('请输入年份:'))

month=eval(input('请输入月份:'))

if(monthin[1,3,5,7,8,10,12]):

day=31

elif(month==2):

if(judgeYear(year)==1):

day=29

else:

day=28

elif(monthin[4,6,9,11]):

day=30

else:

day='输入月份有误'

print('本月应该有:{}天'.format(day))3.5.2实训2:循环一、实训目的1.掌握while循环语句的使用方法。2.掌握for循环语句的使用方法。3.能够利用流程控制语句解决实际编程问题。二、单元练习(一)填空题1.如果循环无休止地进行下去,这种状态称为死循环。2.使用循环输出1234568910,填写下面的空白。count=1whilecount<=10:

ifcount!=7:

print(count)

count+=13.循环可以嵌套无数层。三、实训任务任务1:【猜字游戏】编写一个猜字游戏,要求随机输入一个0~100的数字,提供6次猜字机会。程序编写于下方'''

编写一个猜字游戏,要求随机输入一个0~100的数字,提供6次猜字机会。

'''

fromrandomimportrandint

c=6

key=randint(0,101)

while(c>0):

num=eval(input('请输入数字,你还剩{}次机会:'.format(c)))

ifnum>key:

ans='太大了'

elifnum<key:

ans='太小了'

else:

print('恭喜你猜对了!')

break

print(ans)

c-=1

print('正确答案是:{}'.format(key))任务2:【统计字符分类】输入一行字符,统计出其中英文字母、空格、数字及其他字符的个数,并打印出来。程序编写于下方'''

输入一行字符,统计出其中英文字母、空格、数字及其他字符的个数,并打印出来。

'''

number=0

alpha=0

space=0

other=0

text=input('请输入字符串:')

forwordintext:

if(word.isspace()):

space+=1

elif(word.isdigit()):

number+=1

elif(word.isalpha()):

alpha+=1

else:

other+=1

print('该文本包含:{}个数字,{}个中英文字符,{}个空格,{}个其他字符'.format(number,alpha,space,other))任务3:【水仙花数】输出所有的“水仙花数”。“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。例如:153=13+53+33,该数即为“水仙花数”。程序编写于下方'''

输出所有的“水仙花数”。“水仙花数”是指一个三位数,其各位数字的立方和等于该数本身。

例如:153=13+53+33,该数即为“水仙花数”。

'''

forainrange(1,9):

forbinrange(0,9):

forcinrange(0,9):

ifint(str(a)+str(b)+str(c))==a**3+b**3+c**3:

print(str(a)+str(b)+str(c))任务4:【用数字组数】用数字1、2、3、4组数,能组出多少个互不相同且数字不重复的三位数?组数并打印出来。程序编写于下方'''

用数字1、2、3、4组数,能组出多少个互不相同且数字不重复的三位数?组数并打印出来。

'''

c=0

foriinrange(1,5):

forjinrange(1,5):

forkinrange(1,5):

if(i!=jandi!=kandj!=k):

print('{}{}{}'.format(i,j,k))

c+=1

print('共能组成{}个互不相同且不重复的三位数'.format(c))任务5:【评委评分】分别利用while语句和for语句完成以下功能。某比赛有7个评委,选手的得分为这7个评委的评分总和,请编程实现统计功能。程序编写于下方while方式:'''

分别利用while语句和for语句完成以下功能。

某比赛有7个评委,选手的得分为这7个评委的评分总和,请编程实现统计功能。

'''

sco=0

i=1

while(i<=7):

t_sco=eval(input('请第{}位评委打分:'.format(i)))

sco+=t_sco

i+=1

print('该选手得分为:{}'.format(sco))for方式:'''

分别利用while语句和for语句完成以下功能。

某比赛有7个评委,选手的得分为这7个评委的评分总和,请编程实现统计功能。

'''

sco=0

foriinrange(7):

t_sco=eval(input('请第{}位评委打分:'.format(i+1)))

sco+=t_sco

print('该选手得分为:{}'.format(sco))任务6:【break语句和continue语句的使用】程序编写于下方'''

输入若干字符,对输入的英文字母原样输出,其他字符不输出,直到输入回车键时结束。

'''

defis_alphabet(uchar):

"""判断一个unicode是否是英文字母"""

if(uchar>=u'\u0041'anduchar<=u'\u005a')or(uchar>=u'\u0061'anduchar<=u'\u007a'):

returnTrue

else:

returnFalse

out_text=''

text=input('请输入字符串:')

forwordintext:

if(is_alphabet(word)):

out_text+=word

print(out_text)四、拓展任务任务1:【韩信点兵】淮安民间传说着一则故事——“韩信点兵”。话说韩信带领1500名士兵打仗,战死四五百人,于是韩信要求士兵们先后站3人一排,多出2人;站5人一排,多出4人;站7人一排,多出6人。韩信很快说出人数:1049。现在给你3个队伍的多出人数,分别为非负整数a,b,c,请计算军队的总人数。程序编写于下方'''

淮安民间传说着一则故事——“韩信点兵”。

话说韩信带领1500名士兵打

温馨提示

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

评论

0/150

提交评论