Python字典赋值代码为何先询问Score再询问Name?
为什么代码先询问分数再问姓名?
核心原因是Python的表达式求值规则:在赋值语句中,等号右侧的表达式会被优先执行,之后才会处理左侧的键并完成赋值。
具体到你的代码行 results[input('\nName?: ')] = input('\nScore? '),执行顺序是:
- 第一步:运行等号右边的
input('\nScore? '),程序输出"Score?"并等待你输入分数,这就是你先看到分数提问的原因。 - 第二步:等你输入完分数后,才会运行左侧键位置的
input('\nName?: '),程序输出"Name?"并等待你输入姓名。 - 第三步:把输入的分数作为值,姓名作为键,存入
results字典。
举个实际执行的场景:
- 程序先输出
Score?,你输入85 - 接着程序输出
Name?:,你输入Bob - 最终字典里会存入
{'Bob': '85'}
如果要调整为先问姓名再问分数,只需要把两个输入拆成单独变量再赋值:
results = {} while True: name = input('\nName?: ') score = input('\nScore? ') results[name] = score
内容的提问来源于stack exchange,提问作者Maksym Koliesnikov
相关产品推荐
相关产品推荐

