2012-12-16 56 views
-4

我必須創建一個程序,要求用戶輸入學生的詳細信息,包括他們的ID號碼(要保存到全局列表)。然後,用戶將返回到主菜單,在那裏要求他們查看添加或刪除。OOP - 創建班級添加到列表然後刪除

我可以添加一個學生,我已經完成了視圖,創建了類等......但是我無法刪除它。我們必須通過輸入他們的ID號碼來刪除我們添加的學生,然後在刪除之後,程序必須確認誰已刪除。

def removeStudent(): 
    std_delete = raw_input("Please enter Students ID number to remove: ") 
    for std in students: 
     if std.studentID == std_delete: 
      print "Student ID",std_delete,"has been deleted" % std.studentID 
      students.remove(std) 
      break 
+2

具體什麼有關刪除一個學生,你有問題? (問題是否需要您完整粘貼您的代碼?) –

+4

請不要使用setter和getter方法。你在編程Python而不是Java。 –

+0

好吧,我張貼它,因爲我不知道需要看到什麼,就像我說我是新來的蟒蛇。我不知道如何從添加的全球列表中刪除學生,這是我需要做的。 – user1907668

回答

0

我想你混淆如何刪除學生實例

std_delete = raw_input("Student To Delete") 
for std in students: 
    if std.studentID == std_delete: 
     print "Student ID %d has been deleted " % std.studentID 
     students.remove(std) 
     break 

,或者您可以使用過濾功能

std_delete = raw_input("Student To Delete") 
students = filter(lambda x: x.studentID != std_delete, students) 
+0

我是tryong這,它不斷提出錯誤說:Traceback(最近調用最後): 文件「/用戶/ Rusowicz /桌面/ python classes.py」,行112,在 removeStudent() 如果std.id == std_delete: AttributeError:學生實例沒有屬性「id」 – user1907668

+0

在這種情況下,您只需要使用文件「/ Users/Rusowicz/Desktop/python classes.py」,第95行,在removeStudent 'std.studentID' –

+0

OMG謝謝!唯一一個剛剛幫助過我的人,並沒有對我說太多的代碼或其他東西!謝謝!!! = d – user1907668

0

這必須是您正在查找的代碼。

def delete_student(id): 
    for student in students: 
     if student.studentID == id: 
      index = students.index(student) 
      break 
    print "Deleted student %s" % students.pop(index)