Python 程序设计与算法基础教程(第二版)第四章上机实践

第四章上机实践部分参考答案

    • 2.格式化杨辉三角
    • 3.求直角三角形周长和面积
    • 4.随机数
    • 5.党费
    • 6.袖珍计算器
    • 7.判断三边构成三角形
    • 8.鸡兔
    • 9.计算e的x次方近似值
    • 10.平方根
    • 11.余数
    • 12.球的问题
    • 13.猴子吃桃
    • 14.计算Sn=1+11+111+....+11..11

2.格式化杨辉三角

说实话这题一开始我没有什么想法,只能用最蠢的办法

print("1".center(20))
print("1 1".center(20))
print("1 2 1".center(20))
print("1 3 3 1".center(20))
print("1 4 6 4 1".center(20))

Python 程序设计与算法基础教程(第二版)第四章上机实践_第1张图片

3.求直角三角形周长和面积

import math
a=float(input("请输入直角三角形的直角边A(>0):"))
b=float(input("请输入直角三角形的直角边B(>0):"))
c=math.sqrt(a**2+b**2)
sinA=b/c
sinB=a/c
x=round(math.asin(sinA)*180/math.pi,0)
y=round(math.asin(sinB)*180/math.pi,0)
print(str.format("a={0:2.2f},b={1:2.2f},c={2:2.2f}",a,b,c))
print(str.format("三角形周长={0:2.2f},面积 = {1:2.2f}",a+b+c,a*b/2))
print(str.format("三角形两个锐角的度数分别为:{0:2.2f},{1:2.2f}",x,y))

Python 程序设计与算法基础教程(第二版)第四章上机实践_第2张图片

4.随机数

b=random.randint(0,100)
c=random.randint(0,100)
print(str.format("原始值:a={0},b={1},c={2}",a,b,c))
def p1(a,b,c):
    if a<b:
        pass
    else:
        a,b=b,a
    if a<c:
        pass
    else :
        a,c=c,a
    if b<c:
        pass
    else :
        b,c=c,b    
    return a,b,c
def p2(a,b,c): 
    abc=[a,b,c]
    c=max(abc)
    a=min(abc)
    abc.remove(a)
    abc.remove(c)
    b=abc[0]
    return a,b,c
a,b,c = p1(a,b,c)
print(str.format("(方法一)升序值:a={0},b={1},c={2}",a,b,c))
a,b,c = p2(a,b,c)
print(str.format("(方法二)升序值:a={0},b={1},c={2}",a,b,c))

Python 程序设计与算法基础教程(第二版)第四章上机实践_第3张图片

5.党费

m=int(input("请输入有固定工资收入的党员的月工资:"))
if 0<m<=3000:
    s=m*0.005
elif 3000<m<=5000:
    s=m*0.01
elif 5000<m<=10000:
    s=m*0.015
elif m>10000:
    s=m*0.02
print(str.format("月工资 = {0}, 交纳党费:{1}",m,s))      

在这里插入图片描述

6.袖珍计算器

x=float(input("请输入操作数X:"))
y=float(input("请输入操作数Y:"))
z=str(input("请输入操作符:"))
if (z=="+"):
    print(str.format("{0}+{1}={2}",x,y,x+y))
elif (z=="-"):
    print(str.format("{0}-{1}={2}",x,y,x-y))    
elif (z=="*"):
    print(str.format("{0}*{1}={2}",x,y,x*y))    
else:
    if(y==0):print("分母为0,取余异常")
    else:
        print(str.format("{0}/{1}={2}",x,y,x/y))

Python 程序设计与算法基础教程(第二版)第四章上机实践_第4张图片

7.判断三边构成三角形

a=float(input("请输入三角形的边a:"))
b=float(input("请输入三角形的边b:"))
c=float(input("请输入三角形的边c:"))
ma=max(a,b,c)
mi=min(a,b,c)
if(a+b>c and a+b>c and b+c>a):
    if(a==b==c):print("此三角形为等边三角形!")
    elif(a==b or a==c or b==c):print("此三角形为等腰三角形!")
    elif(ma**2==mi**2+(a+b+c-ma-mi)**2):print("此三角形为直角三角形")
    else:print("此三角形是一个普通三角形")
else:print("无法构成三角形")

Python 程序设计与算法基础教程(第二版)第四章上机实践_第5张图片

8.鸡兔

h=int(input("请输入总头数: "))
f=int(input("请输入总脚数: "))
r=1;c=1
while(f%2!=0):
    print("头数必须是偶数")
    f=int(input("请输入总脚数: "))
r=int(f/2-h)
c=int(h-r)
if(f<2*h):print("无解,请重新运行测试!")
else:
    print("方法一:鸡:",c,"只"",""兔: ",r,"只")
for x in range(0,h+1):
    if(2*x+4*(h-x)==f):
        print("方法二:鸡:",x,"只"",""兔: ",h-x,"只")
        break
    if(f<2*h):
        print("无解,请重新运行测试!")
        break

Python 程序设计与算法基础教程(第二版)第四章上机实践_第6张图片

9.计算e的x次方近似值

ex=1
n=1
j=1
x=float(input("请输入x:"))
w=1
while(w/j>=pow(10,-6)):
    w*=x
    j*=n
    n+=1
    ex+=w/j
print("pow(e,x)= ",ex)

在这里插入图片描述

10.平方根

import math
a=float(input("请输入a的值"))
x=a/2
while(abs(x-math.sqrt(a))>pow(10,-6)):
    x=0.5*(x+a/x)
print(x)

在这里插入图片描述

11.余数

print("0~1000中用3除余2,用5除余3,用7除余2的数有:")
for i in range(0,1001):
    if(i%3==2 and i%5==3 and i%7==2):
        print(str.format("{0:<5}",i),end="")

在这里插入图片描述

12.球的问题

这题其实把我搞到了,老师反复的强调这是临界问题。

r=0
h=100
for i in range(1,11):
    print('小球在第',i,'次落地时,共经过',r,'米')
    r+=h
    h/=2
    print(str.format('第{}次反弹{}米',i,h))

Python 程序设计与算法基础教程(第二版)第四章上机实践_第7张图片

13.猴子吃桃

r=1
for i in range(8,0,-1):
    print(str.format('第{}天桃子数为:{}',i,r))
    r=(r+1)*2

Python 程序设计与算法基础教程(第二版)第四章上机实践_第8张图片

14.计算Sn=1+11+111+…+11…11

import random
n=random.randint(1,10)
t=1
sn=1
def f(n):
    if n==1:return 1
    if n>1:return f(n-1)*10+1
for i in range(1,n):
    sn+=f(i)

Python 程序设计与算法基础教程(第二版)第四章上机实践_第9张图片

你可能感兴趣的:(课后答案)