在lis中发现非唯一值时接收错误代码

2024-04-20 03:14:09 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我们的任务是在列表中查找非唯一项,如果两个“学生”具有相同的学生id号,则返回错误消息。 “您的程序必须至少检测并显示有关以下可能错误的信息: 1如果数据中的两个学生具有相同的学号。 2如果数据集中的某个等级不是7级量表上可能的等级之一[-3,0,2,4,7,10,12]。”

这个列表是一个nxm矩阵,其中n是学生数量,m是作业数量。Example of matrix现在我们知道len通常可以用来比较向量的长度,所以首先我们尝试了下面的代码。你知道吗

import pandas as pd
import numpy as np

#Funktioner:

#Oploadfunktion:

grades = pd.read_csv("mads.csv", sep=",")
grades1=np.array(grades)   
sid=grades1[:,0]   
myset= set(sid)
a=np.size(grades1[:,0])
b=np.size(grades1[0,:]) 
grades2=np.array(grades.iloc[0:a,2:b])


if len(myset)<len(sid):
    print("Student Id used twice")
else: print("All good in the hood")
for i in grades2[i]:
    if i in grades2[i] != **[-3,0,2,4,7,10,12]**:
        print("Grades not valid")
        break
    else:
        print("All good in the hood")

我们知道代码的第一部分告诉我们是否使用了两次student id,但是没有指出它发生在哪里,或者发生的程度。任务的第二部分,如你所见,我们完全迷路了。我们感谢所有的帮助。你知道吗


Tags: 数据代码inid列表数量len错误
1条回答
网友
1楼 · 发布于 2024-04-20 03:14:09

你可以这样反复浏览你的成绩表:

for grade in grades2:

在每次迭代中,将变量等级与允许等级列表中的所有变量进行比较,如下所示:

    if grade not in [-3,0,2,4,7,10,12]:

所以完整的代码是:

for grade in grades2:
    if grade not in [-3,0,2,4,7,10,12]:
        print("Grades not valid, {:}".format(grade))
        break
    else:
        print("All good in the hood")

相关问题 更多 >