Kenneth A.Lambert著的数据结构(用python语言描述)的第一章课后编程答案

 

第6题:工资部门将每个支付周期的雇员信息的列表保存到一个文本文件,

             每一行的格式:<last name><hourly wage><hours worked>

             编写一个程序,让用户输出文件名并且最终向终端输出报表。

自行创建一个txt文件,如下图所示:

代码:

方法一、从txt文件中读取内容,并向excel表格文件写入

  1. import xlwt
  2. word=[]
  3. fileName=input( "请输入文件名:")
  4. f=open(fileName, 'r')
  5. content=f.readlines()
  6. i= 0
  7. for line in content:
  8. line=line.split()
  9. word.append(line)
  10. f.close()
  11. print(word)
  12. w =xlwt.Workbook(encoding = 'utf-8') #创建一个工作簿
  13. ws =w.add_sheet( '1') #创建一个工作表
  14. for i in range(len(content)):
  15. for j in range(len(word[ 0])):
  16. ws.write(i,j,word[i][j])
  17. w.save( 'salary.xls')

最终,产生了一个salary.xls文件,文件内的内容和txt中一致

方法二、从txt文件中读取内容,并在控制台以表格形式展现

  1. from prettytable import PrettyTable
  2. word=[]
  3. fileName=input( "请输入文件名:")
  4. f=open(fileName, 'r')
  5. content=f.readlines()
  6. i= 0
  7. for line in content:
  8. line=line.split()
  9. word.append(line)
  10. f.close()
  11. print(word)
  12. for i in range(len(content)):
  13. if i== 0:
  14. table = PrettyTable(word[ 0])
  15. else:
  16. table.add_row(word[i])
  17. table.reversesort = True
  18. print(table)
结果展示:
  1. +----------+-------------+------------+
  2. | lastName | hoursWorked | hourlyWage |
  3. +----------+-------------+------------+
  4. | Bob | 4 | 80 |
  5. | Ann | 8 | 160 |
  6. | Jack | 6 | 120 |
  7. | Lee | 13 | 260 |
  8. | Steven | 24 | 480 |
  9. +----------+-------------+------------+

第7题:在名为stats.py的模块中定义一些函数:计算列数字的中位数、众数和平均数,以列表为参数,返回一个单个的数字

代码:

  1. #以下函数定义在一个stats.py的文件中,
  2. #当import stats,可调用以下函数
  3. #计算中位数
  4. def median(lst):
  5. if len(lst)% 2== 0:
  6. return lst[len(lst)// 2 -1:len(lst)// 2+ 1]
  7. else:
  8. return lst[len(lst)// 2:len(lst)// 2+ 1]
  9. #计算众数
  10. def mode(lst):
  11. return max(lst.count(x) for x in set(lst))
  12. #计算平均数
  13. def mean(lst):
  14. return sum(lst)/len(lst)

调用自定义模块的步骤(lst是一个列表):

1. 导入该模块:import stats

2.调用函数:stats.median(lst)  or  stats.mode(lst)  or stats.mean(lst)


第8题:编写程序,允许用户在文件的文本中导航。程序提示输入一个文件名,并且输出想要放入到列表中的文本 行, 实际行号范围是从1到文件行数,如果用户输入0,程序退出。否则程序输出和该行号相关的行。

代码:

  1. fileName=input( "请输入文件名:")
  2. addLines=input( "请输入文本:")
  3. f=open(fileName, 'a+')
  4. f.write( '\n'+addLines)
  5. f.seek( 0)
  6. content=f.readlines()
  7. print(content)
  8. f.close()
  9. num= 1
  10. while num:
  11. print( "目前文件的行号范围为1~",len(content))
  12. num=int(input( "请输入一个行号:"))
  13. if num== 0:
  14. break
  15. else:
  16. print(content[num -1])
  17. num= 0

结果实例:

第9、10题:写一个简单的图书馆的软件系统,看我的下一个博客,提供转换门:https://blog.csdn.net/LZH_12345/article/details/79679433

猜你喜欢

转载自blog.csdn.net/weixin_41042404/article/details/81044896