【python】——使用嵌套列表实现游戏角色管理

简介: 【python】——使用嵌套列表实现游戏角色管理

🎯分析:

本案中,使用嵌套列表实现游戏角色管理,列表元素为字典,每个字典存储一个游戏角色。通过对列表元素(字典)的添加、修改、删除和查询等操作实现对游戏角色的管理。


🎯代码编写:

💛前言:

import sys

print('*' * 40)

print('-----------游戏角色管理-----------')

print('1.查询角色')

print('2.添加角色')

print('3.修改角色')

print('4.删除角色')

print('5.显示所有角色')

print('0.退出')

💛输入判断:

# 角色列表

roleList = [{'姓名':'刘备','武力':7}]

while True:

   x = int(input("请输入您要进行的操作的数字:"))    # 读取数字

   if x in [1,2,3,4,5,0]:


💛查询角色:

if x == 1:    # 查询角色

   姓名 = input("请输入您要查找的姓名")

   for role in roleList:

       if 姓名 == role['姓名']:

           print("姓名:%s,武力:%d"%(role['姓名'],role['武力']))

           break

   else:

       print('抱歉,没有查询到该角色')


💛添加角色:

elif x == 2:    # 添加角色

   姓名 = input('请输入姓名:')

   for role in roleList:

       if 姓名 == role['姓名']:

           print('抱歉,该角色已存在,无法再次添加!')

           break

   else:

       武力 = int(input('请输入对应角色的武力:'))

       newrole = {}

       newrole['姓名'] = 姓名

       newrole['武力'] = 武力

       roleList.append(newrole)


💛修改角色:

elif x == 3:    #修改角色

   姓名 = input("请输入您要修改的姓名:")

   for role in roleList:

       if 姓名 == role['姓名']:

           武力 = int(input('请输入新武力:'))

           role['武力'] = 武力

           print('修改角色成功!')

           break

   else:

       print('该角色不存在!')


💛删除角色:

elif x == 4:

   姓名 = input("请输入您要删除的姓名")

   for role in roleList:

       if 姓名 == role['姓名']:

           roleList.remove(role)

           print('删除成功')

           break

   else:

       print("您要删除的人物不存在")


💛总代码:

import sys
print('*' * 40)
print('-----------游戏角色管理-----------')
print('1.查询角色')
print('2.添加角色')
print('3.修改角色')
print('4.删除角色')
print('5.显示所有角色')
print('0.退出')
# 角色列表
roleList = [{'姓名':'刘备','武力':7}]
while True:
    x = int(input("请输入您要进行的操作的数字:"))    # 读取数字
    if x in [1,2,3,4,5,0]:
        if x == 1:    # 查询角色
            姓名 = input("请输入您要查找的姓名")
            for role in roleList:
                if 姓名 == role['姓名']:
                    print("姓名:%s,武力:%d"%(role['姓名'],role['武力']))
                    break
            else:
                print('抱歉,没有查询到该角色')
        elif x == 2:    # 添加角色
            姓名 = input('请输入姓名:')
            for role in roleList:
                if 姓名 == role['姓名']:
                    print('抱歉,该角色已存在,无法再次添加!')
                    break
            else:
                武力 = int(input('请输入对应角色的武力:'))
                newrole = {}
                newrole['姓名'] = 姓名
                newrole['武力'] = 武力
                roleList.append(newrole)
 
        elif x == 3:    #修改角色
            姓名 = input("请输入您要修改的姓名:")
            for role in roleList:
                if 姓名 == role['姓名']:
                    武力 = int(input('请输入新武力:'))
                    role['武力'] = 武力
                    print('修改角色成功!')
                    break
            else:
                print('该角色不存在!')
        elif x == 4:
            姓名 = input("请输入您要删除的姓名")
            for role in roleList:
                if 姓名 == role['姓名']:
                    roleList.remove(role)
                    print('删除成功')
                    break
            else:
                print("您要删除的人物不存在")
        elif x == 5:
            for role in roleList:
                print("姓名:%s,武力:%d" % (role['姓名'], role['武力']))
        else:
            print("退出程序")
            sys.exit(0)
    else:
        print("输入错误,请重新输入!")


