## příklad knihy – jedná se o slovník s klíči "name", "pages", "read" – nepoužívat v kódu
# {
#    'name': 'Programming with Python 3',
#    'pages': 157,
#    'read': True
# }

bookshelf = [False] * 10 # = [False, False, False, False, False, False, False, False, False, False]

## (0) – funkce zjistí jestli je v "bookshelf" volné místo na dané pozici "position", tj. nachází se na ní hodnota False. Vrátí pravdivostní hodnotu (True → na pozici se nenachází kniha, místo je volné / False → na pozici se nachází kniha, místo není volné). Funkce není bodovaná, používá se ale v dalších funkcích.

def isFree(position):
    # DOPLNIT

print isFree(0) # vypíše True
print isFree(4) # vypíše False

## (1) – funkce přidá na pozici "position" knihu s názvem "name", počtem stran "pages" a hodnotou přečtění "read". Pokud se na pozici "position" už kniha nachází, funkce neudělá nic. Použijte funkci "isFree".

# def addBook(position, name, pages, read = False):
#     # DOPLNIT
# 
# addBook(0, 'A Byte of python', 120, read = True)
# addBook(1, 'Automate the boring stuff with Python', 420)
# addBook(2, 'Python for Informatics', 500, read = True)
# addBook(3, 'Learning Geospatial Analysis with Python', 155)
# addBook(4, 'Python Geospatial Development', 211)
# addBook(5, 'Python for Data Analysis', 362, read = True)
# addBook(5, 'Programming Java', 874)
# 
# print bookshelf # vypíše [{'read': True, 'name': 'A Byte of python', 'pages': 120}, {'read': False, 'name': 'Automate the boring stuff with Python', 'pages': 420}, {'read': True, 'name': 'Python for Informatics', 'pages': 500}, {'read': False, 'name': 'Learning Geospatial Analysis with Python', 'pages': 155}, {'read': False, 'name': 'Python Geospatial Development', 'pages': 211}, {'read': True, 'name': 'Python for Data Analysis', 'pages': 362}, False, False, False, False]
    
## (2) – vrátí index knihy s daným názvem "name" nebo False, pokud se v seznamu kniha s tímto jménem nenachází. Použijte cyklus.

# def findBook(name):
#     # DOPLNIT
#     
# print findBook('A Byte of python') # 0
# print findBook('Python Geospatial Development') # 4
# print findBook('Programming Java') # False
    
## (3) – funkce použije funkci "findBook" a pokud se v seznamu "bookshelf" nachází daná kniha, změní její hodnotu přečtení "read" na True

# def readBook(name):
#     # DOPLNIT
#         
# readBook('A Byte of python')
# readBook('Automate the boring stuff with Python')
# readBook('Programming Java')
# print bookshelf # vypíše [{'read': True, 'name': 'A Byte of python', 'pages': 120}, {'read': True, 'name': 'Automate the boring stuff with Python', 'pages': 420}, {'read': True, 'name': 'Python for Informatics', 'pages': 500}, {'read': False, 'name': 'Learning Geospatial Analysis with Python', 'pages': 155}, {'read': False, 'name': 'Python Geospatial Development', 'pages': 211}, {'read': True, 'name': 'Python for Data Analysis', 'pages': 362}, False, False, False, False]
    
## (4) – funkce odstraní všechny přečtené knihy ze seznamu "bookshelf" (read == True). Tj. knihu v seznamu "bookshelf" nahradí hodnotou False

# def removeReadBooks():
#     # DOPLNIT
# 
# removeReadBooks()
# print isFree(1) # True
# print isFree(3) # False

## (5) – funkce vrátí seznam se jmény "name" všech knih v "bookshelf"

# def namesOfBooks():
#     # DOPLNIT
# 
# print namesOfBooks() # ['Learning Geospatial Analysis with Python', 'Python Geospatial Development']

## BONUS: returns the average number of pages of books in the "bookshelf"

# def averageNumberOfPages():
#     # DOPLNIT
#     
# print averageNumberOfPages() # 183