
# 1 Создать список и заполнить его элементами различных типов данных.
# Реализовать скрипт проверки типа данных каждого элемента. Использовать функцию type() для проверки типа.
# Элементы списка можно не запрашивать у пользователя, а указать явно, в программе.

x = [1,2,'sdsd',True, 'something']
for i in range(len(x)):
    print(type(x[i]))



# 2 Для списка реализовать обмен значений соседних элементов, т.е. Значениями обмениваются элементы
# с индексами 0 и 1, 2 и 3 и т.д. При нечетном количестве элементов последний сохранить на своем месте.
# Для заполнения списка элементов необходимо использовать функцию input()

my_list = []
i = 0
while True:
    x = input('Введите элемент списка, для завершения введите пустое значение:')
    if x == '': break
    my_list.append(x)
print(my_list)
for i in range(0,len(my_list),2):
    if (i + 1) >= len(my_list): break
    my_list[i],my_list[i+1] = my_list[i+1],my_list[i]
print(my_list)


# 3 Пользователь вводит месяц в виде целого числа от 1 до 12.
# Сообщить к какому времени года относится месяц (зима, весна, лето, осень).
# Напишите решения через list и через dict.

my_list = ['зима','зима','весна','весна','весна','лето','лето','лето','осень','осень','осень','зима']
while True:
    x = input('Введите номер месяца:')
    if x.isdecimal() and int(x) > 0 and int(x) <= 12: break
i = int(x)
print('Это время годв -', my_list[i])


my_list = {1:'зима',2:'зима',3:'весна',4:'весна',5:'весна',6:'лето',7:'лето',8:'лето',9:'осень',10:'осень',11:'осень',12:'зима'}
while True:
    x = input('Введите номер месяца:')
    if x.isdecimal() and int(x) > 0 and int(x) <= 12: break
i = int(x)
print('Это время годв -', my_list.get(i))


# 4 Пользователь вводит строку из нескольких слов, разделённых пробелами.
# Вывести каждое слово с новой строки. Строки необходимо пронумеровать.
# Если в слово длинное, выводить только первые 10 букв в слове.


x = input('Введите строку, наполненную смыслом:')
my_list = x.split()
for i in range(len(my_list)):
    print('Слово номер',i+1,':','%.10s' % my_list[i])



# 5. Реализовать структуру «Рейтинг», представляющую собой не возрастающий набор натуральных чисел.
# У пользователя необходимо запрашивать новый элемент рейтинга. Если в рейтинге существуют элементы с
# одинаковыми значениями, то новый элемент с тем же значением должен разместиться после них.
#
# Подсказка. Например, набор натуральных чисел: 7, 5, 3, 3, 2.
#
# Пользователь ввел число 3. Результат: 7, 5, 3, 3, 3, 2.
#
# Пользователь ввел число 8. Результат: 8, 7, 5, 3, 3, 2.
#
# Пользователь ввел число 1. Результат: 7, 5, 3, 3, 2, 1.

my_list = [7, 5, 3, 3, 2]
k = 0
while True:
    while True:
        x = input('Введите натуральное положительное число либо нажмите Enter, чтобы прекратить:')
        if (x.isdecimal()) or x == '': break
    if x == '': break
    y = int(x)
    if y in my_list:
        k = my_list.index(y) + my_list.count(y) - 1
        my_list.insert(k,y)
    else:
        my_list.append(y)
    my_list.sort(reverse=True)
    print(my_list)


# 6. * Реализовать структуру данных «Товары». Она должна представлять собой список кортежей.
# Каждый кортеж хранит информацию об отдельном товаре. В кортеже должно быть два элемента —
# номер товара и словарь с параметрами (характеристиками товара: название, цена, количество,
# единица измерения). Структуру нужно сформировать программно, т.е. запрашивать все данные у пользователя.
# Необходимо собрать аналитику о товарах. Реализовать словарь, в котором каждый ключ — характеристика товара,
# например название, а значение — список значений-характеристик, например список названий товаров.
#
# Пример:
#
# {
#
# “название”: [“компьютер”, “принтер”, “сканер”],
# “цена”: [20000, 6000, 2000],
# “количество”: [5, 2, 7],
# “ед”: [“шт.”]
# }

name = ['название','цена','количество','eд']
x = ['',0,0,'']
i = 0
q = {}
my_list =[]
while True:
    x[0] = input('Введите описание товара, чтобы прекратить нажмите Enter:')
    if x[0] == '': break
    x[1] = int(input('Введите цену товара в рублях:'))
    x[2] = int(input('Введите количество товара:'))
    x[3] = input('Введите единицу измерения товара:')
    q.update({name[0]: x[0], name[1]: x[1], name[2]: x[2], name[3]: x[3]})
    i += 1
    my_list.append((i,q))
print('Введенный список товаров')
print(my_list)

anal = {}
st = [[],[],[],[]]

for n in my_list:
    for k in range(len(st)):
        s = n[1].get(name[k])
        st[k].append(s)

for i in range(len(name)):
    anal.update({name[i]:st[i]})

print('Аналитика по списку товаров')
print(anal)

