Решение модуля 5.3 Инди-курс программирования на Python

Модуль 5.3 (Цикл for. Обход списков и строк).

Ниже представлены примеры задач с решением на тему Цикл for. Обход списков и строк.

Перед вами список numbers, состоящий из 100 целых чисел

Ваша задачи пройтись в цикле по элементам списка и вывести на экран каждый элемент на отдельной строке

numbers = [99, 50, -16, 9, 47, -62, 5, -64, -68, 85, 11, -20, 16, 96, -43, 46, -25, 33, 81, -30, 64, 66, -11, 60, 3, -5, -1,
 -80, 49, -12, -86, -40, -98, -92, -91, -71, 56, -76, -30, -82, 17, -2, -64, 47, 22, -28, 40, 55, 54, -3, -58, -10,
 -35, -15, -2, -60, 70, 50, -77, 83, -49, 42, 27, -58, -79, -2, -100, -42, -18, 38, 95, 9, 98, -89, -46, 96, 64,
 -35, 41, 94, 1, -90, 29, 23, 39, -3, 11, -65, -64, 52, -69, 32, -14, -49, -28, -11, 85, -75, -6, 15]

# Пройдемся в цикле по элементам списка и выведем их
for number in numbers:
    print(number)

Перед вами список words, состоящий из 100 строк

Ваша задачи пройтись в цикле по элементам списка и вывести на экран только те элементы, длина которых больше 6.

Выводить каждый элемент нужно на отдельной строке в том же порядке, в котором слова расположены в списке words

words = ['require', 'build', 'head', 'land', 'dark', 'seat', 'have', 'five', 'particularly', 'focus', 'moment',
           'visit', 'past', 'turn', 'bad', 'modern', 'once', 'future', 'pay', 'assume', 'himself', 'physical', 'chance',
           'remember', 'better', 'former', 'believe', 'explain', 'reduce', 'whatever', 'theory', 'during', 'enough',
           'wall', 'commercial', 'challenge', 'tell', 'actually', 'include', 'somebody', 'decade', 'by', 'better',
           'would', 'five', 'cost', 'kitchen', 'our', 'affect', 'board', 'practice', 'full', 'instead', 'apply', 'good',
           'past', 'clearly', 'special', 'both', 'analysis', 'peace', 'truth', 'cultural', 'light', 'answer', 'build',
           'each', 'watch', 'buy', 'theory', 'pretty', 'expect', 'account', 'music', 'sell', 'newspaper', 'reach',
           'fish', 'tax', 'employee', 'start', 'most', 'during', 'citizen', 'develop', 'carry', 'only', 'certainly',
           'rock', 'economy', 'risk', 'later', 'one', 'body', 'star', 'they', 'choice', 'appear', 'return', 'sometimes']

# Пройдемся в цикле по элементам списка и выведем только строки длиной больше 6
for word in words:
    if len(word) > 6:
        print(word)

Перед вами список numbers, состоящий из 100 целых чисел

Ваша задача пройтись в цикле по элементам списка и увеличить каждый в 2 раза.

В итоге изначальный список numbers  должен измениться

В качестве ответа распечатайте измененный список numbers

numbers = [-35, 68, -91, 23, -92, -82, -74, 32, 39, -30, -100, -29, 54, 26, 54, -45, 20, 53, -17, 68, -35, 11, 26, -17, 70, 89, -81, -4, 61, -45, 13, 63, -48, -66, -92, -15, -88, -87, -75, 44, -49, -81, 19, -33, -59, 85, -69, -60, 9, -98, 28, 11, 15, -35, -80, 5, -20, -52, -45, 26, 47, -16, 40, -14, -12, 15, 73, -16, 29, -98, 93, -77, 1, 85, 77, 73, 100, -71, 99, 39, 2, -38, 49, -31, 15, 43, 94, -39, -89, -46, -71, 39, -56, 41, -93, 4, -79, 48, 88, -51]

# Пройдемся в цикле по элементам списка и увеличим каждый в 2 раза
for i in range(len(numbers)):
    numbers[i] *= 2

# Выведем измененный список
print(numbers)

Ваша задача создать список из n строк. Программа сперва будет принимать натуральное число n, а затем n строк в каждой отдельной строке. В качестве ответа выведите получившийся список.

n = int(input())     # количество строк
k = []               # новый пустой список 

for i in range(n):
    m = input()      # получаем следующую строку
    k.append(m)      # добавляем его в список
    
print(k)

Входные данные

На первой строке вводится один символ — строчная буква.
На второй строке вводится предложение.

Выходные данные

Нужно вывести список слов (словом считается часть предложения, окружённая символами пустого пространства), в которых присутствует введённая буква в любом регистре, в том же порядке, в каком они встречаются в предложении.

symbol = input().lower()          # Cимвол для поиска
sentence = list(input().split())  # Предложение делим на слова
g = len(sentence)                 # Получаем длину списка

for i in range(g):                # Цикл по списку
    # Если символ нашли в слове то выводим его
    if symbol in sentence[i].lower()  :     
        print(sentence[i])       

Линейный поиск, также известный как последовательный поиск, этот метод используется для поиска элемента в списке. Линейный поиск является одним из базовых алгоритмов, с которым вы должны познакомиться, изучая программирования. Суть алгоритма в следующем: вы должны проверять каждый элемент списка последовательно один за другим, пока не найдете интересующий вас элемент или пока не закончится весь список.

# Считываем список чисел и значение для поиска
numbers = list(map(int, input().split()))
r = int(input())

# Инициализируем переменную для хранения индекса найденного элемента
found_index = -1  # Изначально предполагаем, что элемент не найден

