Python 实验五 组合数据类型

  • 实验目的
  1. 了解python中组合数据类型
  2. 掌握各种组合数据类型处理函数
  • 实验内容
  1. 已知列表list_1=[7,8,9,10]和list_2=[3,4],请将这两个列表合并位一个列表,并将合并后的列表中的元素按降序排列。
    list_1 = [7, 8, 9, 10]
    list_2 = [3, 4]
    merged_list = list_1 + list_2
    merged_list.sort(reverse=True)
    print(merged_list)
    

  2. 已知元组tup_1=(‘p’,’y’,’t’,[‘o’,’n’]),请向元组的最后一个列表中添加新元素’h’
    list_1 = [7, 8, 9, 10]
    list_2 = [3, 4]
    merged_list = list_1 + list_2
    merged_list.sort(reverse=True)
    print(merged_list)
    

  3. 已知字符串str=’sdfghjkkijuhgfrd’,请统计该字符串中各字母出现的次数
    str_example = 'sdfghjkkijuhgfrd'
    letter_counts = {}
    for letter in str_example:
        if letter.isalpha():
            letter_counts[letter] = letter_counts.get(letter, 0) + 1
    for letter, count in letter_counts.items():
        print(f"{letter}: {count} 次")
    

  4. 已知列表list_1=[1,2,1,2,3,2,5,6,7,5,9],请删除列表中的重复数据。
    list_1 = [1, 2, 1, 2, 3, 2, 5, 6, 7, 5, 9]
    unique_list = list(set(list_1))
    print(unique_list)
    

  5. 请完成实训案例:十大歌手    计票机制    手机通讯录
    def calculate_average_score(scores):
        scores.sort()
        trimmed_scores = scores[1:-1]
        average_score = sum(trimmed_scores) / len(trimmed_scores)
        return average_score
    def main():
        num_players = 3
        num_judges = 10
        all_scores = []
        for _ in range(num_players):
            player_scores = [float(input(f"请输入第{_ + 1}位选手的第{j + 1}个评委的分数: ")) for j in range(num_judges)]
            all_scores.append(player_scores)
        for i, player_scores in enumerate(all_scores):
            average_score = calculate_average_score(player_scores)
            print(f"第{i + 1}位选手的平均分为: {average_score}")
    if __name__ == "__main__":
        main()
    
    class Contact:
        def __init__(self, name, phone_number):
            self.name = name
            self.phone_number = phone_number
    class PhoneBook:
        def __init__(self):
            self.contacts = []
        def add_contact(self, name, phone_number):
            contact = Contact(name, phone_number)
            self.contacts.append(contact)
            print(f"联系人 {name} 已添加到通讯录")
        def view_contacts(self):
            if not self.contacts:
                print("通讯录为空")
            else:
                print("通讯录:")
                for contact in self.contacts:
                    print(f"{contact.name}: {contact.phone_number}")
        def delete_contact(self, name):
            for contact in self.contacts:
                if contact.name == name:
                    self.contacts.remove(contact)
                    print(f"联系人 {name} 已从通讯录中删除")
                    return
            print(f"未找到联系人 {name}")
        def update_contact(self, name, new_phone_number):
            for contact in self.contacts:
                if contact.name == name:
                    contact.phone_number = new_phone_number
                    print(f"联系人 {name} 的联系方式已更新为 {new_phone_number}")
                    return
            print(f"未找到联系人 {name}")
        def search_contact(self, name):
            for contact in self.contacts:
                if contact.name == name:
                    print(f"联系人 {name} 的联系方式为 {contact.phone_number}")
                    return
            print(f"未找到联系人 {name}")
    def main():
        phone_book = PhoneBook()
        while True:
            print("\n请选择操作:")
            print("1. 添加联系人")
            print("2. 查看通讯录")
            print("3. 删除联系人")
            print("4. 修改联系人信息")
            print("5. 查找联系人")
            print("0. 退出")
            choice = input("请输入数字选择操作: ")
            if choice == "1":
                name = input("请输入联系人姓名: ")
                phone_number = input("请输入联系人电话号码: ")
                phone_book.add_contact(name, phone_number)
            elif choice == "2":
                phone_book.view_contacts()
            elif choice == "3":
                name = input("请输入要删除的联系人姓名: ")
                phone_book.delete_contact(name)
            elif choice == "4":
                name = input("请输入要修改的联系人姓名: ")
                new_phone_number = input("请输入新的电话号码: ")
                phone_book.update_contact(name, new_phone_number)
            elif choice == "5":
                name = input("请输入要查找的联系人姓名: ")
                phone_book.search_contact(name)
            elif choice == "0":
                print("程序已退出")
                break
            else:
                print("无效的选择,请重新输入")
    if __name__ == "__main__":
        main()
    
    class Player:
        def __init__(self, name, votes):
            self.name = name
            self.votes = votes
    
    def main():
        num_players = int(input("请输入参赛选手的人数: "))
    
        players = []
        for i in range(num_players):
            name = input(f"请输入第{i + 1}位选手的姓名: ")
            votes = int(input(f"请输入第{i + 1}位选手的票数: "))
            player = Player(name, votes)
            players.append(player)
    
        # 按照票数降序排序
        sorted_players = sorted(players, key=lambda x: x.votes, reverse=True)
    
        # 输出排序后的成绩
        print("\n排名结果:")
        for i, player in enumerate(sorted_players):
            print(f"{i + 1}. {player.name}: {player.votes} 票")
    
    if __name__ == "__main__":
        main()
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值