🎯转化为其他程序语言(由chatgpt完成):

🥏C语言:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
struct Role {
    char name[20];
    int power;
};
 
void printRole(struct Role role) {
    printf("姓名:%s,武力:%d\n", role.name, role.power);
}
 
int main() {
    printf("****************************************\n");
    printf("-----------游戏角色管理-----------\n");
    printf("1.查询角色\n");
    printf("2.添加角色\n");
    printf("3.修改角色\n");
    printf("4.删除角色\n");
    printf("5.显示所有角色\n");
    printf("0.退出\n");
 
    // 角色列表
    struct Role roleList[100];
    strcpy(roleList[0].name, "刘备");
    roleList[0].power = 7;
    int numRoles = 1;
 
    while (1) {
        int x;
        printf("请输入您要进行的操作的数字:");
        scanf("%d", &x);
 
        if (x == 1) {    // 查询角色
            char name[20];
            printf("请输入您要查找的姓名:");
            scanf("%s", name);
 
            int found = 0;
            for (int i = 0; i < numRoles; i++) {
                if (strcmp(name, roleList[i].name) == 0) {
                    printRole(roleList[i]);
                    found = 1;
                    break;
                }
            }
            if (!found) {
                printf("抱歉,没有查询到该角色\n");
            }
 
        } else if (x == 2) {    // 添加角色
            struct Role newRole;
            printf("请输入姓名:");
            scanf("%s", newRole.name);
 
            int found = 0;
            for (int i = 0; i < numRoles; i++) {
                if (strcmp(newRole.name, roleList[i].name) == 0) {
                    printf("抱歉,该角色已存在,无法再次添加!\n");
                    found = 1;
                    break;
                }
            }
 
            if (!found) {
                printf("请输入对应角色的武力:");
                scanf("%d", &newRole.power);
                roleList[numRoles] = newRole;
                numRoles++;
            }
 
        } else if (x == 3) {    // 修改角色
            char name[20];
            printf("请输入您要修改的姓名:");
            scanf("%s", name);
 
            int found = 0;
            for (int i = 0; i < numRoles; i++) {
                if (strcmp(name, roleList[i].name) == 0) {
                    printf("请输入新武力:");
                    scanf("%d", &roleList[i].power);
                    printf("修改角色成功!\n");
                    found = 1;
                    break;
                }
            }
            if (!found) {
                printf("该角色不存在!\n");
            }
 
        } else if (x == 4) {    // 删除角色
            char name[20];
            printf("请输入您要删除的姓名:");
            scanf("%s", name);
 
            int found = 0;
            for (int i = 0; i < numRoles; i++) {
                if (strcmp(name, roleList[i].name) == 0) {
                    for (int j = i; j < numRoles - 1; j++) {
                        roleList[j] = roleList[j + 1];
                    }
                    numRoles--;
                    printf("删除成功\n");
                    found = 1;
                    break;
                }
            }
            if (!found) {
                printf("您要删除的人物不存在\n");
            }
 
        } else if (x == 5) {    // 显示所有角色
            for (int i = 0; i < numRoles; i++) {
                printRole(roleList[i]);
            }
 
        } else if (x == 0) {    // 退出程序
            printf("退出程序\n");
            exit(0);
 
        } else {    // 输入错误
            printf("输入错误,请重新输入!\n");
        }
    }
 
    return 0;
}


💻Java语言:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
 
