python编程入门课后作业答案(Python数字编程第一章练习)

我们从长度开始,在英国和美国,英寸和英里常用来表示长度,而其他大多数国家使用厘米和千米,我来为大家科普一下关于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

    分享
    投诉
    首页