diff --git a/Israa_homework.py b/Israa_homework.py new file mode 100644 index 0000000..1fad804 --- /dev/null +++ b/Israa_homework.py @@ -0,0 +1,83 @@ +tasks_info={} +delete_numbers=[] +seq_num=0 + +def get_next_sequence_number(): + global seq_num + if delete_numbers: + return delete_numbers.pop(0) + else: + seq_num+=1 + return seq_num + +def add_task(): + global seq_num + task_name=input('enter the task: ') + task_status='pending' + seq_num=get_next_sequence_number() + tasks_info[seq_num]={'name':task_name,'status':task_status} + print(f'Task {seq_num} is added') + + +def complete_task(): + task_num=int(input('Enter the task number to complete: ')) + if task_num in tasks_info and tasks_info[task_num]['status']!='Delete': + tasks_info[task_num]['status']='Complete' + print(f'Task {task_num} is completed') + else: + print(f'The task {task_num} is not found or already deleted') + +def delete_task(): + task_num=int(input('Enter the task number to delete: ')) + if task_num in tasks_info and tasks_info[task_num]['status']!='Delete': + tasks_info[task_num]['status']='Delete' + delete_numbers.append(task_num) + print(f'Task {task_num} is deleted') + else: + print(f'Task {task_num} is not found or already deleted') + +def list_task(): + print('Task List') + if tasks_info: + for seq,task in tasks_info.items(): + if task['status']!='Delete': + print(f'{seq} : {task['name']} - {task['status']}') + else: + print('No tasks available') + +def list_complete(): + if tasks_info.items(): + for seq,task in tasks_info.items(): + if task['status']=='Complete': + print(f'{seq}: {task['name']} is completed') + else: + print('No tasks are completed.') + + +def main(): + while True: + print("Task Manager ") + print("1. Add Task") + print("2. Complete Task") + print("3. Delete Task") + print("4. List All Tasks") + print("5. List Completed Tasks") + print("6. Exit") + + user_input=input('choise number: ') + if user_input=='1': + add_task() + elif user_input=='2': + complete_task() + elif user_input=='3': + delete_task() + elif user_input=='4': + list_task() + elif user_input=='5': + list_complete() + elif user_input=='6': + break + else: + print('Invalid choise, please Try again') + +main() diff --git a/Mohammad_week3_homework.py b/Mohammad_week3_homework.py new file mode 100644 index 0000000..e69de29 diff --git a/asem_week_3_hw.py b/asem_week_3_hw.py new file mode 100644 index 0000000..d28171b --- /dev/null +++ b/asem_week_3_hw.py @@ -0,0 +1,91 @@ +tasks = [] + +while True: + print("\n1. Add Task") + print("2. Complete Task") + print("3. Delete Task") + print("4. List Completed Tasks") + print("5. List All Tasks") + print("6. Exit") + choice = input("Choose an option: ") + + #1. Add Task and with deleted id reuse + if choice == '1': + task_name = input("Enter task name: ") + reused = False + + for i in range(len(tasks)): + if tasks[i]["status"] == "Deleted": + reused_id = tasks[i]["id"] + tasks[i] = { + "id": reused_id, + "name": task_name, + "status": "Pending" + } + print(f"Task added using deleted slot with ID {reused_id}") + reused = True + break + + if not reused: + new_id = len(tasks) + 1 + task = { + "id": new_id, + "name": task_name, + "status": "Pending" + } + tasks.append(task) + print(f"Task added with new ID {new_id}") + + # 2. Complete Task + elif choice == '2': + task_complete = int(input("Enter task ID to mark as completed: ")) + found = False + + for task in tasks: + if task["id"] == task_complete and task["status"] != "Deleted": + task["status"] = "Completed" + print("Task marked as completed.") + found = True + break + + if not found: + print("Task not found or already deleted.") + + # 3. Delete Task + elif choice == '3': + task_delete = int(input("Enter task ID to delete: ")) + found = False + + for task in tasks: + if task["id"] == task_delete and task["status"] != "Deleted": + task["status"] = "Deleted" + print("Task marked as deleted.") + found = True + break + + if not found: + print("Task not found or already deleted.") + + # 4. List Completed Tasks + elif choice == '4': + print("\n Completed Tasks:") + for task in tasks: + if task["status"] == "Completed": + print(f"ID {task['id']}: {task['name']} [Completed]") + + # 5. List All Tasks and sorted by id + elif choice == '5': + print("\n All Tasks:") + def get_task_id(task): + return task["id"] + + for task in sorted(tasks, key=get_task_id): + print(f"ID {task['id']}: {task['name']} [{task['status']}]") + + # 6. Exit + elif choice == '6': + print(" Exiting Task Manager. Goodbye!") + break + + else: + print("Invalid option. Please choose 1–6.") \ No newline at end of file