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

字典值提取与修改:员工2%涨幅薪资通知生成作业求助

修正你的薪资通知代码

咱们先聊聊你代码里的几个关键问题:

  • 第一个循环里,你每次都把newsal覆盖成当前员工的涨薪后薪资,但循环结束后newsal只会保留最后一个员工的结果,所以打印的时候所有人的新薪资都一模一样啦。
  • 打印的字符串格式有问题:缺少名字后面的逗号,当前薪资需要固定显示两位小数,而且你用%d格式化浮点数会丢失精度,应该用对应浮点数的格式符。
  • 其实完全没必要复制字典,直接遍历原字典就能完成任务,省掉了多余的步骤。

下面是修正后的代码,两种写法供你选:

方法1:用Python3.6+的f-string(更直观易读)

employeeDatabase = { 'John': 54000.00, 'Judy': 71000.00, 'Albert': 38000.00, 'Alfonzo': 42000.00 }

# 直接遍历字典的键值对,逐个处理员工
for name, current_salary in employeeDatabase.items():
    raise_percent = 0.02
    new_salary = current_salary * (1 + raise_percent)
    # 严格按照预期格式输出,确保薪资小数位数符合要求
    print(f"{name}, your current salary is {current_salary:.2f}. You received a 2% raise. This makes your new salary {new_salary}")

方法2:用旧式字符串格式化(兼容更早Python版本)

employeeDatabase = { 'John': 54000.00, 'Judy': 71000.00, 'Albert': 38000.00, 'Alfonzo': 42000.00 }

for name, current_salary in employeeDatabase.items():
    raise_percent = 0.02
    new_salary = current_salary * (1 + raise_percent)
    print("%s, your current salary is %.2f. You received a 2%% raise. This makes your new salary %f" % (name, current_salary, new_salary))

关键修正点说明:

  1. 用employeeDatabase.items()同时获取员工姓名和当前薪资,遍历起来更直观,不用再通过键去字典里取值。
  2. 在每次循环里单独计算当前员工的新薪资,确保每个员工的结果都能被正确打印,不会被后面的员工覆盖。
  3. 用:.2f格式化当前薪资,强制显示两位小数,和预期输出的格式完全匹配;新薪资直接用浮点数格式输出,和要求的结果一致。
  4. 补上了名字后面的逗号,让语句更通顺,完全贴合预期的输出格式。

运行这段代码后,就能得到你想要的个性化薪资通知啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.07 17:07:47