失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Python程序设计(第三版)约翰·策勒 编程练习课后答案(第二章)

Python程序设计(第三版)约翰·策勒 编程练习课后答案(第二章)

时间:2018-09-28 15:06:02

相关推荐

Python程序设计(第三版)约翰·策勒 编程练习课后答案(第二章)

2.1修改convert.py程序,打印介绍。

#File: 2.1.py #-*- coding: utf-8 -*-#修改convert.py程序打印介绍。def convert():'温度转换'#函数说明print("This program converts the temperature from Celsius into Fahrenheit.")#打印程序说明print("-------------------------------------------------------------------")celsius = eval(input("What's the Celsius temperature?\n"))fahernheit = 9/5 * celsius + 32print("The tempature is", fahernheit, "degrees Fahrenheit")convert()

方法一:在主函数中使用print函数在程序执行前打印程序介绍(主函数第二行)。

方法二:在主函数的第一行添加函数的说明文档。

出现在函数名下方的字符串就是函数的说明文档。使用说明文档的好处是可以使用help()查看,效果如下:

help()函数是干什么的呢?在Python IDLE中键入help(help)可以查看它的功能。(逻辑似乎有些混乱  ̄へ ̄!)

说明文档是这样写的:

所以,与Linux中的系统帮助命令man类似,Python中的help()用于查看括号内对象的帮助文档。

2.2、在程序结束时添加语句,时程序暂停

在装有Python的系统上,双击.py文件,程序完成后会立即退出。如果在2.1函数末尾添加input("press the <Enter> key to quit."),函数执行到打印温度后会等待,直到键盘键入回车,程序才会结束。

这实际上是利用了Python内置函数input的特性,当input函数被调用时,会在屏幕上打印提示并等待用户键入文本,直到用户键入<Enter>键,input函数才会结束。

2.3、修改avg2.py,找出三个考试成绩的平均值。

def main():print("This program computes the average of three exam scores.")s1, s2, s3 = eval(input("Enter the three scores separated by a comma: ")) #将输入改为三个average = (s1 + s2 + s3)/3print("The average score is: ", average)main()

运行结果:

2.4、使用循环修改convert.py,让它在推退出前执行5次,每次通过循环。程序应该从用户获得另一个温度,并打印转换的值。

#File: 2.4.py #-*- coding: utf-8 -*-#修改convert.py程序,使用循环转换5次温度def convert_5():'5次温度转换'#函数说明print("This program converts the temperature from Celsius into Fahrenheit.")#打印程序说明print("-------------------------------------------------------------------")for i in range(5): #使用for循环将转换语句执行5次celsius = eval(input("What's the Celsius temperature?\n"))fahernheit = 9/5 * celsius + 32print("The tempature is", fahernheit, "degrees fahrenheit")input("Press enter to quit.")convert_5()

运行结果:

2.5、修改convert.py程序,让它计算并打印一个摄氏度和华氏度的对应表,从0℃到100℃,每隔10 ℃一个值

可以通过安装prettytable模块输出表格,这里偷个懒,用格式化输出调整输出数值的长度和距离,产生一个简易的输出表。

#File: 2.5.py #-*- coding: utf-8 -*-#修改convert.py程序,打印摄氏度和华氏度的对应表def printTable():print("This program prints the convertation printTable of Fahrenheit and Celsius.")print("-------------------------------------------------------------------\n")print("Celsius\tFahrenheit\n","-"*20)for celsius in range(0, 110, 10): #使用for循环将转换语句执行11次fahernheit = 9/5 * celsius + 32print("%-7.2f\t%-7.2f"%(celsius, fahernheit)) #输出的温度值长度为7,保留两位小数# input("Press enter to quit.")printTable()

输出结果:

2.6、修改futval.py程序,让投资的年数也由用户输入。确保修改最后的消息,以反映正确的年数。

# File:2.6.py# futval# -*- coding:utf-8 -*-def main():print("This program calculates the future value")print("of a n-year investment.")principal = eval(input("Enter the initial principal: "))apr = eval(input("Enter the annual interest rate: "))year = eval(input("Enter the year of investment: ")) #输入投资年数for i in range(year): #循环次数与年数一致principal = principal * (1 + apr)print("The value in %d years is:"%year, principal) #输出的年数与输入一致main()

2.7、假设你有一个投资计划,每年投资一定固定金额。修改futval.py程序,计算你的投资总累积值。该程序的输入将是每年投资的金额,利率和投资的年数。

程序 终值

输入

principal 每年投资于美元的金额

apr 以十进制表示的每年的年度百分比利率

输出 投资n年后的终值

关系 第n年后的价值为(principal+principal(n - 1))*(1 + apr( n ))

# File:2.7.py# futval# -*- coding:utf-8 -*-def main():print("This program calculates the future value")print("of a n-year investment.")principal = eval(input("Enter the investment of every year: "))apr = eval(input("Enter the annual interest rate of each year: "))#principal和apr都是元组,其中元素不能被修改,所以需要将类型转换为列表principal, apr = list(principal), list(apr)year = len(principal)for i in range(year): #循环次数与年数一致principal[i] = (principal[i-1] + principal[i]) * (1 + apr[i])print("The value in %d years is:"%year, principal[-1]) #输出的年数与输入一致main()

如果觉得《Python程序设计(第三版)约翰·策勒 编程练习课后答案(第二章)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。