简介
并不是所有的关卡都有答案,有些只有部分关卡有
python实训答案
Python表达式问题求解(一)※ >>>链接
第1关: 具体值表达式的转换
def print_(x):
if type(x) == float:
print("%.4f" % x)
else:
print(x)
# ********** Begin ********** #
#请在每一题的print语句内完成题目所需的表达式
#第一题
print_(1234%123)
#第二题
print_(90*365*24*3600)
#第三题
print_(123//12)
#第四题
print_(123/12)
#第五题
print_(10**9/(365*24*3600))
#第六题:要求编写两式比较的表达式,输出为True或False
print_(3**3+4**3+5**3==6**3)
#第七题
print_(1.02**365)
print_(1.01**365)
#第八题:要求编写两式比较的表达式,输出为True或False
print_(1.01**3*0.99**2>1.01)
# ********** End ********** #
第2关: Python数学函数
from math import *
def print_(x):
if type(x) == float:
print("%.4f" % x)
else:
print(x)
# ********** Begin ********** #
#请在每一题的print语句内完成题目所需的表达式
#第一题
print_(pi**4+pi**5)
print_(e**6)
print_(pi**4+pi**5-e**6)
#第二题
print_(pi/4)
print_((4*atan(1/5) - atan(1/239)))
#第三题
print_(cos(2*pi/17))
print_(1/16*(-1+sqrt(17)+sqrt(2*(17-sqrt(17)))+2*sqrt(17+3*sqrt(17)-sqrt(2*(17-sqrt(17)))-2*sqrt(2*(17+sqrt(17))))))
print_(cos(2*pi/17) - 1/16*(-1+sqrt(17)+sqrt(2*(17-sqrt(17)))+2*sqrt(17+3*sqrt(17)-sqrt(2*(17-sqrt(17)))-2*sqrt(2*(17+sqrt(17))))))
#第四题
print_(sqrt((1+sqrt(5))/2+2)-(1+sqrt(5))/2)
#第五题
print_(sinh(0.25))
print_((e**0.25-e**(-0.25))/2)
# ********** End ********** #
第3关: 变量与赋值
from math import *
def print_(x):
if type(x) == float:
print("%.4f" % x)
else:
print(x)
# ********** Begin ********** #
#第一题
for temperature in [-271, -100, 0, 100, 1000]:
#请在下面编写代码
F = (9/5) * temperature + 32
#请不要修改下面的代码
print_(F)
print('\n***********************\n')
#第二题
for (m, s, x) in [(0,2,1),(1,2,2),(1,3,4),(1,10,100)]:
# 请在下面编写代码
fx = (1/sqrt(2*pi*s))*exp((-1/2)*((x-m)/s)**2)
# 请不要修改下面的代码
print_(fx)
print('\n***********************\n')
#第三题
for x in [0.0, pi/2, pi, 3*pi/2, 2*pi, 5*pi/2, 3*pi]:
# 请在下面编写代码
sinh = (exp(x) - exp(-x))/2
# 请不要修改下面的代码
print_(sinh)
print('\n***********************\n')
#第四题
g = 9.8
for v0 in [10, 15, 20, 25, 30]:
for t in [0.0, 0.5, 1, 1.5, 2, 2.5, 3]:
# 请在下面编写代码
y = v0 * t - 0.5 * 9.8 * t**2
# 请不要修改下面的代码
print_(y)
print('***********************')
# ********** End ********** #
第4关: 解决实际问题※
from math import *
def print_(x):
if type(x) == float:
print("%.4f" % x)
else:
print(x)
# ********** Begin ********** #
#第一题
for (vin, rin, rout) in [(10, 10, 5), (10, 10, 10), (20, 20, 5), (20, 20, 10)]:
#请在下面编写代码
vout = vin * (rin/rout)**2
#请不要修改下面的代码
print_(vout)
print('\n***********************\n')
#第二题
for (d, p, S) in [(7,300,10000),(7,400,15000),(10,400,12000),(15,400,12000)]:
# 请在下面编写代码
r = ((d * p) / (pi * S))**(1/3)
# 请不要修改下面的代码
print_(r)
print('\n***********************\n')
#第三题
for (P, N, r) in [(300000,10,6.5), (300000,20,6.5),(300000,30,6.5)]:
# 请在下面编写代码
monthR = r/1200
N = N * 12
payPerMonth = (P * monthR * (1+monthR)**N) / ((1+monthR)**N - 1)
# 请不要修改下面的代码
print_(payPerMonth)
print('\n***********************\n')
#第四题
for (m,d,y) in [(1,1,2017), (2,14,2017), (5,1,2017), (6,1,2017),(7,1,2017),(12,25,2017)]:
# 请在下面编写代码
y0 = y - (14 - m)//12
x = y0 + y0//4 - y0//100 + y0//400
m0 = m + 12 * ((14 - m)//12) - 2
d0 = (d + x + (31 * m0)//12)%7
# 请不要修改下面的代码
print_(d0)
print('\n***********************\n')
#第五题
for (x1,y1,x2,y2) in [(48.87,-2.33,37.8,-122.4),(40.89,116.50,37.8,-122.4),(40.89,116.50,48.87,-2.33)]:
# 请在下面编写代码
x1 = radians(x1)
y1 = radians(y1)
x2 = radians(x2)
y2 = radians(y2)
R = 69.1105*1.609
dist = R*acos(sin(x1)*sin(x2)+cos(x1)*cos(x2)*cos(y1-y2))*180/pi
# 请不要修改下面的代码
print_(dist)
print('\n***********************\n')
#第六题
for (t, v) in [(32,10), (32, 100), (40, 10), (40, 100)]:
# 请在下面编写代码
w = 35.74 + 0.6215 * t + (0.4275 * t - 35.75) * (v ** 0.16)
# 请不要修改下面的代码
print_(w)
# ********** End ********** #
Python控制结构(二)※ >>>链接
第1关: 分支结构基础实训
def print_(x):
if type(x) == float:
print("%.4f" % x)
else:
print(x)
#第一题
for temp in [-280, -100, 0, 20, 120, 200]:
#请在下面编写代码
# ********** Begin ********** #
if temp < -273.15:
F = None
else:
F = 9 * temp / 5 + 32
# ********** End ********** #
#请不要修改下面的代码
print_(F)
print('\n***********************\n')
#第二题
for number in [-101.23, -3.14, 0, 12.55, 1908]:
# 请在下面编写代码
# ********** Begin ********** #
if number <= 0:
number = -number
# ********** End ********** #
# 请不要修改下面的代码
print_(number)
print('\n***********************\n')
#第三题
for (num1, num2) in [(12, 34), (-6, -7),(-12, 23), (-273, 0), (0, 199)]:
# 请在下面编写代码
# ********** Begin ********** #
if num1 > num2:
num1, num2 = num2, num1
# ********** End ********** #
# 请不要修改下面的代码
print(num1, ' ', num2)
print('\n***********************\n')
#第四题
for (num1, num2, num3) in [(-231, -321, 123), (100, 0, -99), (-980, -1002, -1), (6,1,2017)]:
# 请在下面编写代码
# ********** Begin ********** #
if num1 > num2:
num1, num2 = num2, num1
if num2 > num3:
num2, num3 = num3, num2
if num1 > num2:
num1, num2 = num2, num1
# ********** End ********** #
# 请不要修改下面的代码
print(num1, num2, num3)
print('\n***********************\n')
#第五题
for (num1, num2) in [(10, 5), (12,34), (89,0), (-100, 23), (789, -123)]:
# 请在下面编写代码
# ********** Begin ********** #
if num2 == 0:
result = None
else:
result = num1 / num2
# ********** End ********** #
# 请不要修改下面的代码
print_(result)
print('\n***********************\n')
#第六题
for (a, b, c) in [(1,2,1), (1,-2,1), (1,2,-3), (12, 34, 56), (78, 89, 100)]:
# 请在下面编写代码
# ********** Begin ********** #
sqrt = b*b - 4*a*c
if sqrt >= 0:
root1 = (-b + sqrt**0.5) / (2*a)
root2 = (-b - sqrt ** 0.5) / (2 * a)
else:
root1, root2 = None, None
# ********** End ********** #
# 请不要修改下面的代码
print(root1, root2)
print('\n***********************\n')
#第七题
for x in [-9, -8, -7, -6, -5, -2, -1, 0, 1, 2, 3, 4, 5, 6, 7, 8]:
# 请在下面编写代码
# ********** Begin ********** #
if -10 <= x < -8:
fx = x - 2
elif -8 <= x < -6:
fx = x + 3
elif -6 <= x <= -2:
fx = x*x
elif -2 < x < 2:
if x < 0:
fx = -x
else:
fx = x
elif 2 <= x <= 4:
fx = x**3
elif 4 < x <= 6:
fx = 3*x - 4
elif 6 < x <= 8:
fx = 4*x + 1
# ********** End ********** #
# 请不要修改下面的代码
print_(fx)
第2关: 循环结构基础实训
from random import *
from math import *
r = []
for i in [10, 200,300,400,500,600,700,800,900,1000]:
seed(i)
r.append(randint(1, i))
#第一题
#请在下面编写代码
# ********** Begin ********** #
print('摄氏温度\t\t华氏温度')
print('*'*20)
for temp in range(-40, 55, 5):