如何打印字典中分数大于 50 的学生姓名?

How can I print the names of students with scores larger than 50 from a dictionary?

objects = {
"ALI_ELDIYAB": "80.80",
"BILAL_HASSAN": "78",
"DANIA_RAHMANI": "71.20",
"DANIEL_AIGBE": "78",
"HAMD_ALFARES": "72",
"KHALED_AL_SHAIBANI": "74",
"LINA_ISSA": "70",
"LUMA_ABDELAZIZ": "78",
"MARIAM_BASHER": "44",
"MOHAMMED_BINDAGHER": "74.80",
"NADAY_ALHAMMALI": "77.60",
"NISRIIN_ABDI": "67.60",
"OMAR_HAFEZ": "66.80",
"OMAR_SLEIMAN": "83.20",
"OMAR_MOUSTAFA": "77.60",
"RAHAF_IBRAHIM": "68.80",
"RASIL_ALSAKKA": "82",
"SETYA_GHAHREMANI": "82",
"SHARMAAKE_HANDBO": "59.20",
"YAHYA_ABDELBAGI": "64",
"YOUSIF_KASHWAN": "76.40",}

我试过了,但没用

for i in objects:
    if objects.values < '70':
        print(i)  

我认为这应该可以解决问题:

for name, value in objects.items():

    score = float(value)

    if score > 50.0:
        print("{}'s score is pretty good".format(name))

首先想到的是,通过使用字典的 items() 方法,您可以迭代所有条目的键和值。

其次,您必须将分数转换为可比较的类型,如整数或浮点数(在这种情况下,浮点数似乎更适合)以进行比较。

一些参考:https://docs.python.org/3/tutorial/datastructures.html#looping-techniques

您在这里遇到的一个问题是字典中的所有值都是字符串。请查看下面我的示例,了解您要查找的内容:

objects = {
   "ALI_ELDIYAB":"80.80",
   "BILAL_HASSAN":"78",
   "DANIA_RAHMANI":"71.20",
   "DANIEL_AIGBE":"78",
   "HAMD_ALFARES":"72",
   "KHALED_AL_SHAIBANI":"74",
   "LINA_ISSA":"70",
   "LUMA_ABDELAZIZ":"78",
   "MARIAM_BASHER":"44",
   "MOHAMMED_BINDAGHER":"74.80",
   "NADAY_ALHAMMALI":"77.60",
   "NISRIIN_ABDI":"67.60",
   "OMAR_HAFEZ":"66.80",
   "OMAR_SLEIMAN":"83.20",
   "OMAR_MOUSTAFA":"77.60",
   "RAHAF_IBRAHIM":"68.80",
   "RASIL_ALSAKKA":"82",
   "SETYA_GHAHREMANI":"82",
   "SHARMAAKE_HANDBO":"59.20",
   "YAHYA_ABDELBAGI":"64",
   "YOUSIF_KASHWAN":"76.40"
}

for i, ii in objects.items():
    if float(ii) < 70:
        print(i)

这样做是针对字典中的每个键和值,它会检查值(在类型 'float' 中)是否小于 70,然后打印。

您也可以尝试类似的方法:

for i in object.keys():
    if float(object[i]) < 70:
        print("{} has a score of {}".format(i, object[i]))

这会将分数转换为数字(特别是浮点数,因为那里有非整数),然后您可以检查每个分数是否满足您的条件。