python编程入门课后作业答案(Python数字编程第一章练习)
我们从长度开始,在英国和美国,英寸和英里常用来表示长度,而其他大多数国家使用厘米和千米,我来为大家科普一下关于python编程入门课后作业答案?下面希望有你要的答案,我们一起来看看吧!
python编程入门课后作业答案
1.5.3 转换测量单位我们从长度开始,在英国和美国,英寸和英里常用来表示长度,而其他大多数国家使用厘米和千米。
一英寸约等于2.54厘米,我们可以使用乘法运算转换成厘米,然后继而转换成米、千米。例如,我们可以将25.5英寸转换为:
>>> (25.5 * 2.54) / 100
0.6476999999999999
另一方面,1英里大约是1.609千米,我们可以将650英里转换成650*1.609千米:
>>> 650 * 1.609
1045.85
现在再来看一下温度转换——从华氏温度到摄氏温度,以及反向转换。使用以下公式将华氏温度转换为摄氏温度:
其中,C为华氏温度,F为摄氏温度,比如98.6华氏度是人体的正常温度,得到相应的摄氏温度,我们应该这样做:
>>> F = 98.6
>>> (F - 32) * (5/9)
37.0
而若是想将摄氏温度转换为华氏温度,将上述公式变形即可
我们依然可以输入公式进行计算
>>> C = 37
>>> C * (9/5) 32
98.60000000000001
但是一次一次的输入公式是非常麻烦的,我们需要一个单位转换程序,该程序提供给用户一个菜单,用户可以选择要执行的转换,然后输出计算结果,程序如下:
'''
Unit converter : Miles and Kilometers
'''
def print_menu():
print('1. Kilometers to Miles')
print('2. Miles to Kilometers')
def km_to_miles():
km = float(input('Enter distance in kilometers : '))
miles = km / 1.609
print('Distance in miles: {0}'.format(miles))
def miles_to_km():
miles = float(input('Enter distance in Miles : '))
km = miles * 1.609
print('Distance in kilometers: {0}'.format(km))
if __name__ == '__main__':
print_menu() # ①
choice = input('Which conversion would you like to do : ') # ②
if choice == '1':
km_to_miles()
if choice == '2':
miles_to_km()
这个程序比较长,但是不用担心,还是比较简单的。①处,调用print_menu()函数,输出两个菜单选项,用户输入要进行的类型转化即可,然后在②处会记录用户的选择,进入相应的转换函数,转换函数会要求用户输入距离,然后使用相应的公式转换并显示结果。
1. Kilometers to Miles
2. Miles to Kilometers
Which conversion would you like to do : 1 # ①
Enter distance in kilometers : 1000
Distance in miles: 621.5040397762585
可以看到我们选择了千米转换为英里这个函数,输入1000km然后输出了计算结果,大约622英里。
在这里,你可以扩展这个程序,实现厘米,分米,米这些单位与英里英寸的转换。
1.5.4 求二次方程的根我们首先来回顾一下数学中二次方程的求根方法,对于ax^2 bx c = 0这样的二次方程,我们可以根据判定式来描述方程解的形式
- 判定式 > 0,方程有两个根
- 判定式 = 0,方程仅有一根
- 判定式 < 0,方程无解
其中,判定式为b^2 -4ac
其次,给出方程的求根公式:
那么,我们就可以通过给定的一元二次方程的系数a,bc来进行求解
>>> a = 1
>>> b = 2
>>> c = 1
求根公式中均包含和,我们将其命名为A,B
>>> A = - b / (2 * a)
>>> B = (b ** 2 - 4 * a * c) ** 0.5 / (2 * a)
此时即可进行求解
>>> x1 = A B
-1.0
>>> x2 = A - B
-1.0
这个例子中,我们没有判定这个方程是否有解,实际中这样子是行不通的,这里只是给出了求根的一般步骤,下面,给出完整的求根函数
'''
Quadration equation root calculator
'''
def roots(a, b, c):
A = - b / (2 * a)
B = (b ** 2 - 4 * a * c) ** 0.5 / (2 * a)
x1 = A B
x2 = A - B
print('x1 = {0}'.format(x1))
print('x2 = {0}'.format(x2))
if __name__ == '__main__':
a = float(input('Enter a : '))
b = float(input('Enter b : '))
c = float(input('Enter c : '))
if (b ** 2 - 4 * a * c) >= 0:
roots(a, b, c)
else:
print('Equation no roots!')
和刚刚一样,创建三个标签来接收键盘输入的常数a,b,c,如股票判定式大于等于0的话就调用roots()函数进行求解,否则输出方程无解。
Enter a : 1
Enter b : 2
Enter c : 1
x1 = -1.0
x2 = -1.0
事实上,严格来讲,方程无根并不是很准确,判定式小于0的话我们一般认为存在复数根,上述代码稍作修改,即可进行求解,去掉main函数中的判断条件即可
if __name__ == '__main__':
a = float(input('Enter a : '))
b = float(input('Enter b : '))
c = float(input('Enter c : '))
roots(a, b, c)
此时,我们输入一个无根方程,如X^2 x 1 = 0
Enter a : 1
Enter b : 1
Enter c : 1
x1 = (-0.49999999999999994 0.8660254037844386j)
x2 = (-0.5-0.8660254037844386j)
二次方程根求解完毕。
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com