Как вывести числа в строку python
Перейти к содержимому

Как вывести числа в строку python

  • автор:

Извлечь из строки числа

Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке. Например, задана строка «abc83 cde7 1 b 24». На выходе мы должны получить список [83, 7, 1, 24].

Решение задачи на языке программирования Python

Следует посимвольно перебирать строку. Если очередной символ цифра, надо добавить ее в новую строку. Далее проверять символы за ней, и если они тоже цифры, то добавлять их в конец этой новой подстроки из цифр. Когда очередной символ окажется не цифрой, или будет достигнут конец строки, то надо преобразовать строку из цифр в число и добавить в список.

s = input() length = len(s) integers = [] i = 0 # индекс текущего символа while i  length: s_int = '' # строка для нового числа while i  length and '0'  s[i]  '9': s_int += s[i] i += 1 i += 1 if s_int != '': integers.append(int(s_int)) print(integers) 
5 dkfj78df 9 8 dkfj8 [5, 78, 9, 8, 8]

Обратите внимание, что данное решение извлекает именно числа, а не цифры. Иначе мы бы не получили число 78, а получили отдельно цифру 7 и цифру 8. Задача на извлечение цифр существенно проще.

Решение через цикл for :

a = input() num_list = [] num = '' for char in a: if char.isdigit(): num = num + char else: if num != '': num_list.append(int(num)) num = '' if num != '': num_list.append(int(num)) print(num_list) 

Если в строке числа всегда отделены от слов пробелами, задача решается проще:

s = input() word_list = s.split() num_list = [] for word in word_list: if word.isnumeric(): num_list.append(int(word)) print(num_list) 

Здесь происходит разделение строки на слова по пробелам. В цикле с помощью метода isnumeric каждое слово проверяется, является ли оно числом. Подобную задачу можно решить в одну строку, если использовать функцию filter .

s = input() word_list = s.split() num_list = [int(num) for num in filter( lambda num: num.isnumeric(), word_list)] print(num_list) 

В функцию filter передается лямбда-выражение, проверяющее слова, и список слов. Функция возвращает список строк-чисел. Далее с помощью генератора списка строки преобразовываются в целочисленный тип.

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

import re s = input() nums = re.findall(r'\d+', s) nums = [int(i) for i in nums] print(nums) 

Для поиска вещественных чисел:

import re s = input() nums = re.findall(r'\d*\.\d+|\d+', s) nums = [float(i) for i in nums] print(nums) 

X Скрыть Наверх

Решение задач на Python

Ввод-вывод, оператор присваивания, арифметические операции

Функция print может выводить не только значения переменных, но и значения любых выражений. Например, допустима запись print(2 + 2 ** 2) . Также при помощи функции print можно выводить значение не одного, а нескольких выражений, для этого нужно перечислить их через запятую:

a = 1 
b = 2
print(a, '+', b, '=', a + b)

В данном случае будет напечатан текст 1 + 2 = 3 : сначала выводится зание переменной a , затем строка из знака “+”, затем значение переменной b , затем строка из знака “=”, наконец, значение суммы a + b .

Обратите внимание, выводимые значение разделяются одним пробелом. Но такое поведение можно изменить: можно разделять выводимые значения двумя пробелами, любым другим символом, любой другой строкой, выводить их в отдельных строках или не разделять никак. Для этого нужно функции print передать специальный именованный параметр, называемый sep , равный строке, используемый в качестве разделителя (sep — аббревиатура от слова separator, т.е. разделитель). По умолчанию параметр sep равен строке из одного пробела и между значениями выводится пробел. Чтобы использовать в качестве разделителя, например, символ двоеточия нужно передать параметр sep , равный строке ‘:’ :

print(a, b, c, sep = ':')

Аналогично, для того, чтобы совсем убрать разделитель при выводе нужно передать параметр sep , равный пустой строке:

print(a, '+', b, '=', a + b, sep = '')

Для того, чтобы значения выводились с новой строке, нужно в качестве параметра sep передать строку, состоящую из специального символа новой строки, которая задается так:

print(a, b, sep = '\n')

Символ обратного слэша в текстовых строках является указанием на обозначение специального символа, в зависимости от того, какой символ записан после него. Наиболее часто употребляется символ новой строки ‘\n’ . А для того, чтобы вставить в строку сам символ обратного слэша, нужно повторить его два раза: ‘\\’ .

Вторым полезным именованным параметром функции print является параметр end , который указывает на то, что выводится после вывода всех значений, перечисленных в функции print . По умолчанию параметр end равен ‘\n’ , то есть следующий вывод будет происходить с новой строки. Этот параметр также можно исправить, например, для того, чтобы убрать все дополнительные выводимые символы можно вызывать функцию print так:

print(a, b, c, sep = '', end = '')

Вывод в одну строку из разных print в python

Выводиться должно в одной строке, но print() в коде в разных строках!
Буду очень рад, если кто-нибуть поможет.

Отслеживать
17.2k 4 4 золотых знака 21 21 серебряный знак 32 32 бронзовых знака
задан 6 фев 2021 в 15:56
V-MazOriginal V-MazOriginal
75 1 1 золотой знак 1 1 серебряный знак 7 7 бронзовых знаков
А собрать то что должно выводиться в одну строку и одним принтом вывести не вариант?
6 фев 2021 в 16:00

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Функция print() имеет такие ключевые параметры:

  • sep= – когда выводится несколько значений, каким символом или строкой их отделить
    (стандартно — пробелом, т.е. строкой ‘ ‘ ),
  • end= – какой символ или строку выводить после вывода (всех) значений
    (стандартно — переходом на новую строку, т.е. строкой ‘\n’ ),
  • file= – в какой файл выводить значения
    (стандартно — на экран, т.е. sys.stdout ),
  • flush= – немедленно вывести поток (сохраненный в буфере) в файл
    (стандартно «нет», т.е. False ).

В вашем случае хотите после вывода значения остаться в той же строке, значит, вы не хотите стандартного окончания переходом на новую строку ( end=’\n’ ), но окончить чем-то другим (пробелом, запятой, и тд.) тоже нет.

Потому окончите вывод пустой строкой ( » ):

print('a', end='') print('b', end='') print('c') 

Как вывести print в одну строку python

    Передать функции print() несколько аргументов. Например:

print('string1', 'string2') # => string1 string2 
print('string1', end='') print('string2') # => string1string2 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *