#!/usr/bin/env python3

from random import randint

print('\nЗадача 1\n')

# Задача-1:
# Дан список, заполненный произвольными целыми числами, получите новый список,
# элементами которого будут квадратные корни элементов исходного списка,
# но только если результаты извлечения корня не имеют десятичной части и
# если такой корень вообще можно извлечь
# Пример: Дано: [2, -5, 8, 9, -25, 25, 4]   Результат: [3, 5, 2]

numbers = [2, -5, 8, 9, -25, 25, 4]
print(numbers)
answer = []

for number in numbers:
    if number > 0 and number**0.5 == int(number**0.5):
        answer.append(int(number**0.5))

print(answer)


print('\nЗадача 2\n')

# Задача-2: Дана дата в формате dd.mm.yyyy, например: 02.11.2013.
# Ваша задача вывести дату в текстовом виде, например: второе ноября 2013 года.
# Склонением пренебречь (2000 года, 2010 года)

months = {
        1: 'января', 2: 'февраля', 3: 'марта', 4: 'апреля', 5: 'мая',
        6: 'июня', 7: 'июля', 8: 'августа', 9: 'сентября', 10: 'октября',
        11: 'ноября', 12: 'декабря'
        }

days1 = {
        1: 'первое', 2: 'второе', 3: 'третье', 4: 'четвёртое', 5: 'пятое',
        6: 'шестое', 7: 'седьмое', 8: 'восьмое', 9: 'девятое', 10: 'десятое',
        11: 'одиннадцатое', 12: 'двенадцатое', 13: 'тринадцатое',
        14: 'четырнадцатое', 15: 'пятнадцатое', 16: 'шестнадцатое',
        17: 'семнадцатое', 18: 'восемнадцатое', 19: 'девятнадцатое',
        20: 'двадцатое', 30: 'тридцатое'
        }

days2 = {20: 'двадцать ', 30: 'тридцать '}

date = "21.11.2013"

day = int(date[:2])
month = months[int(date[3:5])]
year = int(date[6:])
if day < 21 or day == 30:
    day = days1[day]
else:
    day = days2[day - day % 10] + days1[day % 10]

print(day, month, year, 'года')


print('\nЗадача 3\n')

# Задача-3: Напишите алгоритм, заполняющий список произвольными целыми числами
# в диапазоне от -100 до 100. В списке должно быть n - элементов.
# Подсказка:
# для получения случайного числа используйте функцию randint() модуля random

n = 10
answer = []
print('n =', n)

while n > 0:
    answer.append(randint(-100, 100))
    n -= 1

print('Список:', answer)
print('Длина списка:', len(answer))


print('\nЗадача 4\n')
# Задача-4: Дан список, заполненный произвольными целыми числами.
# Получите новый список, элементами которого будут:
# а) неповторяющиеся элементы исходного списка:
# например, lst = [1, 2, 4, 5, 6, 2, 5, 2], нужно получить
# lst2 = [1, 2, 4, 5, 6]
# б) элементы исходного списка, которые не имеют повторений:
# например, lst = [1 , 2, 4, 5, 6, 2, 5, 2], нужно получить lst2 = [1, 4, 6]

lst = [1, 2, 4, 5, 6, 2, 5, 2]
print('Исходный список', lst, sep='\t\t\t\t')

answer1 = list(set(lst))
answer2 = []
for item in lst:
    if lst.count(item) == 1:
        answer2.append(item)

print('Список с уникальными элементами', answer1, sep='\t\t')
print('Список без повторяющихся элементов', answer2, sep='\t')
