You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python宝可梦游戏开发:如何将字符串转为对应攻击列表内容

解决方法

你现在的问题是attacks_list只是个字符串,并非实际的攻击列表变量。这里有两种靠谱的解决方式:

方法1:通过全局变量字典获取

Python里全局变量都存在globals()字典中,你可以直接用字符串作为键,取出对应的列表:

squirtle_attacks = ['bubble', 'tailwhip', 'tackle']

active_p = 'squirtle'
attacks_list_name = active_p + '_attacks'
# 从globals字典中取出实际的攻击列表
actual_attacks = globals()[attacks_list_name]
# 把列表转成易读的字符串,还可以给招式名首字母大写
formatted_attacks = ', '.join(attack.capitalize() for attack in actual_attacks)
choice = que(f'Choose one: {formatted_attacks}')

运行后就会显示Choose one: Bubble, Tailwhip, Tackle。

方法2:用字典统一管理宝可梦招式(更推荐)

单独定义每个宝可梦的攻击变量容易混乱,用字典把所有宝可梦的招式存起来更规范,也更易维护:

# 用字典存储所有宝可梦的攻击招式
pokemon_attacks = {
    'squirtle': ['bubble', 'tailwhip', 'tackle'],
    'charmander': ['ember', 'scratch', 'growl']
}

active_p = 'squirtle'
# 直接通过键获取对应宝可梦的攻击列表
actual_attacks = pokemon_attacks[active_p]
formatted_attacks = ', '.join(attack.capitalize() for attack in actual_attacks)
choice = que(f'Choose one: {formatted_attacks}')

这种方式后续加新宝可梦招式时,直接在字典里添加键值对就行,不用单独定义新变量,代码结构更清晰。

内容的提问来源于stack exchange,提问作者Maccabi Hollis

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 13:57:05