Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
83 changes: 83 additions & 0 deletions Israa_homework.py
Original file line number Diff line number Diff line change
@@ -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()
Empty file added Mohammad_week3_homework.py
Empty file.
91 changes: 91 additions & 0 deletions asem_week_3_hw.py
Original file line number Diff line number Diff line change
@@ -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.")