《Python程序设计》
练习答案(部分)
黄锐军编著
练习一
1.输入矩形的长与宽,计算矩形面积
2.输入一个时间值s,它是距当日午夜的秒值,计算目前的时间,时间按HH:MM:SS格式输出。
3.如a=1、b=2、c=3、d=0写出下列的逻辑值:
(1) a>b and b>c or a+b<c
(2) a-b<c or b>c and not c
(3) not d or b>c+a or a
(4) d and b and c>d and a*b>c
(5) not (a>b and c>d)
(6) a*b>c or b+c>d and not d
(7) c+d<=b+d and d<c or2*b>c
(8) d<b or c>a+b+d and b<c+a
4.有一个数x在区间[-5,0]内,写出其条件表达式。
5.写出下面表达式的值(设a=1,b=2,c=3,x=4,y=3)
(1) a+b>c and b==c
(2) not a<b and b not =c or x+y<=3
(3) a+(b>=x+y) and c-a and y-x
(4) not (x=a) and (y=b) and0
(5) not (a+b)+c-1and b+c/2
(6) a or1+'a’ and b and 'c’
练习二
1.输入a、b、c三个参数,求解ax2+bx+c=0的两个根,假定b2-4ac>0。
2.输入a、b、c三个参数,以它们作为三角形的三边,判断是否可以构成一个三角形,如能则进一步计算其面积。三角形的面积s可以用以下公式计算:
s=sqrt(p*(p-a)*(p-b)*(p-c))
其中p=(a+b+c)/2。
3.输入一个字母,判断它是否为小写英文字母。
4.从键盘输入5个字符,统计’0’字符出现的次数。
5.输入两个整数,判断哪个大并输出结果。
6.输入一个字母,如它是一个小写英文字母,则把它变为对应大写字母输出。
7.输入一个年份,判断它是否为闰年。
8.从键盘输入a、b两个数,按大小顺序输出它们。
9.输入a、b、c三个整数,出最小的数。
10.某企业发放的奖金根据利润提成。利润低于或等于10万元时,奖金可提12%;利润高于10万元,低于20万元时,高于10万元的部分,可提成8.5%;20万到40万之间时,高于20万元的部分,可提成6%;40万到60万之间时高于40万元的部分,可提成4%;60万到100万之间时,高于60万元的部分,可提成2.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润,求应发放奖金总数?
11.平面上有四个圆,圆心分别为(2,2),(-2,2),(-2,-2),(2,-2),圆半径为1。今输入任一点的坐标,判断该点是否在这四个圆中,如在则给出是在哪一个圆中。
练习三
1.计算1+2+4+……+100的和。
答:
s=0
for i in range(1,101):
s=s+i
print(s)
2.计算1+1/3+1/5+……+1/99的和。
答:
s=0
for i in range(1,100,2):
s=s+1/i
print(s)
3.从键盘输入一个字符串,直到回车结束,统计字符串中的大小写英文字母各有多少个。
答:
s=input()
a=0
b=0
for x in s:
if x>="a" and x<="z":
a+=1thinkphp教学网站
elif x>="A" and x<="Z":
b+=1
qq资源网print("小写:",a," 大写:",b)
4.有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…,求出这个数列的前20项之和。
答:
s=0
a=1
b=2
t=""
for i in range(20):
t=t+str(b)+"/"+str(a)
python编程基础教程课后答案if i<19:
t=t+"+"
else:
t=t+"="
s=s+b/a
c=a+b
a=b
b=c
深圳网站建设公司print(t+str(s))
6.输入若干个同学的成绩,计算平均成绩,输入的成绩为负数或大于100时表示结束输入。答:
s=0
n=0
while True:
m=float(input())
if m<0 or m>100:
break
s=s+m
n=n+1
print("平均:",s/n)
7.输入三个正整数a、b、n,精确计算a/b的结果到小数后n位。
8.一个猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。
答:
n=10
while True:
m=n
flag=True
for i in range(9):
if m%2==0:
m=m-m//2-1
else:
flag=False
break
if m==1 and flag:
break
n=n+1
print("桃子数:",n)
for i in range(9):
print(i+1,n,"->",n-n//2-1)
n=n-n//2-1
结果:
桃子数: 1534
简述java虚拟机1 1534 -> 766
2 766 -> 382
3 382 -> 190
4 190 -> 94
5 94 -> 46
6 46 -> 22
7 22 -> 10
8 10 -> 4
9 4 -> 1
9.有一序列:1,3,5,8,13,21...,用while循环求出这个数列的前20项之和。
答:
a=3
b=5
s=1+3+5
t="1+3+5+"
i=0
while i<17:
c=a+b
s=s+c
t=t+str(c)
if(i<16):
t=t+"+"
a=b
b=c
湖人vs马刺比赛i=i+1
print(t+"="+str(s))
结果:
1+3+5+8+13+21+34+55+89+144+233+377+610+987+1597+2584+4181+6765+10946+17711=4636 4
10.一个数如正好等于它的所有因子之和,则称为完数,例如6的因子有1、2、3,而6=1+2+3,因此6是一个完数。编程序出1000之内的所有完数。
答:
def isOK(n):
s=0
t=""
for m in range(1,n):
if n%m==0:
s=s+m
t=t+str(m)+"+"
if s==n:
return t.strip("+")
return ""
for n in range(1,1001):
t=isOK(n)
if t:
print(n,"=",t)
结果:
6 = 1+2+3
28 = 1+2+4+7+14
496 = 1+2+4+8+16+31+62+124+248
11.有近千名学生排队,7人一行余3人,5人一行余2人,3人一行余1人,编写程序求学生人数。
答:
n=800
while True:
if n%7==3 and n%5==2 and n%3==1:
break
n=n+1
print(n)
12.小华今年12岁,他妈妈比他大20岁,编写程序计算多少年后他妈妈年龄比他大一倍。答:
xh=12
mm=12+20
y=0
while True:
y=y+1
xh+=1
mm+=1
if mm==2*xh:
break
print(y,"年后:",xh,mm)
13.两个乒乓球队进行比赛,各出三人。甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序出三队赛手的名单。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论