Формирование строк через циклы в JavaScript
С помощью циклов можно формировать строки. Давайте для примера сделаем строку, заполненную десятью буквами ‘x’ :
let str = »; for (let i = 0; i < 10; i++) < str += 'x'; >console.log(str); // выведет ‘xxxxxxxxxx’
А теперь сделаем строку ‘12345’ . Для этого будем прибавлять к нашей переменной счетчик цикла:
let str = »; for (let i = 1; i <= 5; i++) < str += i; >console.log(str); // выведет ‘12345’=>
С помощью цикла сформируйте строку, заполненную 5 -тью дефисами.
С помощью цикла сформируйте строку ‘123456789’ .
С помощью цикла сформируйте строку ‘987654321’ .
С помощью цикла сформируйте строку ‘-1-2-3-4-5-6-7-8-9-‘ .
Как вывести цикл в одну строку питон
1) Функция print() имеет параметр end , указывающий какой символ или какую строку выводить после вывода каждого значения (по дефолту переходом на новую строку, т.е. строкой ‘\n’ ). Укажите необходимый разделитель (например пробельной строкой ‘ ‘ ):
for x in range(0, 5): print(x, end=' ') # => 0 1 2 3 4
2) Перед выводом данные можно агрегировать в массив, который затем методом join() соединяем и выводим одной строкой:
array = [] for x in range(0, 5): array.append(str(x)) # => [0, 1, 2, 3, 4] print(' '.join(array)) # => 0 1 2 3 4
При этом все элементы должны быть строковыми объектами, поэтому в цикле мы приводили числа к строкам str(x) .
Как вывести результат цикла for в одну строку? (Без end=»)
Здесь выводится в столбик, а мне нужно чтобы выводилось в строку. Как это можно провернуть без end=» ?
Отслеживать
49.3k 17 17 золотых знаков 57 57 серебряных знаков 101 101 бронзовый знак
задан 16 авг 2020 в 11:09
249 1 1 золотой знак 4 4 серебряных знака 14 14 бронзовых знаков
Чем не устраивает end=» ?
16 авг 2020 в 11:13
Я на tkinter делаю интерфейс для моей программы, и я абсолютно без понятия как в label впихнуть end
16 авг 2020 в 11:18
Тогда стоило задать вопрос по tkinter, а не по print.
16 авг 2020 в 11:20
Похоже, Что Это Проблема XY
16 авг 2020 в 11:20
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Можно распаковать значения списка.
С пробелами:
print(*[x for x in range(15)]) # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Без пробелов:
print(*[x for x in range(15)], sep='') # 01234567891011121314
Отслеживать
ответ дан 16 авг 2020 в 11:16
18.5k 5 5 золотых знаков 24 24 серебряных знака 49 49 бронзовых знаков
Распаковывать можно любые iterable.
16 авг 2020 в 16:12
можно еще так print(».join([str(x) for x in range(15)]))
17 авг 2020 в 4:02
nums = [12,23,34,45,56,67,78,89,12,23,45,78] alt_nums = [] for num in nums: num += 10 alt_nums.append(num) print(alt_nums)
Python: Цикл For
С помощью цикла while решают любую задачу перебора элементов, но его отличает многословность. Для while нужно задавать условие остановки и вводить счетчик. Когда циклов немного, то это нормально, но в реальном коде циклы встречаются на каждом шагу. Поэтому управлять условиями вручную утомительно, особенно когда условие остановки очевидно.
Например, если мы хотим перебрать символы в строке, то компьютер сам может понять, когда строка заканчивается. Для таких ситуаций в Python ввели цикл for . Он сам знает, когда нужно остановиться, так как работает только с коллекциями — наборами элементов, которые нужно перебрать.
Строка — это коллекция, так как состоит из набора символов. Остальные виды коллекций подробно изучаются в другом курсе.
text = 'code' for symbol in text: print(symbol) # => c # => o # => d # => e
В коде выше for проходит по каждому символу в строке, записывает его в переменную symbol и вызывает внутренний блок кода, где эта переменная используется. Имя этой переменной может быть любым. Общая структура цикла for выглядит так: for in .
Посмотрим, как реализовать функцию переворота строки через цикл for :
def reverse_string(text): # Начальное значение result = '' # char - переменная, в которую записывается текущий символ for char in text: # Соединяем в обратном порядке result = char + result # Цикл заканчивается, когда пройдена вся строка return result reverse_string('go!') # => '!og'
Разберем подробно как отрабатывает цикл в примере выше на каждом шаге итераций:
- В первой итерации в цикле result равен пустой строке, char равен первому символу ‘g’. Поэтому в result присваивается символ ‘g’ плюс пустая строка, в итоге сохраняется только символ ‘g’
- На второй итерации result уже хранит символ ‘g’, а char равен следующему символу ‘o’. В result записывается char + result , то есть ‘o’ + ‘g’
- На последней итерации в result хранится строка ‘og’, а char равен последнему символу ‘!’. В result теперь сохраняется ‘og’ + ‘!’
Теперь посчитаем количество упоминаний символа в строке без учета регистра:
# text - произвольный текст # char - символ, который нужно учитывать def chars_count(text, char): # Так как ищем сумму, то начальное значение 0 result = 0 for current_char in text: # приводим все к нижнему регистру, # чтобы не зависеть от текущего регистра if current_char.lower() == char.lower(): result += 1 return result chars_count('hexlet!', 'e') # 2 chars_count('hExlet!', 'e') # 2 chars_count('hExlet!', 'E') # 2 chars_count('hexlet!', 'a') # 0
Советуем поэкспериментировать с примерами выше в интерактивном Replit.
Задание
В одном из предыдущих уроков мы уже написали функцию filter_string() . Напомним, она принимает на вход строку и символ и возвращает новую строку, в которой удалён переданный символ во всех его позициях. На этот раз реализуйте эту функцию с помощью цикла for . Дополнительное условие: регистр исключаемого символа не имеет значения.
text = 'If I look forward I win' filter_string(text, 'i') # 'f look forward wn' filter_string(text, 'O') # 'If I lk frward I win'
Упражнение не проходит проверку — что делать?
Если вы зашли в тупик, то самое время задать вопрос в «Обсуждениях». Как правильно задать вопрос:
- Обязательно приложите вывод тестов, без него практически невозможно понять что не так, даже если вы покажете свой код. Программисты плохо исполняют код в голове, но по полученной ошибке почти всегда понятно, куда смотреть.
В моей среде код работает, а здесь нет
Тесты устроены таким образом, что они проверяют решение разными способами и на разных данных. Часто решение работает с одними входными данными, но не работает с другими. Чтобы разобраться с этим моментом, изучите вкладку «Тесты» и внимательно посмотрите на вывод ошибок, в котором есть подсказки.
Мой код отличается от решения учителя
Это нормально , в программировании одну задачу можно выполнить множеством способов. Если ваш код прошел проверку, то он соответствует условиям задачи.
В редких случаях бывает, что решение подогнано под тесты, но это видно сразу.
Прочитал урок — ничего не понятно
Создавать обучающие материалы, понятные для всех без исключения, довольно сложно. Мы очень стараемся, но всегда есть что улучшать. Если вы встретили материал, который вам непонятен, опишите проблему в «Обсуждениях». Идеально, если вы сформулируете непонятные моменты в виде вопросов. Обычно нам нужно несколько дней для внесения правок.
Кстати, вы тоже можете участвовать в улучшении курсов: внизу есть ссылка на исходный код уроков, который можно править прямо из браузера.
Определения
- Агрегация — Накопление результата во время итераций и работа с ним после цикла.