Yohey's Slow Living

Take a break, have a cup of coffee, and have a nice day.

Python Practice Project #5: To-Do List

今回の学び

・改行は\n

・for index, task in enumerate(task_list, 1): でタスクリストに含まれるタスクの数だけ番号を振り、それをタスクの数だけ繰り返し処理する。

番号の指定にたとえば101と指定した場合、101, 102, 103...と番号を振る。

・ここでfor文を使う理由は、繰り返し処理を簡潔に記述することができるから。

・(追加の学び)二つ以上のリストを組み合わせて繰り返し処理をする場合は、zip()関数を使う。

例:名前と年齢のリストがある場合

age_list = [1, 2, 3]

name_list = ["a", "b", "c"]

for name, age in zip(name_list, age_list):

    print(f"{name}: {age}")

と記述することで、二つのリストに対応した表示ができる。

・def = で関数を作成する。

・breakでwhileループを抜けるのがスマート(最初はexit()と書いて終了させていた)

 

今回作ったTo do listのコード

#Day 5 To-Do List App
task_list = []

def display_tasks():
if not task_list:
print("No tasks available.")
else:
print("-------------")
for index, task in enumerate(task_list, 1):
print(f"{index}. {task}")
print("-------------")

while True:
print("1. Add task")
print("2. View tasks")
print("3. Delete task")
print("4. Exit")
choice = input("Enter your choice: ")

if choice == "1":
task = input("Enter a task: ")
task_list.append(task)
print(f"\nAdded!: {task}\n")

elif choice == "2":
display_tasks()

elif choice == "3":
display_tasks()
delete_task = input("Enter a task number to delete: ")
if not delete_task.isdigit():
print("Invalid input. Please enter a number.")
elif int(delete_task) < 1 or int(delete_task) > len(task_list):
print(f"Invalid task number. Please enter a number between 1 and {len(task_list)}.")
else:
deleted_task = task_list.pop(int(delete_task) - 1)
print(f"{deleted_task} has been deleted!")
print("Updated task list:")
display_tasks()

elif choice == "4":
print("Bye! Have a good day.")
break
else:
print("Invalid input. Please try again.")