程序说明:
- 读学生的名字和标记,并把它存到字典里
- 根据字典的价值给学生排序
- 对排名前三的学生给予现金奖励
- 对得分超过950分的学生写感谢信
![enter image description here](https://i.stack.imgur.com/HorbO.png)
我使用了运算符库为学生标记记录程序对词典进行排序,但由于我是根据标记对词典进行排序,因此似乎仅根据第一个数字(从左到右)对词典进行排序,如下所示:
![enter image description here](https://i.stack.imgur.com/5ZpZ8.png)
例如,如果提供的标记是700,80,9,则将标记排序为9,80700。
我猜代码只是检查第一个数字,如果发现它大于另一个数字的第一个数字(尽管第二个数字大于第一个数字),第一个数字只会显示为更大。你知道吗
Tags:
您是基于字符串值而不是整数值排序的。你需要把标记转换成整数。按整数排序时,855>;9。当它们像字符串一样排序时,情况并非如此。你知道吗
首先,不要上传你的代码截图。使用编辑器上的代码示例图标发布实际代码。也只包括有问题的函数-秩。你知道吗
以下所有代码都位于
rank
函数的顶部。你知道吗首先,将每个元组的数字元素转换为int:
然后替换
ranked = sorted(students.items(), key=operator.itemgetter(1),reverse=True)
与
sorted(student2, key=lambda x:x[1], reverse=True)
作为奖励,不需要运算符依赖性。你知道吗
您正在输入字符串形式的数字。正如你所看到的,dict用引号表示数字。你必须把数字输入为wither int或float。你知道吗
相关问题 更多 >
编程相关推荐