2016-04-07 12 views
-1

"スケジュール"を作成しようとしています。これは私がそれを行う方法です(下のコード)。この場合 "day_of_the_week [1]"は、次のようになります。火曜日に相当する。この行は、あなただけのただ一つの要素が追加されPython:タスクリストの管理

schedule.add_day() 

との最初の要素を定義し、「範囲外のリストインデックス」

class Task(object): 
    def __init__(self,name,start,end): 
     self.name = name 
     self.start = start 
     self.end = end 



class Day(object): 
    time_available = [] 
    check_time = [] 

    def __init__(self): 
     self.tasks = [] 
     for i in range(24): 
      self.time_available.append(i) 
    def add_task(self,name,start,end): 
     for i in range(start, end + 1, 1): 
      self.check_time.append(i) 
     if set(self.check_time).issubset(self.time_available): 
      # check if timeslot is available 
      for i in range(start, end + 1, 1): 
       self.time_available.remove(i) 
      del self.check_time[:] 
      self.tasks.append(Task(name, start, end)) 
      print "TRUE" 
      return True 
     else: 
      del self.check_time[:] 
      print "FALSE" 
      return False 

     #check if task can be added 





class Schedule(object): 
    def __init__(self): 
     self.day_of_the_week = [] 
    def add_day(self): 
     self.day_of_the_week.append(Day()) 



schedule = Schedule() 
schedule.add_day() 
schedule.add_day() 
schedule.day_of_the_week[0].add_task("swimming", 11, 13) 
schedule.day_of_the_week[0].add_task("swimming", 14, 17) 
schedule.day_of_the_week[0].add_task("swimming", 10, 12) 
schedule.day_of_the_week[1].add_task("swimming", 10, 12) 
schedule.day_of_the_week[1].add_task("swimming", 10, 13) 
+0

スケジュールに追加していない日にタスクを追加しようとしています。 – user2357112

+0

私は「もっと曜日を追加する」と私は、「time_available」がリセットされるように見えることがわかった。私は日[0]に特定のスロットで時間があるかどうかをチェックしていました。現在のように、3番目の水泳タスクは挿入されませんでした。しかし、一度追加すると、それは挿入されます。私の変数は "Day"で正しく宣言されていますか? – algoBaller

+0

彼らは正しく見えません。 'time_available'と' check_time'は何らかの理由でインスタンス変数の代わりにクラス変数として宣言されています。 – user2357112

答えて

0

をエラーが発生します。 最初の要素はインデックス「0」を持ちます。

schedule.day_of_the_week[0].add_task("swimming", 11, 13) 
schedule.day_of_the_week[0].add_task("swimming", 14, 17) 
schedule.day_of_the_week[0].add_task("swimming", 10, 12) 

しかし、その後、あなたがインデックス「1」と2番目のエントリにアクセスしようとする、しかし、1つだけであります。これらの行は、エラーが発生することはありません理由です 。

関連する問題