import random

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

# spisok = [random.randint(-25, 25) for i in range(0, 10)]
spisok = [2, -5, 8, 9, -25, 25, 4]
print('Произвольный список: ', spisok)

spisok_new = []
for element in spisok:
    if element >= 0:
        element = element ** 0.5
        if element - int(element) == 0:
            spisok_new.append(int(element))

print('Новый список: ', spisok_new)

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

date = '04.05.2018'
print('Ввели дату: ' + date)

month = ['января', 'февраля', 'марта', 'апреля', 'мая', 'июня',
         'июля', 'августа', 'сентября', 'октября', 'ноября', 'декабря']
days = ['первое', 'второе', 'третье', 'четвёртое',
        'пятое', 'шестое', 'седьмое', 'восьмое',
        'девятое', 'десятое', 'одиннадцатое', 'двенадцатое',
        'тринадцатое', 'четырнадцатое', 'пятнадцатое', 'шестнадцатое',
        'семнадцатое', 'восемнадцатое', 'девятнадцатое', 'двадцатое',
        'двадцать первое', 'двадцать второе', 'двадцать третье',
        'двадацать четвёртое', 'двадцать пятое', 'двадцать шестое',
        'двадцать седьмое', 'двадцать восьмое', 'двадцать девятое',
        'тридцатое', 'тридцать первое']

date = date.split('.')
if 0 < int(date[0]) - 1 <= len(days) and 0 < int(date[1]) - 1 < len(month) and 0 < int(date[2]) < 9999:
    print('Дата прописью: ' + days[int(date[0]) - 1] + ' ' + month[int(date[1]) - 1] + ' ' + date[2] + ' ' + 'года')
else:
    print('Дата введена неверно')

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

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

# n = int(input('Введите длину списка'))
n = 25
print('Установлена длина списка: ', n)

spisok = [random.randint(-100, 100) for i in range(0, n)]

print('Сформированный список:\n', spisok)

# Задача-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]

print('\nЗадача №4\n')

spisok = [random.randint(0, 10) for i in range(0, 10)]
# spisok = [1, 2, 4, 5, 6, 2, 5, 2]
print('Исходный список:\n', spisok)
spisok1 = set(spisok)
print('Список без повторений:\n', spisok1)
spisok2 = []
for element in spisok:
    if spisok.count(element) < 2 and spisok2.count(element) < 1:
        spisok2.append(element)
print('Список с неповторяющимися элементами:\n', spisok2)
