跳至主要內容

同济大学Python答疑2

AI悦创原创Python 一对一教学同济大学同济大学PythonPython 一对一教学同济大学同济大学Python大约 6 分钟...约 1945 字

Question1

编写一个职工奖金处理程序。要求如下:

① 输入不超过 10 个职工的工号、姓名和奖金,保存在文件 JJ.txt。文件中的数据格式:90813,张大海,1080.50元

② 从 JJ.txt 中读出数据,然后按奖金从低到高排序,保存在文件 NewJJ.txt

open()
with open("JJ.txt", "w", encoding="utf-8") as f:
    writer = csv.writer(f)
    for i in range(10):
        id = input("请输入第{}位职工的工号:".format(i + 1))
        name = input("请输入第{}位职工的姓名:".format(i + 1))
        bonus = input("请输入第{}位职工的奖金:".format(i + 1))
        writer.writerow([id, name, str(bonus) + "元"])

Question 2

文本文件 Data.csv 中存放了某学习平台的学员姓名、积分、成长值数据,文件内容如图所示:

姓名,积分,成长值
文思敏,12000,12031
李雯,36010,18010
章丽霞,42992,25010
刘毅伟,34400,19021
林奇云,12900,5021

请编写程序,完成如下功能:

  1. 从文件中读出数据
  2. 计算最高成长值、最低成长值和平均成长值,显示并且写入文件 New_Data.csv,如下图所示。
import csv
import numpy as np

# 1. 从文件中读出数据
growth_values = []
with open('Data.csv', 'r', encoding='utf-8') as file:
    reader = csv.reader(file)
    next(reader)  # Skip the header
    for row in reader:
        growth_values.append(int(row[2]))  # Append the growth value

# 2. 计算最高成长值、最低成长值和平均成长值
max_growth = max(growth_values)
min_growth = min(growth_values)
avg_growth = np.mean(growth_values)  # Use numpy to calculate the mean

# 打印结果
print(f"最高成长值: {max_growth}")
print(f"最低成长值: {min_growth}")
print(f"平均成长值: {avg_growth}")

# 写入 New_Data.csv 文件
with open('New_Data.csv', 'w', newline='', encoding='utf-8') as file:
    writer = csv.writer(file)
    writer.writerow(['最高成长值', '最低成长值', '平均成长值'])
    writer.writerow([max_growth, min_growth, avg_growth])

Question 3

从互联网上下载《红楼梦》的某一回组成文本文件 hlm.txt,然后设计一程序统计林黛玉和贾宝玉两个人名在文件中出现的次数。

# 首先打开文件并读取内容
with open('hlm.txt', 'r', encoding='utf-8') as file:
    content = file.read()

# 然后使用 str.count() 函数统计林黛玉和贾宝玉的出现次数
daiyu_count = content.count('林黛玉')
baoyu_count = content.count('贾宝玉')

# 打印结果
print('林黛玉出现的次数:', daiyu_count)
print('贾宝玉出现的次数:', baoyu_count)

补充

在Python中,我们可以创建一个类来对列表进行操作。这个类可以包含各种方法,比如添加元素、删除元素、查找元素等等。下面是一个简单的示例:

class ListOperator:
    def __init__(self):
        self.list = []

    def add_element(self, element):
        self.list.append(element)

    def remove_element(self, element):
        try:
            self.list.remove(element)
        except ValueError:
            print(f"元素{element}不存在于列表中")

    def find_element(self, element):
        if element in self.list:
            return True
        else:
            return False

    def display_list(self):
        return self.list

这个类ListOperator可以执行以下操作:

  • __init__是一个特殊的方法,称为类的构造函数。当我们创建类的新对象时,这个方法会自动调用。在这个例子中,我们在构造函数中初始化了一个空列表。

  • add_element方法接受一个元素作为参数,并将其添加到列表中。

  • remove_element方法试图从列表中删除一个元素。如果元素不存在于列表中,它将打印一条消息。

  • find_element方法检查一个元素是否在列表中。如果在列表中,它返回True,否则返回False。

  • display_list方法返回当前列表的内容。

你可以像这样使用这个类:

my_list = ListOperator()  # 创建一个新的 ListOperator 对象

my_list.add_element("苹果")  # 添加元素 "苹果"
my_list.add_element("香蕉")  # 添加元素 "香蕉"
my_list.add_element("橙子")  # 添加元素 "橙子"

print(my_list.display_list())  # 输出列表内容

my_list.remove_element("香蕉")  # 删除元素 "香蕉"
print(my_list.display_list())  # 输出列表内容

print(my_list.find_element("橙子"))  # 查找元素 "橙子"

在上述代码中,我们首先创建了一个新的ListOperator对象。然后我们使用add_element方法添加了一些元素。然后我们使用display_list方法来打印列表的内容。然后我们使用remove_element方法来删除一个元素。最后,我们使用find_element方法来检查一个元素是否在列表中。

公众号:AI悦创【二维码】

AI悦创·编程一对一

AI悦创·推出辅导班啦,包括「Python 语言辅导班、C++ 辅导班、java 辅导班、算法/数据结构辅导班、少儿编程、pygame 游戏开发、Web、Linux」,全部都是一对一教学:一对一辅导 + 一对一答疑 + 布置作业 + 项目实践等。当然,还有线下线上摄影课程、Photoshop、Premiere 一对一教学、QQ、微信在线,随时响应!微信:Jiabcdefh

C++ 信息奥赛题解,长期更新!长期招收一对一中小学信息奥赛集训,莆田、厦门地区有机会线下上门,其他地区线上。微信:Jiabcdefh

方法一:QQopen in new window

方法二:微信:Jiabcdefh

上次编辑于:
贡献者: AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度