public class GameRoleManagement {
    public static void main(String[] args) {
        System.out.println("****************************************");
        System.out.println("-----------游戏角色管理-----------");
        System.out.println("1.查询角色");
        System.out.println("2.添加角色");
        System.out.println("3.修改角色");
        System.out.println("4.删除角色");
        System.out.println("5.显示所有角色");
        System.out.println("0.退出");
 
        // 角色列表
        List<Role> roleList = new ArrayList<>();
        roleList.add(new Role("刘备", 7));
 
        Scanner scanner = new Scanner(System.in);
 
        while (true) {
            System.out.print("请输入您要进行的操作的数字:");
            int x = scanner.nextInt();
 
            if (x == 1) {    // 查询角色
                System.out.print("请输入您要查找的姓名:");
                String name = scanner.next();
 
                boolean found = false;
                for (Role role : roleList) {
                    if (name.equals(role.getName())) {
                        System.out.printf("姓名:%s, 武力:%d\n", role.getName(), role.getPower());
                        found = true;
                        break;
                    }
                }
                if (!found) {
                    System.out.println("抱歉,没有查询到该角色");
                }
 
            } else if (x == 2) {    // 添加角色
                System.out.print("请输入姓名:");
                String name = scanner.next();
 
                boolean found = false;
                for (Role role : roleList) {
                    if (name.equals(role.getName())) {
                        System.out.println("抱歉,该角色已存在,无法再次添加!");
                        found = true;
                        break;
                    }
                }
 
                if (!found) {
                    System.out.print("请输入对应角色的武力:");
                    int power = scanner.nextInt();
                    Role newRole = new Role(name, power);
                    roleList.add(newRole);
                }
 
            } else if (x == 3) {    // 修改角色
                System.out.print("请输入您要修改的姓名:");
                String name = scanner.next();
 
                boolean found = false;
                for (Role role : roleList) {
                    if (name.equals(role.getName())) {
                        System.out.print("请输入新武力:");
                        int power = scanner.nextInt();
                        role.setPower(power);
                        System.out.println("修改角色成功!");
                        found = true;
                        break;
                    }
                }
                if (!found) {
                    System.out.println("该角色不存在!");
                }
 
            } else if (x == 4) {    // 删除角色
                System.out.print("请输入您要删除的姓名:");
                String name = scanner.next();
 
                boolean found = false;
                for (Role role : roleList) {
                    if (name.equals(role.getName())) {
                        roleList.remove(role);
                        System.out.println("删除成功");
                        found = true;
                        break;
                    }
                }
                if (!found) {
                    System.out.println("您要删除的人物不存在");
                }
 
            } else if (x == 5) {    // 显示所有角色
                for (Role role : roleList) {
                    System.out.printf("姓名:%s, 武力:%d\n", role.getName(), role.getPower());
                }
 
            } else if (x == 0) {    // 退出程序
                System.out.println("退出程序");
                System.exit(0);
 
            } else {    // 输入错误
                System.out.println("输入错误,请重新输入!");
            }
        }
    }
}
 
class Role {
    private String name;
    private int power;
 
    public Role(String name, int power) {
        this.name = name;
        this.power = power;
    }
 
    public String getName() {
        return name;
    }
 
    public int getPower() {
        return power;
    }
 
