Python程序语言设计(四)
1.(将摄氏温度转化为华氏温度)编写一个从控制台读取摄氏温度并将他们转变为华氏温度并予以显示的程序。转化公式如下所示:
fahrenheit = (9 / 5)* celsius + 32
celsius = eval(input("Enter degree in Celsius: "))
fahrenheit = (9 / 5) * celsius + 32
print(celsius ,' Celsius is ',fahrenheit,'Fahrenheit' )
2.(计算圆柱体面积)编写一个读取圆柱体的半径和高并利用下面的公式计算圆柱体底面积和体积的程序:
area = radius * radius * π
volume = area * length
[radius,length] = eval(input("Enter the radius and length of a cylinder: "))
PI = 3.141591658
area = radius * radius * PI
volume = area * length
print("The area is ",area)
print("The volume is ",volume)
3.(将英尺数转换为米数)编写一个程序,它读取英尺数然后将它转换成米数并显示结果。一英尺等于0.305米。
feet = eval(input("Enter a value for feet: "))
meters = feet * 0.305
print(feet ,"is" ,meters ,"meters")
4.(将磅转换为千克)编写一个将磅转换为千克的程序。这个程序提示用户输入磅数,转换为千克数并显示结果。一磅等于0.454千克。
pounds = eval(input("Enter a value in pounds: "))
kilograms = pounds * 0.454
print(pounds ,"pounds is ",kilograms,"kilograms")
5.(财务应用程序:计算小费)编写一个读取小计和酬金率然后计算小费以及合计金额的程序。例如:如果用户键入的是10,酬金率是15%,程序就会显示小费是1.5,合计金额是11.5。
[subtotal,gratuity_rate] = eval(input("Enter the subtotal and a gratuity rate: "))
gratuity = subtotal * gratuity_rate
total = subtotal * (1 + gratuity_rate/100)
print("The gratuity is ",gratuity ,"and the total is ",total)
6.(对一个整数中的个位数字求和)编写一个程序,读取一个0到1000之间的整数并计算它个位数字之和。例如:如果一个整数是932,那么它个位数字之和就是14。(提示:使用%来提取数字,使用//运算符来除掉被提取的数字。例如:932%10=2而932//10=93。)这里是一个示例运行。
number = eval(input("Enter a number beween 0 and 1000: "))
number = str(number)
sum = 0
for digits in number:
sum += int(digits)
print("The sum of the digits is ",sum)
7.(计算年数和天数)编写一个程序,提示用户输入分钟数(例如:1 000 000),然后将分钟转换为年数和天数并显示的程序。为了简单起见,假定一年有365天。
minute = eval(input("Enter the number of minutes: "))
hours = minute // 60
days = hours // 24
years = days // 365
approximate_days = days % 365
print(minute ,"minutes is approximately",years ,"years and",approximate_days,"days")
8.(科学:计算能量)编写一个程序,计算将水从初始温度加热到最终温度所需的能量。你的程序应该提示用户输入以千克计算的水量以及水的初始温度和最终温度。计算能量的公式是
Q = M * (fianlTemperature - initialTemperature)* 4184
这里的M是按千克计的水量,温度为摄氏温度,热量Q以焦耳计。
M = eval(input("Enter the amount of water in kilograms:"))
Inital_Temp = eval(input("Enter the initial tempuerature:"))
Final_Temp = eval(input("Enter the final temperature:"))
Q = M * (Final_Temp - Inital_Temp) * 4184
print("The energy needed is ",Q )
9.(科学:风寒温度)室外有多冷?只有温度值是不足以提供答案的。其他因素,例如:风速、相对湿度和光照都对室外寒冷程度有很大影响。在2001年,国家气象局(NMS)实行以新的利用湿度和风速来衡量风寒湿度。这个公式如下所示。
image.png
这里的ta是华氏温度表示的室外温度,而v是以里/每小时计算的 风速。t(wc)是风寒温度。该公式不适用于风速在每小时2里一下或温度在-58华氏度到41华氏度之间的温度和大于等于每小时2里的风速,然后显示风寒温度。
t_a = eval(input("Enter the temperature in Fahrenheit between -58 and 41: "))
if t_a < -58 and t_a > 41:
print("Error:Your enter error! Please return!")
exit()
v = eval(input("Enter the wind speed in miles per hour: "))
if v < 2:
print("Error:Your enter error! Please return!")
exit()
t_wc = 35.74 + 0.6215 * t_a - 35.75 * (v ** 0.16) + 0.4275 * t_a * (v ** 0.16)
print("The wind chill index is ",t_wc)
10.(物理方面:计算跑道长度)假定给出飞机的加速度a和起飞速度v,可以根据以下公式计算出飞机起飞所需要的最短跑道长度。
length=(v×v)/2a
编写一个程序,提示用户输入以米/秒(m/s)为单位的v和以米/秒的平方(m/s²)为单位的a,然后显示最短的跑道长度。
[v,a] = eval(input("Enter speed and acceleration: "))
length = (v ** 2) / (2 * a)
print("The minimum runway length for this airplane is ",length,"meters")
11.(金融应用程序:投资额)加入你想将一笔钱以固定年利率存入账户。如果你希望三年之后账户中有5000美元,你现在需要存多少钱?使用下面的公式可以算出初始存款。
最初存款额=(最终金额值)/(1+月利率)^(月数)
编写一个程序,提示用户输入最终金额值、百分比表示的年利率以及年数,然后显示最初存款额。
Final_money = eval(input("Enter final account value: "))
Years_rate = eval(input("Enter annual interest rate in percent: "))
Years = eval(input("Enter number of years: "))
Months_rate = (Years_rate / 12) / 100
Months = Years * 12
Last_money = Final_money / ((1 + Months_rate ) ** Months )
print("Initial deposit value is ",Last_money)
12.(打印表格)编写一个显示下面表格的程序。
a b a ** b
1 2 1
2 3 8
… … …
5 6 15625
print("{:<6}".format("a"), "{:<6}".format("b"), "{:<6}".format("a ** b"))
print("{:<6}".format(1), "{:<6}".format("2"), "{:<6}".format("1"))
print("{:<6}".format(2), "{:<6}".format("3"), "{:<6}".format("8"))
print("{:<6}".format(3), "{:<6}".format("4"), "{:<6}".format("81"))
print("{:<6}".format(4), "{:<6}".format("5"), "{:<6}".format("1024"))
print("{:<6}".format(5), "{:<6}".format("6"), "{:<6}".format("15625"))
13.(分割数字)编写一个程序,提示用户输入四位整数并以反向顺序显示。
x = eval(input("Enter an integer:"))
y = str(x)
print(y[::-1])
14.(几何方面:三角形的面积)编写一个程序,提示用户输入三角形的三个顶点(x1,y1)、(x2,y2)和(x3,y3)然后显示它的面积。计算三角形面积的公式如下所示。
s = (side1 + side2 + side3)/ 2
area = (s(s-side)(s-side2)(s-side3))^(-1)
[https://zh.numberempire.com/arbitrary_triangle_calculator.php]
x1,y1 = eval(input("Enter fist point for a triangle: "))
x2,y2 = eval(input("Enter second point for a triangle: "))
x3,y3 = eval(input("Enter third point for a triangle: "))
side1 = ((x1 - x2) ** 2 + (y1 - y2) ** 2) ** 0.5
side2 = ((x3 - x2) ** 2 + (y3 - y2) ** 2) ** 0.5
side3 = ((x1 - x3) ** 2 + (y1 - y3) ** 2) ** 0.5
s = (side1 + side2 + side3) / 2
area = (s * (s - side1) * (s - side2) * (s - side3)) ** 0.5
print("The area of the triangle is ",area)
15.(几何方面:正六边形的面积)编写一个程序,提示用户输入正六边形的边长并显示它的面积。计算正六边形面积的公式是((3(3^-1)/2)s·s),其中s是边长。
s = eval(input("Enter the side: "))
area = (s**2) * 3 * (3**0.5) / 2
print("The area of the hexagon is ",area)
16.(物理方面:加速度)平均加速度的定义是速度变化量除以变化所占用的时间,公式如下: a=(v1 - v0) / t
编写一个程序,提示用户输入以米每秒为单位的初始速度v0和末速度v1,以秒为单位速度变化所占用的时间t,然后显示平均加速度。
v0, v1, t = eval(input("Enter v0,v1 and t :"))
a = (v1 - v0) / t
print("The average acceleration is: {:2f}".format(a))
17.(健康应用程序:计算BMI)身体质量指数(BMI)是以体重衡量健康程度的一种指数。以千克为单位的体重除以以米为单位的身高的平方就可以计算它的值。编写一个程序,提示用户输入以磅为单位的体重和以英尺为单位的身高,然后显示BMI的值。注意:1磅等于0.453 592 37千克而1英尺等于0.0254米。
weight = eval(input("Enter weight in poounds: "))
height = eval(input("Enter height in inches: "))
kilogram = weight * 0.45359237
meter = height * 0.0254
BMI = kilogram / (meter ** 2)
print("BMI is:{:2f} ".format(BMI) )
18.(金融应用程序:计算未来投资额)使用下面的公式编写一个读取投资额、年利率和年数然后显示未来投资额的程序:
未来投资额 = 投资额 × (1 + 月投资率)^(月数)
例如,如果你输入金额1000,而年利率为4.25%,年数为1,那么未来投资总额就是1043.33。
amount = eval(input("Enter investment amount:"))
rate = eval(input("Enter annual interest rate:"))
years = eval(input("Enter number of years:"))
accumulateAmount = amount * (1 + rate / 100 / 12)**(years * 12)
print("Accumulated value is {:.2f}".format(accumulateAmount))
20.(金融应用程序:计算利息)如果你知道差额和百分比的年利率,你可以使用线面的公式计算下个月月供利息。
利息 = 差额 × (年利率 / 1200)
编写一个读取差额和年利率,然后显示下个月要付利息的程序。
balance, rate_interest = eval(input("Enter balance and interest rate(e.g.,3 for 3%):"))
interest = balance * (rate_interest / 1200)
print("The interest is {:.5f} ".format(interest))
21.(金融应用程序:复利值)假设你每月存100美元到一个年利率为5%的储蓄账户。因此,月利率是0.05/12=0.00417。第一个月后,账户里的数目变为:
100 * (1 + 0.00417 ) = 100.417
第二个月后,账户里的数目变为:
(100 + 100.417 )* (1 + 0.00417 ) = 201.252
第三个月后,账户里的数目变为:
(100 + 201.252)* (1 + 0.00417)= 302.507
以此类推。
编写一个程序,提示用户键入每月存款数然后显示六个月后的账户总额。
onthly_saving_amount = eval(input("Enter the monthly saving amount: "))
i = 6
rate_mounth = 1 + 0.00417
sum = 0
for x in range(i):
sum = (monthly_saving_amount + sum ) * rate_mounth
print("After the sixth mounth , the account value is {:f}".format(sum))
23.绘制四个圆,提示用户输入半径并在屏幕中央画四个圆。
import turtle
radius = eval(input("请输入圆的半径:"))
turtle.pensize(2)
turtle.circle(radius)
turtle.penup()
turtle.goto(radius * (-2), 0)
turtle.pendown()
turtle.circle(radius)
turtle.penup()
turtle.goto(radius * (-2), radius * (-2))
turtle.pendown()
turtle.circle(radius)
turtle.penup()
turtle.goto(0, radius * (-2))
turtle.pendown()
turtle.circle(radius)
turtle.penup()
turtle.goto(radius, 0)
turtle.pendown()
turtle.hideturtle()
turtle.write("半径 = {:.0f} ".format(radius), font=("Arial", 16, "normal"))
turtle.done()