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

字典键3是否为字符串?学生姓名查询Python代码异常排查

问题解答

问题1:字典中写入的键3是否为字符串类型?

不是的,你定义的字典里的键3是整数类型(int)。从代码里的字典定义dict={1:'윤성준',2:'김희철',3:'강하늘',4:'강철중'}就能看出来,这些键都是不带引号的数字,属于整数;如果是字符串类型的键,会写成'3'(带单/双引号)。

问题2:算法输入3时仅输出'?'的代码排查

你的代码问题出在循环内的return时机错误!

看你的find_name函数:当你输入3之后,循环第一次拿到的键是1,此时a==i(3==1)不成立,代码直接执行return '?',函数就结束了——根本没机会检查后面的键2、3、4!

修正后的代码

student_dict = {1:'윤성준',2:'김희철',3:'강하늘',4:'강철중'}  # 尽量不要用dict当变量名,它是Python内置类型
def find_name(dictionary):
    a = int(input('students number: '))
    for i in dictionary:
        if a == i:
            return dictionary[a]
    # 循环结束后如果没找到匹配的键,再返回'?'
    return '?'

另外补充个小建议:不要用dict作为变量名,因为dict是Python的内置类型名称,用它当变量名会覆盖内置功能,可能引发其他问题,改成student_dict这类更清晰的名字会更好。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.09 08:07:27