Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ############################################
- ############# ПЕРВАЯ ЗАДАЧА ##############
- ############################################
- line = input() # Ввод первой строки
- cnt = 1 # Счетчик строк
- while 'star' not in line.lower(): # строка приводится к нижнему регистру и в ней не должно быть "star"
- if cnt == 1: # если первая строка
- word = line.split()[0] # то разбиваем ее с вписок и берем первый элемент (первое слово)
- print((word[0].upper() + word[1:]) * len(word)) # Первую букву делаем большой, остальные не меняем. Дублируем
- elif cnt == 2: # Если вторая строка
- first, last = line[0], line[-1] # Получаем первый и последний ее символ first и last
- print(line.replace(first, last)) # и выводим эту строку, заменив символы first на символы last
- elif cnt == 3: # Если третья строка
- s = '' # Сюда будем по символам собирать измененную строку
- for i in range(len(line)):
- if i % 4 == 0: # Каждый четвертый символ
- s += str(i) # будет заменен числом - его индексом
- else:
- s += line[i] # остальные символы не меняем и приклеиваем по одному к s
- print(s)
- elif cnt == 4: # Четвертую строку
- print(line) # Не изменяем
- line = input() # Ввод следующей строки
- cnt += 1 # Увеличиваем счетчик строк
- if cnt == 5: # Если строка пятая
- cnt = 1 # то сбрасываем счетчик и будем работать с ней как с первой
- ############################################
- ############# ВТОРАЯ ЗАДАЧА ##############
- ############################################
- melodii = input().split('&') # Создаем список мелодий
- for i in range(len(melodii)): # чтобы преобразовать мелодии пройдемся по индексам списка мелодий
- if ' ' in melodii[i] and melodii[i].replace(' ', '').isalnum():
- # Если есть пробелы, значит в мелодии несколько слов. Проверяем, что она состоит ТОЛКО из букв и цифр методом isalnum()
- # НО сначала надо убрать все пробелы, чтобы isalnum() на них не реагировал (пробелы - это не алфавит и не цифры)
- w1_list = list(melodii[i].lower().split()[0]) # Делаем все маленькие буквы. Берем первое (индекс 0) слово
- w2_list = list(melodii[i].lower().split()[-1]) # и последнее слово. Делаем из них СПИСКИ (методом list())
- for ii in range(len(w1_list)): # Надо первую букву сделать заглавной. Проходимся в цикле по буквам
- if w1_list[ii].isalpha(): # Если это алфавитный символ
- w1_list[ii] = w1_list[ii].upper() # То делаем его Прописным.
- break # Прерываем цикл тк другие буквы после первой замены не меняем. Они должны остаться маленькими
- for ii in range(len(w2_list)): # со вторым словом(списком w2_list) делаем аналогичную процедуру
- if w2_list[ii].isalpha():
- w2_list[ii] = w2_list[ii].upper()
- break
- melodii[i] = ''.join(w1_list) + ' ' + ''.join(w2_list) # Соединяем эти слова в строки и обратно в список мелодий
- elif ' ' not in melodii[i] and len(melodii[i]) % 3 == 0: # Если мелодия состоит из одного слова и длина кратна трем
- song = list(melodii[i][::3]) # Берем ее каждый третий символ срезом [::3] и превращаем в список song
- for j in range(len(song)):
- if song[j].isupper(): # надо большие буквы сделать маленькими
- song[j] = song[j].lower()
- else:
- song[j] = song[j].upper() # а маленькие - большими.
- melodii[i] = ''.join(song) # Результат (в виде строки) кладем в первоначальный список мелодий
- else:
- melodii[i] = melodii[i].upper()[::-1] # другие мелодии делаем большими буквами и переворачиваем
- print(', '.join(melodii)) # Выводим результат через запятую
- ############################################
- ############# ТРЕТЬЯ ЗАДАЧА ##############
- ############################################
- params = [float(i) for i in input().split(' - ')] # Создаем список из параметров (вещественные числа)
- res_sputniki = set() # Сюда будем помещать подошедшие спутники. (для избавления от дубликатов исп. множество)
- for _ in range(int(input())): # В цикле
- line = input() # Вводим спутники
- name, params_line = line.split(' == ') # Получаем его имя и сроку из параметров
- PARAMS = [float(i) for i in params_line.split("_")] # Превращаем строку параметров в список вещ. чисел PARAMS
- count_good_params = 0 # Для этого спутника заводим счетчик подошедших параметров
- for i in range(len(params)): # Проходимся по всем параметрам спутника (по индексам)
- if params[i] * 0.85 < PARAMS[i] < params[i] * 1.15: # если параметр в пределах +-15 % от эталонного
- count_good_params += 1 # то засчитывем его в счетчик
- if count_good_params >= len(params) * 3 / 4: # Если счетчик насчитал более 3 / 4 от всего кол-ва параметров
- res_sputniki.add(name) # то спутник подходит. Добавляем его в множество
- print(*res_sputniki, sep='\n') # Выводим все подошедшие спутники, каждый с новой строки
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement