-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtodo_manager_ex1.py
111 lines (87 loc) · 3.58 KB
/
todo_manager_ex1.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
'''
Created on Mar 15, 2016
Copyright (c) 2015-2016 Teodoro Montanaro
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License
@author: tmontanaro
'''
def new_task(tasks_list):
'''
Add a new element to the given list
'''
#ask the user to insert the task she wants to add
string = raw_input("Type the new task:\n>")
# actually add the item to the list
tasks_list.append(string)
print "The new task was successfully added to the list"
# return the modified list
return tasks_list
def remove_task(tasks_list):
'''
Remove an element from the given list
'''
# ask the user to insert the task she wants to remove
string = raw_input("Type the entire content of the task you want to delete:\n>")
# check if the task is actually present in the list
if (string in tasks_list):
tasks_list.remove(string)
print "The element was successfully deleted"
else:
print "The element you specified is not in the list!"
# return the modified list
return tasks_list
def print_sorted_list(tasks_list):
'''
Print the elements of the list, sorted in alphabetic order
'''
# check if the list is empty
if (len(tasks_list) == 0):
print "The list is empty"
else:
# we don't want to modify the real list of elements: we want only to print it after sorting
# there are 2 possibilities:
# a) using the sort method
# temp_tasks_list = tasks_list[:]
# temp_tasks_list.sort()
# print temp_tasks_list
# b) using the sorted method (the sorted method return a new list)
print sorted(tasks_list)
if __name__ == '__main__':
# main program
# initialize the task list
tasks_list = []
# set a variable to False: it will be used to re-execute the program multiple times
ended = False
# keep asking strings until the user types 4 (to exit)
while not ended:
# print the menu every time we finish to perform an operation
print "Insert the number corresponding to the action you want to perform"
print "1: insert a new task"
print "2: remove a task (by typing all its content)"
print "3: show all existing tasks sorted in alphabetic order"
print "4: close the program"
# get the action as input
string = raw_input("Your choice:\n>")
# check if the inserted string is actually a number
# we will ask the user a new input until it will insert a number
while string.isdigit() != True:
# if the string is not a number we will ask a new input
string = raw_input("Wrong input! Your choice:\n>")
# convert the string to int (integer number)
choice = int(string)
# depending on the chosen input we perform the right action
if (choice == 1): # insert a new task
tasks_list = new_task(tasks_list)
elif (choice == 2): # remove a task
tasks_list = remove_task(tasks_list)
elif (choice == 3): # show the list of tasks
print_sorted_list(tasks_list)
elif (choice == 4): # exit
ended = True