zoukankan      html  css  js  c++  java
  • 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(' '+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
  • 相关阅读:
    困扰我的c++语法
    C++ primer第三章作业
    渔夫捕鱼问题
    JAVA输入输出
    Python学习5——抽象,涉及抽象和结构、函数的自定义、参数、作用域、递归
    牛顿迭代法计算平方根
    Python学习4——条件、循环及其他语句总结
    Python补充1——Python的简单推导
    Python补充2——Python单行注释、整段注释使用方法
    Python补充3——Python中的 split() 函数
  • 原文地址:https://www.cnblogs.com/lightmare/p/10398849.html
Copyright © 2011-2022 走看看