Advertisement
HuanMatus

Untitled

Apr 9th, 2022
885
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 6.90 KB | None | 0 0
  1. ############################################
  2. #############  ПЕРВАЯ ЗАДАЧА  ##############
  3. ############################################
  4.  
  5. line = input()  # Ввод первой строки
  6. cnt = 1  # Счетчик строк
  7. while 'star' not in line.lower():  # строка приводится к нижнему регистру и в ней не должно быть "star"
  8.     if cnt == 1:  # если первая строка
  9.         word = line.split()[0]  # то разбиваем ее с вписок и берем первый элемент (первое слово)
  10.         print((word[0].upper() + word[1:]) * len(word))  # Первую букву делаем большой, остальные не меняем. Дублируем
  11.     elif cnt == 2:  # Если вторая строка
  12.         first, last = line[0], line[-1]  # Получаем первый и последний ее символ first и last
  13.         print(line.replace(first, last))  # и выводим эту строку, заменив символы first на символы last
  14.     elif cnt == 3:  # Если третья строка
  15.         s = ''  # Сюда будем по символам собирать измененную строку
  16.         for i in range(len(line)):
  17.             if i % 4 == 0:  # Каждый четвертый символ
  18.                 s += str(i)  # будет заменен числом - его индексом
  19.             else:
  20.                 s += line[i]  # остальные символы не меняем и приклеиваем по одному к s
  21.         print(s)
  22.     elif cnt == 4:  # Четвертую строку
  23.         print(line)  # Не изменяем
  24.     line = input()  # Ввод следующей строки
  25.     cnt += 1  # Увеличиваем счетчик строк
  26.     if cnt == 5:  # Если строка пятая
  27.         cnt = 1  # то сбрасываем счетчик и будем работать с ней как с первой
  28.  
  29. ############################################
  30. #############  ВТОРАЯ ЗАДАЧА  ##############
  31. ############################################
  32.  
  33. melodii = input().split('&')  # Создаем список мелодий
  34.  
  35. for i in range(len(melodii)):  # чтобы преобразовать мелодии пройдемся по индексам списка мелодий
  36.  
  37.     if ' ' in melodii[i] and melodii[i].replace(' ', '').isalnum():
  38.         # Если есть пробелы, значит в мелодии несколько слов. Проверяем, что она состоит ТОЛКО из букв и цифр методом isalnum()
  39.         # НО сначала надо убрать все пробелы, чтобы isalnum() на них не реагировал (пробелы - это не алфавит и не цифры)
  40.         w1_list = list(melodii[i].lower().split()[0]) # Делаем все маленькие буквы. Берем первое (индекс 0) слово
  41.         w2_list = list(melodii[i].lower().split()[-1])  # и последнее слово. Делаем из них СПИСКИ (методом list())
  42.  
  43.         for ii in range(len(w1_list)):  # Надо первую букву сделать заглавной. Проходимся в цикле по буквам
  44.             if w1_list[ii].isalpha():  # Если это алфавитный символ
  45.                 w1_list[ii] = w1_list[ii].upper()  # То делаем его Прописным.
  46.                 break  # Прерываем цикл тк другие буквы после первой замены  не меняем. Они должны остаться маленькими
  47.  
  48.         for ii in range(len(w2_list)):  # со вторым словом(списком w2_list) делаем аналогичную процедуру
  49.             if w2_list[ii].isalpha():
  50.                 w2_list[ii] = w2_list[ii].upper()
  51.                 break
  52.         melodii[i] = ''.join(w1_list) + ' ' + ''.join(w2_list)  # Соединяем эти слова в строки и обратно в список мелодий
  53.     elif ' ' not in melodii[i] and len(melodii[i]) % 3 == 0: # Если мелодия состоит из одного слова и длина кратна трем
  54.         song = list(melodii[i][::3])  # Берем ее каждый третий символ срезом [::3] и превращаем в список song
  55.         for j in range(len(song)):
  56.             if song[j].isupper():  # надо большие буквы сделать маленькими
  57.                 song[j] = song[j].lower()
  58.             else:
  59.                 song[j] = song[j].upper()  # а маленькие - большими.
  60.  
  61.         melodii[i] = ''.join(song)  # Результат (в виде строки) кладем в первоначальный список мелодий
  62.     else:
  63.         melodii[i] = melodii[i].upper()[::-1]  # другие мелодии делаем большими буквами и переворачиваем
  64. print(', '.join(melodii))  # Выводим результат через запятую
  65.  
  66. ############################################
  67. #############  ТРЕТЬЯ ЗАДАЧА  ##############
  68. ############################################
  69.  
  70. params = [float(i) for i in input().split(' - ')]  # Создаем список из параметров (вещественные числа)
  71. res_sputniki = set()  # Сюда будем помещать подошедшие спутники. (для избавления от дубликатов исп. множество)
  72. for _ in range(int(input())):  # В цикле
  73.     line = input()  # Вводим спутники
  74.     name, params_line = line.split(' == ')  # Получаем его имя и сроку из параметров
  75.     PARAMS = [float(i) for i in params_line.split("_")]  # Превращаем строку параметров в список вещ. чисел PARAMS
  76.     count_good_params = 0  # Для этого спутника заводим счетчик подошедших параметров
  77.  
  78.     for i in range(len(params)):  # Проходимся по всем параметрам спутника (по индексам)
  79.         if params[i] * 0.85 < PARAMS[i] < params[i] * 1.15:  # если параметр в пределах +-15 % от эталонного
  80.             count_good_params += 1  # то засчитывем его в счетчик
  81.     if count_good_params >= len(params) * 3 / 4:  # Если счетчик насчитал более 3 / 4 от всего кол-ва параметров
  82.         res_sputniki.add(name)  # то спутник подходит. Добавляем его в множество
  83.  
  84. print(*res_sputniki, sep='\n')  # Выводим все подошедшие спутники, каждый с новой строки
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement