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

如何修复Python函数无法修改字典键值对取值的问题?

问题修复方案

你的代码里vars['strt']始终为空,核心原因是Python的参数传递逻辑:字符串是不可变类型,把vars['strt']传给inp函数的decidvar参数时,只是传递了空字符串的副本,函数内部给decidvar赋值输入内容,只会修改这个局部变量,根本影响不到原字典里的vars['strt']。

下面给两种简单的修复方式:

方式一:直接操作字典(推荐)

修改inp函数,让它接收字典和键名,这样就能直接修改字典内的对应值:

vars = {'strt': ''}

def inp(var_dict, key, msg):
    print(msg)
    # 直接修改传入的字典对应键的值
    var_dict[key] = input('≥ ')

# 调用时传入字典、目标键名和提示信息
inp(vars, 'strt', "do you want to learn the rules? (y/n)")

if vars['strt'] == 'y':
    rules()  # 假设rules()是你已定义的规则展示函数

方式二:让函数返回输入值

让inp函数返回用户输入的内容,再把返回值赋值给vars['strt']:

vars = {'strt': ''}

def inp(msg):
    print(msg)
    # 返回用户输入的内容
    return input('≥ ')

# 把函数返回值直接赋值给字典的键
vars['strt'] = inp("do you want to learn the rules? (y/n)")

if vars['strt'] == 'y':
    rules()

这两种方式都能实现你要的:输出问题、获取输入并把值存入vars['strt']中。

内容的提问来源于stack exchange,提问作者Matthias Jungheim

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 19:27:22