Как соединить строку и число?
Как соединить в print строку и число? Если например eесть переменная num в цикле, и эту же переменную нужно в этом цикле соединить со строкой.
Отслеживать
51.6k 199 199 золотых знаков 59 59 серебряных знаков 242 242 бронзовых знака
задан 13 мая 2017 в 15:43
83 1 1 серебряный знак 11 11 бронзовых знаков
что вы понимаете под «соединить»?
13 мая 2017 в 15:49
5 ответов 5
Сортировка: Сброс на вариант по умолчанию
>> print 'Foo', 123 Foo 123
Либо используя format :
>> print "<> <>".format("Foo", 123) Foo 123
Отслеживать
ответ дан 13 мая 2017 в 15:50
phen0menon phen0menon
653 5 5 серебряных знаков 19 19 бронзовых знаков
In [263]: var = 50 In [264]: f'variable + 5%: ' Out[264]: 'variable + 5%: 52.5'
Отслеживать
ответ дан 13 мая 2017 в 16:02
MaxU — stand with Ukraine MaxU — stand with Ukraine
149k 12 12 золотых знаков 59 59 серебряных знаков 132 132 бронзовых знака
print("Distance to Sun: " + str(150000000) + " km")
Отслеживать
ответ дан 13 мая 2017 в 15:48
user249284 user249284
Да просто через запятую
print("string",2)
Отслеживать
ответ дан 13 мая 2017 в 15:49
855 6 6 серебряных знаков 11 11 бронзовых знаков
print «String», 1, «String», 2, «ETC»;
Отслеживать
ответ дан 13 мая 2017 в 15:56
user245150 user245150
пожалуйста, постарайтесь оставлять чуть более развёрнутые ответы. дополнить ответ можно, нажав править
17 мая 2017 в 6:36
-
Важное на Мете
Похожие
Подписаться на ленту
Лента вопроса
Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.
Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.
Преобразование числа из строки в тип int и float
Python не позволит сложить строку и число, даже если строка выглядит как число, то есть содержит только цифры:
>>> '50' + 1 # TypeError: cannot concatenate ‘str’ and ‘int’ objects
В архитектуре языка оператор ‘+’ может означать как операцию сложения, так и операцию конкатенации, вследствие чего выбор типа преобразования становится неочевидным. Поэтому интерпретатор воспринимает такую инструкцию как ошибочную. В этом случае нужно использовать инструменты преобразования, чтобы можно было интерпретировать строку как число или наоборот.
Преобразование строковой версии числа в int или float .
- Преобразование строки в тип int ;
- Преобразование строки в тип float ;
- Преобразование списка строк в список чисел.
Преобразование строки в тип int .
# преобразование строки в число >>> num = '50' >>> if num.isdigit(): . int('50') # 50 >>> float('1.5') # 1.5 # преобразование числа в строку >>> str(50) # '50'
Функции int и float преобразует строку в число, функция str преобразует число в строковое представление. В Python нельзя смешивать строковые и числовые типы в таких операторах, как ‘+’ , но можно вручную выполнить необходимые преобразования перед выполнением.
Преобразование строки в тип float .
>>> x = '50' >>> y = 1 >>> z = '1.5' # Операция сложения >>> int(x) + y + float(z) # 52.5 # Операция конкатенации >>> x + str(y) + z # '5011.5' # Преобразование строки с записью вещественного # числа в число с плавающей точкой >>> text = '5.79E-10' >>> float(text) # 5.79e-10
Преобразование списка строк в список чисел.
Для преобразования списка строк с числами в список целых чисел можно ввести проверку перед преобразованием на то, что строка состоит только из десятичных чисел str.isdigit() .
>>> str_list = ['8.3', '11', 'девять', '1', '5', '3', '9', . 'пять', '15', '13', '7', '13.9', 'число'] >>> num_list = [] >>> for i in str_list: . if i.isdigit(): . num_list.append(int(i)) >>> num_list.sort() >>> num_list # [1, 3, 5, 7, 9, 11, 13, 15]
Для преобразования списка строк с числами включая десятичные c разделением их по типам, необходимо перед преобразованием в тип float проверять строку на вхождение точки ‘.’ .
>>> str_list = ['8.3', '11', 'девять.', '1', '5', '3', '9', . '.пять', '15', '13', '7', '13.9', 'число'] >>> def str_to_num(str): . if '.' in str and str.replace('.', '').isdigit(): . return float(str) . elif str.isdigit(): . return int(str) . >>> num_list = [] >>> for i in str_list: . n = str_to_num(i) . if n is not None: . num_list.append(str_to_num(i)) >>> num_list # [8.3, 11, 1, 5, 3, 9, 15, 13, 7, 13.9]
Для преобразования всех чисел в тип float , можно просто заменять точку в строке с числом и проверять получившуюся строку на десятичное число.
>>> str_list = ['8.3', '11', 'девять.', '1', '5', '3', '9', . '.пять', '15', '13', '7', '13.9', 'число'] >>> def is_num(str): . if str.replace('.', '').isdigit(): . return True . >>> num_list = [] >>> for i in str_list: . if is_num(i): . num_list.append(float(i)) . >>> num_list.sort() >>> num_list # [1.0, 3.0, 5.0, 7.0, 8.3, 9.0, 11.0, 13.0, 13.9, 15.0]
- ОБЗОРНАЯ СТРАНИЦА РАЗДЕЛА
- Преобразование строки в число
- Строку в список, кортеж или множество символов
- Одинарные, двойные и тройные кавычки в строке Python
- Вывод специальных символов в строке Python «как есть»
- Объединение и повторение строк
- Индексирование строк
- Использование срезов строк
- Cрез строки Python от заданного символа/знака до конца строки
- Создание макета для печати базовыми методами строк
- Способы форматирования текстовых строк
- Подсчет повторений слов в тексте, деление строки на список слов
- Удаление слова из строки Python по фрагменту или шаблону
- Удаление пунктуации из строки
- Деление строки по заглавным буквам
- Создание отчетов и писем по шаблонам
Python число в строку
Чтобы конвертировать число в строку, используйте встроенную функцию str() . Эта функция в качестве входящих данных принимает число (или другой тип данных), а в результате выдает строку.
Примеры
Вот один пример:
>>> str(123) '123'
Если число является значением переменной, конвертировать его можно следующим образом:
>>> number = 999 >>> number_as_string = str(number) >>> number_as_string '999'
Конкатенация строк и чисел в Python
Иногда возникает необходимость сконструировать строку, содержащую число из другой переменной. Вот пример, как это делается:
>>> week = 33 >>> greeting = "it is week " + str(week) >>> greeting 'it is week 33'
Избегаем преобразования типов данных
Когда разработчикам нужно объединить число и строку, они обычно применяют функцию str() непосредственно перед выводом данных на экран. Например:
>>> name = "Bob" >>> age = 33 >>> print(name + " is " + str(age) + " years old") Bob is 33 years old
Но гораздо более чистый способ — применять к строкам метод .format() :
>>> print(" is years old".format(name=name, age=age)) Bob is 33 years old
А еще лучше — использовать f-строки (Python 3):
>>> print(f" is years old") Bob is 33 years old
Извлечь из строки числа
Дана строка, содержащая натуральные числа и слова. Необходимо сформировать список из чисел, содержащихся в этой строке. Например, задана строка «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