# Проходимся по списку чисел и ищем значение r
for i in range(len(numbers)):
    if numbers[i] == r:
        found_index = i + 1  # Индексация начинается с единицы, поэтому добавляем 1
        break  # Выходим из цикла, как только найден первый элемент

# Проверяем, был ли элемент найден
if found_index != -1:
    print(found_index)
else:
    print("ErrorValue")

На вход программе поступает список из целых чисел. Ваша задача найти в данном списке наименьшее положительное значение. В случае, если положительных значений нет, выведите строку «Empty»

# Получаем список чисел в одну строку через пробел
nums = list(map(int, input().split()))
# Создаем пустой список для нужных чисел
valid_nums = []

# Получаем числа больше 0 и кладем в новый список
for i in nums:
    if i > 0:
        valid_nums.append(i)

# Если новый список пустой выводим Empty
if len(valid_nums) == 0:
    print('Empty')
else:
    # Выводим на экран минимальное число
    print(min(valid_nums))

Напишите программу, которая находит рекордное количество вхождений (не обязательно подряд) символа в строку.

x=list(input().lower())  # делаем из слова список букв
y=[]                     # пустой список для количества символов

for i in x:              # цикл по списку букв в строке
    y.append(x.count(i)) # считаем количество текущей буквы в списке
    
print(max(y))            # находим и выводим максимальное число

Для делимости числа на 11 необходимо, чтобы разность между суммой цифр, стоящих на четных местах, и суммой цифр, стоящих на нечетных местах, делилась на 11.

Требуется написать программу, которая проверит делимость заданного числа на 11.

Входные данные

Программа получает на вход одно натуральное число N, делимость которого надо проверить (1 ≤ N ≤ 1010000).

Выходные данные

Выведите “YES”, если число делится на 11, или “NO” иначе.

# преобразуем число в список 
l = list(map(int,input()))        
chet = 0
nechet = 0          

for i in range(len(l)):  
    if (i)%2==0:        
        chet+=l[i]      # cчитаем суммы четных
    else:
        nechet+=l[i]    # и нечетных разрядов числа
        
if (nechet-chet)%11==0: # условие по свойству делимости 
    print('YES')
else:    
    print('NO')

На вход программе поддается строка, а ваша задача определить сколько символов в данной строке являются цифрами и также найти сумму всех этих цифр. Например, в строке «Комната 1408» содержится 4 цифры и их сумма равна 13.

В качестве ответа необходимо через пробел вывести 2 числа — количество цифр в введенной строке и их сумма

s = input()
sum = 0    # сумма цифр
cnt = 0    # кол-во цифр

for i in (s):
    if ("0" <= i <= "9"): 
        sum += int(i)  #Считаем сумму 
        cnt += 1       #Считаем кол-во
    
print(cnt, sum)

Одна из стандартных задач на программирование. Подумайте над способом ее решения, если не приходит ничего в голову, загляните в подсказку)

Итак, у нас есть последовательность скобочных символов, состоящая только из символов ( и )

Ваша задача определить является ли введенная скобочная последовательность правильной.

Правильная скобочная последовательность (ПСП) называется строка, состоящая только символов «скобок», где каждой закрывающей скобке найдётся соответствующая открывающая. При этом учитывайте, что:

  1. Пустая последовательность является правильной.
  2. Если A – правильная скобочная последовательность, то (A) – правильные скобочные последовательности.
  3. Если A и B – правильные скобочные последовательности, то AB – правильная скобочная последовательность.

Если введенная строка является ПСП, выведите YES, в противном случае — NO.

# Считываем входную строку
s = input()

# Запускаем цикл, который будет выполняться, пока в строке есть подстрока '()'
while '()' in s:
    # Заменяем каждое вхождение '()' на пустую строку, эффективно удаляя пары скобок
    s = s.replace('()', '')

# После выполнения цикла, проверяем значение строки:
# Если строка пуста (все скобки были парно сбалансированы и удалены), выводим 'YES'
# Если в строке остались скобки (не удалены), выводим 'NO'
print('NO' if s else 'YES')

Наша программа принимает на вход последовательность скобочных символов. Ваша задача определить является ли введенная скобочная последовательность правильной.

Правильная скобочная последовательность (ПСП) называется строка, состоящая только из символов «скобки», где каждой закрывающей скобке найдётся соответствующая открывающая (причём того же типа). При этом учитывайте, что:

— Пустая последовательность является правильной.
— Если A – правильная скобочная последовательность, то (A), [A] и {A} – правильные скобочные последовательности.
— Если A и B – правильные скобочные последовательности, то AB – правильная скобочная последовательность.
— Если введенная строка является ПСП, выведите YES, в противном случае — NO.

# список открывающихся и закрывающихся скобок
pairs = {'()', '[]', '{}'}     
# получаем список и чистим его от пробелов
str = input().replace(' ', '') 

# полученную строку делим пополам т.к при нахождении удаляется сразу 2 символа
for _ in range(len(str)//2):    
    for i in pairs:               # в цикле бежим по заготовленному списку скобок
        str = str.replace(i, '')  # если нашли пару удаляем ее из строки
        
if len(str)==0:
    print('YES')
else:
    print('NO')

Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы

Понравилась статья? Поделиться с друзьями:
Подписаться
Уведомить о
guest

1 Комментарий
Новые
Старые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
х8х8лысосут
х8х8лысосут
3 месяцев назад

Решение скобочной задачи через for
s = input()
c = 0
for char in s:
  if c == -1:
    break
  if char == «(«:
    c += 1
  elif char == «)»:
    c -= 1

if c == 0:
  print(«YES»)
else:
  print(«NO»)

1
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x