Python中如何利用字典实现基于用户输入的位置移动校验逻辑?
实现方案
你不需要手动写每个位置的if判断,直接利用字典的key存在性校验就能实现逻辑,还能适配后续新增的位置和方向,不用改判断代码。
完整可运行代码
levels = { 'Closet': {'South': 'Hangar'}, 'Hangar': {'North': 'Closet', 'East': 'Westwood'}, 'Westwood': {'West': 'Hangar'} } location = "Closet" # 打印当前位置和可选方向,方便用户输入 print(f"当前位置:{location},可选方向:{'、'.join(levels[location].keys())}") direction = input("请输入移动方向:").strip() # 校验&移动逻辑 if location in levels: valid_directions = levels[location] if direction in valid_directions: # 更新位置 location = valid_directions[direction] # 直接读取新位置的所有合法方向 choices = list(levels[location].keys()) print(f"移动成功!新位置:{location},当前可选方向:{'、'.join(choices)}") else: print(f"输入方向不合法,当前位置仅支持:{'、'.join(valid_directions.keys())}") else: print("当前位置不存在于地图配置中")
逻辑说明
- 直接通过
location in levels判断当前位置是否在地图配置里,不用写死位置判断条件 - 每个位置支持的方向直接取对应字典的key校验,不需要为每个位置单独写方向判断
- 移动后的新位置和可选方向全部从
levels字典动态读取,后续新增地图节点只需要修改levels的配置,不需要调整逻辑代码
运行效果示例
当你输入
South时,输出为:
移动成功!新位置:Hangar,当前可选方向:North、East
完全匹配你需要的实现效果。
内容的提问来源于stack exchange,提问作者Christos Nikitopoulos
相关产品推荐
相关产品推荐

