- Как разбить строку несколько раз в python?
- 2 ответа 2
- Как в Python повторить строку n раз?
- Использование для цикла
- Используйте оператор повторения «*»
- Используйте функцию split () (статический ввод)
- Используйте функцию split () (ввод пользователя)
- Заключение
- How to print a string multiple times? [closed]
- 10 Answers 10
- Как продублировать ASCII изображение несколько раз в один ряд?
- 2 ответа 2
Как разбить строку несколько раз в python?
Допустим, у меня есть строка: message = «Лебедьракщука» Вместе с этим у меня есть ключ, указывающий на количество символов до каждого пробела: key = 634 Как мне создать список: finally = [‘Лебедь’, ‘рак’, ‘щука’]
2 ответа 2
In [27]: message Out[27]: 'Лебедьракщука' In [28]: key Out[28]: [6, 3, 4] In [29]: def splitWords(word, key): . step = 0 . result = [] . for i in key: . result.append(word[step:i+step]) . step += i . return result . In [30]: splitWords(message, key) Out[30]: ['Лебедь', 'рак', 'щука']
Если он в таком формате, делаем так:
In [1]: key = 634 In [2]: list(map(int, str(key))) Out[2]: [6, 3, 4]
Можно воспользоваться RegEx:
In [62]: key = 634 In [63]: key = list(map(int, str(key))) In [64]: key Out[64]: [6, 3, 4]
import re In [22]: pat = ''.join(['(.>>)'.format(k) for k in key]) In [23]: repl = ' '.join([r'\<>'.format(i) for i in range(1, len(key)+1)]) In [24]: pat Out[24]: '(.)(.)(.)' In [25]: repl Out[25]: '\\1 \\2 \\3' In [26]: re.sub(pat, repl, message) Out[26]: 'Лебедь рак щука' In [27]: re.sub(pat, repl, message).split() Out[27]: ['Лебедь', 'рак', 'щука']
PS но решение от @Alban мне нравится больше.
In [57]: [message[sum(key[:i]) : sum(key[:i+1])] for i in range(len(key))] Out[57]: ['Лебедь', 'рак', 'щука']
In [73]: [print('<> : <>'.format(sum(key[:i]),sum(key[:i+1]))) for i in range(len(key))] 0 : 6 6 : 9 9 : 13
Как в Python повторить строку n раз?
Программирование и разработка
В Python мы используем оператор звездочки для повторения строки. Этот оператор обозначен знаком «*». Этот оператор выполняет итерацию строки n (количество) раз. «N» — это целое число. После повторения создается новая струна. Для операции требуются два аргумента: строка и целочисленное значение. Мы умножили строку на определенное число для повторения строки n раз. Повторение строки объединяет копию в идентичную строку. Оператор звездочка повторяет строку до определенной длины.
Использование для цикла
Для реализации кода Python мы устанавливаем программу «Spyder» версии 5. Создан новый проект для кодирования. Чтобы создать новый файл, мы нажимаем «Ctrl + N» на клавиатуре. Имя нового файла — «untitled.py8»:
Мы определяем функцию. Он содержит два параметра: «a» и «n». Здесь «а» обозначает количество символов. Если «a» больше, чем длина слова, установите «a» и длину слова равными друг другу. Теперь мы используем функцию среза, чтобы сохранить повторяющиеся символы в строке «repeat_string». Здесь инициализируется пустая строка. После этого применяем цикл «for». Цикл повторяет результат и строку repeat_string до «n» раз. В конце концов, мы вызываем операторы печати. Строка, которую мы хотим повторить, является «визуальной»:
На выходе новая строка «visvisvisvisvis» создается путем пятикратного повторения первых трех слов данной строки.
Используйте оператор повторения «*»
Элементы строки повторяются с помощью операции «*». В этом случае мы объявляем функцию с именем «repeat». Эта функция принимает значения слов «b» и «n» в качестве аргументов. Функция len () используется для определения длины слова. Здесь мы применяем условие if. Если «b» больше длины слова, установите «b» равным длине слова:
Здесь мы используем процесс нарезки. Мы используем срезы для хранения повторяющихся элементов в строке. Переменная, используемая для этого процесса, — «repeat _word». Теперь повторение _string умножается на n. Мы используем оператор «*». Слово, используемое для повторения, — «программирование»:
Шесть раз получаем первые четыре символа слова «программирование».
Используйте функцию split () (статический ввод)
Строка повторяется с помощью метода split (). На этом этапе ввод статичен. Для статического ввода введите дополнительный пробел в конце строки. В этом примере мы создаем строку с именем «визуальное программирование». Мы сохранили эту строку в переменной «строка1». Опять же, мы создаем новую переменную multpr для числа. Это число показывает, как часто мы хотим, чтобы заданная строка повторялась. Теперь мы умножили заданную строку «визуальное программирование» на число «5». Таким образом, мы получаем повторяющийся элемент строки. Эти повторяющиеся элементы сохраняются в отдельной переменной с именем «duplic_string»:
Метод split () используется для разделения элементов в указанной повторяющейся строке на список слов. Это также сохраняется в переменной. Мы вводим разделитель как статический ввод и сохраняем его в переменной «разделитель». Теперь мы используем еще одну встроенную функцию join (). Он используется для соединения указанных разделителей с заданной splitd_string. У join () есть один параметр. В конце мы используем переменную «результат», в которой есть повторяющаяся строка:
С помощью оператора печати мы получаем 5 раз данной строки «визуальное программирование». Элементы строки разделяются знаком «-».
Используйте функцию split () (ввод пользователя)
В этом коде пользователь вводит строку. Введенная строка сохраняется в переменной. Здесь переменная для хранения этой строки — «str». После этого пользователь ввел номер. Точно так же это число также сохраняется в новой переменной. Переменная для сохранения числа — multpr. Это целое число по типу:
Теперь выполняем операцию. Указанная строка умножается на введенное число, чтобы получить повторяемую строку. Эта повторяющаяся строка сохраняется в другой переменной с именем duplic_str. Затем мы применяем функцию split (). Это встроенная функция. Эта функция повторяет элементы введенной строки. Повторяющиеся элементы сохраняются в переменной splitd_string. Затем нам нужна эта повторяющаяся строка, поэтому мы вызываем оператор печати:
Пользователь ввел строку «MPL», затем пользователь ввел число, которое показывает, сколько раз строка повторяется. У нас на выходе 12-кратный MPL.
Заключение
В этой статье мы объяснили различные подходы к повторению строк. Мы повторяем слово или строку, используя цикл «for». Если мы повторяем указанный элемент, мы используем оператор повторения «*». Мы применяем функцию split () для двух типов ввода: статического ввода и ввода пользователя. Вы можете выбрать любой способ повтора строки. Мы надеемся, что вы нашли эту статью информативной. Пожалуйста, ознакомьтесь с Linux Hint для получения дополнительных полезных статей.
How to print a string multiple times? [closed]
How can I repeat a string multiple times, multiple times? I know I can use a for loop, but I would like to repeat a string x times per row, over n rows. For example, if the user enters 2 , the output would be:
@joshhunt: Reopening upon request. Your offer to edit is accepted. Moderator flags are legally binding agreements! 😉 Thanks.
10 Answers 10
If you want to print something = ‘@’ 2 times in a line, you can write this:
If you want to print 4 lines of something, you can use a for loop:
for i in range(4): print(something)
How do we print the same with spaces in between and not at the end?? Eg : the output has to be «something something»
for i in range(3): print "Your text here"
for i in range(3): print("Your text here")
It amazes me that this simple answer did not occur in the previous answers.
In my viewpoint, the easiest way to print a string on multiple lines, is the following :
print(«Random String \n» * 100) , where 100 stands for the number of lines to be printed.
So I take it if the user enters 2 , you want the output to be something like:
To get that, you would need something like:
rows = 4 times_to_repeat = int(raw_input("How many times to repeat per row? ") for i in range(rows): print "!" * times_to_repeat
How many times to repeat per row? >> 4 . . . .
I have not tested this, but it should run error free.
EDIT: Old answer erased in response to updated question.
You just store the string in a variable:
separator = "!" * int(raw_input("Enter number: ")) print separator do_stuff() print separator other_stuff() print separator
rows = int(input('How many stars in each row do you want?')) columns = int(input('How many columns do you want?')) i = 0 for i in range(columns): print ("*" * rows) i = i + 1
The question is a bit unclear can’t you just repeat the for loop?
a=[1,2,3] for i in a: print i 1 2 3 for i in a: print i 1 2 3
Sorry about that, the input is from the keyboard denoting a number, with a forloop «!» is printed input number of times in row. Now i want that output to be printed 3 more times on seperate lines, hopes that clears any ambiguity.
def repeat_char_rows_cols(char, rows, cols): return (char*cols + '\n')*rows >>> print(repeat_char_rows_cols('@', 4, 2)) @@ @@ @@ @@
For example if you want to repeat a word called «HELP» for 1000 times the following is the best way.
word = ['HELP'] repeat = 1000 * word
Then you will get the list of 1000 words and make that into a data frame if you want by using following command
word_data =pd.DataFrame(repeat) word_data.columns = ['list_of_words'] #To change the column name
Как продублировать ASCII изображение несколько раз в один ряд?
Как сделать так, чтобы картинки выводились в одну строку, а не переносились? И да, я в курсе, что тоже самое можно написать лучше через for_ in .
В peng уберите скобки, оставив кавычки и: peng = repr(peng) , или peng.replace(‘\n’, ») , или ».join(peng.split())
2 ответа 2
Алгоритм такой: разбиваем «картинку» на отдельные строки, дублируем каждую строку необходимое количество раз, потом обратно собираем строки в целую картинку.
peng =( r""" _~_ (o o) / V \ /( _ )\ ^^ ^^ """) def mul_image(img, n): return '\n'.join(line * n for line in img.splitlines()) print(mul_image(peng, 3))
_~_ _~_ _~_ (o o) (o o) (o o) / V \ / V \ / V \ /( _ )\ /( _ )\ /( _ )\ ^^ ^^ ^^ ^^ ^^ ^^
Чтобы все вывелось красиво, все строки картинки (где есть печатные символы) должны быть одинаковой длины (т.е. пробелы в конце строк имеют значение). В картинке в вопросе нет дополнительных пробелов после «лапок», и если выводить через функцию выше, то получится вот что:
_~_ _~_ _~_ (o o) (o o) (o o) / V \ / V \ / V \ /( _ )\ /( _ )\ /( _ )\ ^^ ^^ ^^ ^^ ^^ ^^
В принципе, функцию можно доработать так, чтобы все строки добивались пробелами до длины самой длинной из строк, тогда о конечных пробелах можно будет не заботиться:
def mul_image(img, n): lines = img.splitlines() max_len = max(len(line) for line in lines) return '\n'.join(line.ljust(max_len, ' ') * n for line in lines)