Skip to content
Merged
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
381 changes: 381 additions & 0 deletions week3_homework.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,381 @@
{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"id": "036d22f2",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"'\\ndef delete_task(task_number):\\n global TaskList\\n # Check if task number exists in TaskList\\n \\n if task_number <1 or task_number > len(TaskList):\\n print(f\" ❌ Task {task_number} not found.\")\\n return\\n else:\\n print(f\"Are you sure you want to delete Task {task_number}? (y/n): \")\\n confirm = input()\\n if confirm.lower() != \\'y\\':\\n print(\" ❌ Task not deleted.\")\\n return\\n else:\\n TaskList = [task for task in TaskList if task[\\'Task Number\\'] != task_number] # filter out the task to be deleted\\n print(f\"✅ Task {task_number} deleted successfully.\")'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"text/plain": [
"'\\n try:\\n if task_number in TaskList:\\n confirm = input(f\"Are you sure you want to delete \\'{task_number}\\'? (y/n): \")\\n if confirm.lower() == \\'y\\':\\n TaskList.remove(task_number) # remove task from list\\n print(f\"✅ {task_number} : deleted successfully!\")\\n #view_customer()##calling to show details.\\n else:\\n print(\" ❌ Task not found.\")\\n except ValueError:\\n print(\"invalid inpt\")'"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
},
{
"name": "stdout",
"output_type": "stream",
"text": [
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
" ✅ Task 'AAAAAAAAAAAA' added with Task Number 1.\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
" ✅ Task 'BBBBBBBBBBBB' added with Task Number 2.\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
" ✅ Task 'SSSSSSSSSSSSS' added with Task Number 3.\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
"\n",
"Task List:\n",
"\n",
"Number Task Name Status \n",
"-------------------------------------------------------\n",
"1 AAAAAAAAAAAA Pending \n",
"2 BBBBBBBBBBBB Pending \n",
"3 SSSSSSSSSSSSS Pending \n",
"\n",
"Total Tasks: 3\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
" ✅ {'Task Number': 2, 'Task Name': 'BBBBBBBBBBBB', 'Status': 'Pending'} : deleted successfully!\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
"\n",
"Task List:\n",
"\n",
"Number Task Name Status \n",
"-------------------------------------------------------\n",
"1 AAAAAAAAAAAA Pending \n",
"3 SSSSSSSSSSSSS Pending \n",
"\n",
"Total Tasks: 2\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
" ✅ Task 'WWWWWWW' added with Task Number 2.\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
"\n",
"Task List:\n",
"\n",
"Number Task Name Status \n",
"-------------------------------------------------------\n",
"1 AAAAAAAAAAAA Pending \n",
"3 SSSSSSSSSSSSS Pending \n",
"2 WWWWWWW Pending \n",
"\n",
"Total Tasks: 3\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
" ✅ {'Task Number': 3, 'Task Name': 'SSSSSSSSSSSSS', 'Status': 'Pending'} : deleted successfully!\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
"\n",
"Task List:\n",
"\n",
"Number Task Name Status \n",
"-------------------------------------------------------\n",
"1 AAAAAAAAAAAA Pending \n",
"2 WWWWWWW Pending \n",
"\n",
"Total Tasks: 2\n",
"\n",
" Task Manger Aplication\n",
"1 : Add Task\n",
"2: complete Task\n",
"3 : Delete Task\n",
"4 : list Task \n",
"5 : list Completed Task\n",
"6 : Exit\n",
"Exiting the program.\n"
]
}
],
"source": [
"##programe task manager application : this program allow user to add,delete,complete and list thier view. \n",
"##auther :Mokhtar\n",
"TaskList = [] # list to store task\n",
"TaskCount = 0 # variable to store task count\n",
"#task_number_delete = None # variable to store task number to delete\n",
"# function to add task\n",
"def add_task(task_name):\n",
" global TaskCount\n",
" ### Punt num 4 : check if task number is delete or not :=========================\n",
" ###=========================================================\n",
" used_task_numbers = [task['Task Number'] for task in TaskList] # get list of used task numbers\n",
" task_number_delete = None # initialize task number to delete\n",
" for task1 in range(1,TaskCount+1): # check if task number not in task list\n",
" if task1 not in used_task_numbers:\n",
" task_number_delete = task1 # \n",
" break\n",
" if task_number_delete is not None:\n",
" task = {\n",
" 'Task Number': task_number_delete,\n",
" 'Task Name': task_name,\n",
" 'Status': 'Pending' \n",
" }\n",
" TaskList.append(task) # add task to list\n",
" print(f\" ✅ Task '{task_name}' added with Task Number {task_number_delete}.\") # print message to user\n",
" else:\n",
" TaskCount += 1\n",
" task ={\n",
" 'Task Number': TaskCount,\n",
" 'Task Name': task_name,\n",
" 'Status': 'Pending' \n",
" }\n",
" TaskList.append(task) # add task to list\n",
" print(f\" ✅ Task '{task_name}' added with Task Number {TaskCount}.\") # print message to user\n",
" \n",
"##=========================================================\n",
"def list_tasks():\n",
" if not TaskList:\n",
" print(\"No tasks found!\")\n",
" return\n",
" \n",
" # Print table header\n",
" print(\"\\nTask List:\")\n",
" print(\"\\n{:<10} {:<30} {:<15}\".format(\"Number\", \"Task Name\", \"Status\"))\n",
" print(\"-\" * 55)\n",
" \n",
" # Print each task\n",
" for task in TaskList:\n",
" print(\"{:<10} {:<30} {:<15}\".format(\n",
" task[\"Task Number\"],\n",
" task[\"Task Name\"][:28] + ('..' if len(task[\"Task Name\"]) > 28 else ''),\n",
" task[\"Status\"][:13] + ('..' if len(task[\"Status\"]) > 13 else '')\n",
" ))\n",
" \n",
" print(f\"\\nTotal Tasks: {len(TaskList)}\")\n",
"## function to complete task\n",
"def compelete_task(task_number):\n",
" for task in TaskList:\n",
" if task['Task Number'] == task_number:\n",
" task['Status'] = 'Completed'\n",
" print(f\"Task {task_number} marked as completed.\")\n",
" return\n",
" print(f\" ✅ Task {task_number} not found.\")\n",
"##========================================================\n",
"\n",
"## fuction to list completed tasks\n",
"def list_completed_tasks():\n",
" completed_tasks = [task for task in TaskList if task['Status'] == 'Completed']\n",
" if not completed_tasks:\n",
" print(\"No completed tasks found.\")\n",
" return\n",
" \n",
" print(\"\\nCompleted Tasks:\")\n",
" print(\"{:<10} {:<30} {:<15}\".format(\"Number\", \"Task Name\", \"Status\"))\n",
" print(\"-\" * 55)\n",
" \n",
" for task in completed_tasks:\n",
" print(\"{:<10} {:<30} {:<15}\".format(\n",
" task[\"Task Number\"],\n",
" task[\"Task Name\"][:28] + ('..' if len(task[\"Task Name\"]) > 28 else ''),\n",
" task[\"Status\"][:13] + ('..' if len(task[\"Status\"]) > 13 else '')\n",
" ))\n",
" print(f\"\\nTotal Completed Tasks: {len(completed_tasks)}\")\n",
" ##=======================================================\n",
"\n",
"def delete_task1(task_number):\n",
" for task in TaskList:\n",
" # if task['Task Number'] == task_number:\n",
" if task_number <1 or task_number > len(TaskList):\n",
" print(f\" ❌ Task {task_number} not found.\")\n",
" return\n",
" elif task['Task Number'] == task_number:\n",
" # TaskList.remove(task)\n",
" confirm = input(f\"Are you sure you want to delete Task {task_number}: '{task['Task Name']}'? (y/n): \")\n",
" if confirm.lower() == 'y':\n",
" TaskList.remove(task)\n",
" print(f\" ✅ {task} : deleted successfully!\")\n",
" return\n",
" else:\n",
" print(\" ❌ Deletion Canceled.\")\n",
" return\n",
" \n",
"##========================================================\n",
"## function to delete task.\n",
"'''\n",
"def delete_task(task_number):\n",
" global TaskList\n",
" # Check if task number exists in TaskList\n",
" \n",
" if task_number <1 or task_number > len(TaskList):\n",
" print(f\" ❌ Task {task_number} not found.\")\n",
" return\n",
" else:\n",
" print(f\"Are you sure you want to delete Task {task_number}? (y/n): \")\n",
" confirm = input()\n",
" if confirm.lower() != 'y':\n",
" print(\" ❌ Task not deleted.\")\n",
" return\n",
" else:\n",
" TaskList = [task for task in TaskList if task['Task Number'] != task_number] # filter out the task to be deleted\n",
" print(f\"✅ Task {task_number} deleted successfully.\")''' # print message to user\n",
" # Delete the task from TaskList \n",
"'''\n",
" try:\n",
" if task_number in TaskList:\n",
" confirm = input(f\"Are you sure you want to delete '{task_number}'? (y/n): \")\n",
" if confirm.lower() == 'y':\n",
" TaskList.remove(task_number) # remove task from list\n",
" print(f\"✅ {task_number} : deleted successfully!\")\n",
" #view_customer()##calling to show details.\n",
" else:\n",
" print(\" ❌ Task not found.\")\n",
" except ValueError:\n",
" print(\"invalid inpt\")'''\n",
"##========================================================\n",
"def list_tasks1():\n",
" if not TaskList: # check if task list is empty\n",
" print(\"No tasks available.\")\n",
" return\n",
" print(\"\\nTask List:\")\n",
" for task in TaskList: # iterate through task list\n",
" # print(f\"Task Number: {task['Task Number']}, Task Name: {task['Task Name']}, Status: {task['Status']}\") # print task details\n",
" \n",
" print(\"{:<10} {:<30} {:<15}\".format(\"Task Number\", \"Task Name\", \"Status\"))\n",
" print(\"-\" * 50)\n",
"\n",
" print(\"{:<10} {:<30} {:<15}\".format(\n",
" task['Task Number'] ,\n",
" task['Task Name'][:28] + ('..' if len(TaskList['Task Name']) > 28 else ''),\n",
" TaskList['Status'][:13] + ('..' if len(TaskList['Status']) > 13 else '')))\n",
" print(f\"\\nTotal Tasks: {len(TaskList)}\")\n",
"\n",
"#function main to display menu and get user input\n",
"##========================================================\n",
"##=================== Main Function =====================\n",
"##========================================================\n",
"\n",
"def main():\n",
" while True:\n",
" print(\"\\n Task Manger Aplication\")\n",
" print(\"1 : Add Task\")\n",
" print(\"2: complete Task\")\n",
" print(\"3 : Delete Task\")\n",
" print(\"4 : list Task \")\n",
" print(\"5 : list Completed Task\")\n",
" print(\"6 : Exit\")\n",
" choice =input(\"Enter your choice (1-6):\")\n",
" if choice == '1':\n",
" task_name = input(\"Enter task name\")\n",
" add_task(task_name)\n",
" elif choice =='2':\n",
" task_number=int(input(\"Enter task number to complete:\"))\n",
" compelete_task(task_number)\n",
" elif choice == '3':\n",
" task_number = int(input(\"Enter task number to delete:\"))\n",
" delete_task1(task_number)\n",
" elif choice == '4': \n",
" list_tasks()\n",
" elif choice == '5':\n",
" list_completed_tasks()\n",
" elif choice == '6':\n",
" print(\"Exiting the program.\")\n",
" break\n",
" else:\n",
" print(\"Invalid choice. Please try again.\") \n",
"if __name__ ==\"__main__\":\n",
" main() # call main function to start the program\n",
"# function to complete task"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.11"
}
},
"nbformat": 4,
"nbformat_minor": 5
}