    public void setPower(int power) {
        this.power = power;
    }
}
相关文章
|
2月前
|
人工智能 Python
[oeasy]python089_列表_删除列表项_remove_列表长度_len
本文介绍了Python列表(list)的操作方法,重点讲解了`remove`方法的使用。通过实例演示如何删除列表中的元素,探讨了`ValueError`异常产生的原因,并分析了时间复杂度O(n)的概念。同时提及了`clear`方法清空列表的功能及`len`函数获取列表长度的用法。最后以购物清单为例,展示列表的实际应用场景,并预告快速生成列表的方法将在后续内容中介绍。
144 63
|
15天前
|
JSON API 开发者
深入浅出:拼多多商品列表API接口Python攻略
拼多多是中国领先的社交电商平台,为开发者提供了丰富的API接口,用于集成商品数据到第三方应用。通过Python可以轻松调用这些API获取商品列表。主要步骤包括:1) 安装必要库(如`requests`);2) 使用AppKey和AppSecret获取访问令牌;3) 调用商品列表API,传入参数如商品ID、页码等;4) 解析返回的JSON数据提取所需信息。按照此流程,开发者能够快速实现与拼多多平台的数据交互。
|
16天前
|
人工智能 前端开发 数据处理
如何将Python元组转换为列表
本文介绍了在Python中将元组转换为列表的方法。通过内置的`list()`函数,可以轻松地将一个元组转换为列表。此外,文章还提供了如何使用列表推导式和`itertools.chain()`方法将包含多个元组的列表展平为单一列表的示例。这些方法对于数据处理和转换非常实用,能够帮助开发者高效操作序列类型数据。文中附有代码实例及输出结果,便于理解与实践。
|
1月前
|
机器学习/深度学习 算法 关系型数据库
Python循环进阶:嵌套与控制的深度解析
本文深入探讨Python中嵌套循环的原理与应用,从数学模型到工程实践全面解析。内容涵盖嵌套循环的本质(如笛卡尔积实现、变量作用域)、精细控制技巧(如break/continue、迭代器协议、异常处理),以及性能优化策略(预计算、向量化等)。同时结合树形结构遍历、动态规划、游戏开发等典型场景,提供最佳实践建议。掌握这些技巧,助你突破编程瓶颈,实现复杂问题的优雅解决。
83 6
|
2月前
|
人工智能 索引 Python
[oeasy]python091_列表_索引_index_中括号_索引函数
本文介绍了Python中列表与字符串的索引及index函数用法。通过range生成列表,使用索引[]访问和修改列表元素,index函数查找元素位置。字符串支持索引访问但不可直接修改。还探讨了16进制数在Python中的表示方法,以及日期、月份等特殊字符的Unicode范围。最后总结了列表与字符串操作的区别,并预告后续内容,提供蓝桥云课、GitHub和Gitee链接供进一步学习。
77 21
|
2月前
|
Python 容器
[oeasy]python090_列表_构造_范围_range_start_end_step_步长
本文介绍了Python中列表的生成方法,重点讲解了`range()`函数的使用。通过`range(start, stop, step)`可生成一系列整数,支持正负步长,但不支持小数参数。文章从基础的列表追加、直接赋值到复杂的应用场景(如生成等宽字体的月份列表),结合实例演示了`range()`的灵活性与实用性。最后总结了`range()`的关键特性:前闭后开、支持负数步长,并提供了进一步学习的资源链接。
106 16
|
2月前
|
索引 Python
[oeasy]python092_eval_衡量_转化为列表
本文探讨了 Python 中 `eval` 函数的用法及其与字符串和列表之间的转换关系。通过实例分析,展示了如何使用 `eval` 将字符串转化为对应的数据类型,例如将表示列表的字符串转回列表。同时,文章深入讲解了 `eval` 的工作机制,包括根据本地和全局变量对字符串进行计算的能力。此外,还提醒了命名变量时需避免覆盖内置类名(如 `str`、`int`、`list`)的重要性,以免影响程序正常运行。最后,简要提及字符串和列表索引中负数的应用,并为读者提供了进一步学习的资源链接。
59 2
|
2月前
|
人工智能 Python
[oeasy]python088_列表_清空列表_clear
本文介绍了Python中列表的清空方法`clear`。通过实例讲解了`clear`与将列表赋值为空列表的区别,前者会清空原列表内容,而后者创建新空列表,不影响原列表。文中以收银程序为例,展示了`clear`的实际应用场景,并通过地址观察解释了两者的机制差异。最后总结了相关术语如`list`、`append`、`clear`等,帮助理解列表操作及方法调用的概念。
70 6
|
2月前
|
数据采集 搜索推荐 API
Python 原生爬虫教程:京东商品列表页面数据API
京东商品列表API是电商大数据分析的重要工具,支持开发者、商家和研究人员获取京东平台商品数据。通过关键词搜索、分类筛选、价格区间等条件,可返回多维度商品信息(如名称、价格、销量等),适用于市场调研与推荐系统开发。本文介绍其功能并提供Python请求示例。接口采用HTTP GET/POST方式,支持分页、排序等功能,满足多样化数据需求。
|
3月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。

热门文章

最新文章

推荐镜像

更多