Преобразование числа из строки в тип 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 по фрагменту или шаблону
- Удаление пунктуации из строки
- Деление строки по заглавным буквам
- Создание отчетов и писем по шаблонам
Как перевести буквы в числа по таблице?


Буквы перевести в числа и сложить их до простого числа (Д+р+у+г = 5+7+1+4=17=1+7=8)
Друзья, всем привет! Постарался создать удобную таблицу, чтобы понятнее объяснить) Суть.
Как вывести номер буквы в таблице ASCII?
ниже в оператор= есть цикл ,куда пишутся определенные цифры,потом номер в строке и нужно еще.
Как перевести регистр определенной буквы в строке?
помогите написать код к этой задаче, примерно понимаю как делать но не пойму как перевести регистр.

Как перевести русские буквы в запросе на сервер в нужное представление
Имеется запрос на сервер в котором несколько параметров: Как мне переделать слово.

Как можно из вектора,состоящего из строки,в которой есть числа и буквы,достать числа?
Суть такова: Имеется вектор с название a,в этом векторе лежат числа и заглавные буквы.
Регистрация: 24.01.2013
Сообщений: 129
Сообщение от Clinkz 
Познания в питоне слишком малы,поэтому даже с гуглом не додумался до решения и прошу помощи
В числах, которые будет введены, будут использованы только буквы?
Нужно заменить числа на буквы из алфавита, соответствующие этим числам. Разный результат в программе, как исправить?
Здравствуйте проблема такая, никак не пойму.
Вот задание:
Вам необходимо в строке, полученной со стандартного ввода найти все цифры и заменить их на букву латинского алфавита, располагающуюся по данному индексу (все символы в строке вводятся в нижнем регистре).
Примечание: две цифры не могут располагаться рядом. Те если у вас есть строка «19у» это значит что у вас одна цифра 19, а не 1 и 9. Как результат вы должны получить «sy»
Sample Input:
Hel12o 16e15ple
Sample Output:
Hello people
latin="abcdefghijklmnopqrstuvwxyz" text = input("Введите строку: ") i = 0 s = "" while i < len(text): a = text[i] while "0"
По заданию фразу "Hel12o 16e15ple" выводит так "Hello pe1eple" - правильно меняет буквы из алфавита до пробела, но после пробела почему-то не правильно.
Если же к примеру ввести фразу "12ghj3jhh23" (просто произвольная) - то здесь выдает "lghjcjhhbc" - последние две цифры не воспринимает как число 23 и выводит по буквам "b" и "c".
Если же к примеру поменять 23 на 24: "12ghj3jhh24" - то тут выводит всё как положено "lghjcjhhx" - все правильно заменяет.
В чем может быть проблема? почему не приязнь у программы к числу 23 и пробелам.
Можно как-то подправить именно этот код, без "наворотов", а то я только учусь и еще не вcе понимаю.
- Вопрос задан более года назад
- 4395 просмотров
ПРЕОБРАЗОВАНИЕ ТИПОВ ДАННЫХ В PYTHON
С помощью функции complex() удобно формировать комплексные числа, указывая через запятую два аргумента: действительную часть и мнимую часть.
a = complex(3.2, 1.5) print(a)
(3.2+1.5j)
Смешанная арифметика
Python поддерживает смешанную арифметику в выражениях, состоящих из чисел разных типов. При этом целочисленный тип (int) при необходимости расширяется до дробного (float), а дробный — до комплексного (complex). То же самое происходит при сравнении чисел разного типа.
Системы счисления
Для преобразования чисел в двоичную, восьмиричную и шестнадцатиричную систему служат функции bin(), oct() и hex(). Эти функции возвращают строковые представления чисел, что необходимо учитывать при работе с ними.
a = hex(38) print(a)
0x26
Преобразовать строковое представление недесятичного числа в десятичную систему можно с помощью функции int(), указав вторым аргументом основание системы счисления (от 2 до 36 включительно).
a = '0x26' b = int(a, base=16) print(b)
Округление
Для округления чисел с плавающей точкой используется функция round(). Функция использует банковское округление (по Гауссу) до ближайшего чётного целого, чтобы избежать серийного накопления погрешности. Например, round(1.5) + round(2.5) будет равен 4. При обычном математическом округлении сумма округленных чисел будет равна 5.
С помощью второго аргумента функции round() можно округлить число до заданного количества знаков после запятой. Если воторой аргумент не задан, то число округляется до целого.
a = round(1.5) print(a) b = round(2.5) print(b) c = round(6.4567, 2) print(c) d = round(4.35, 1) print(d) e = round(4.45, 1) print(e)
2 2 6.46 4.7 4.5
Преобразование в строку
Для преобразования в строку используется функция str(). Аргументом функции str() может выступать число, строка, кортеж, список, множество, словарь, логическое значение, None.
Любой объект, преобразованный в строку, становится просто набором символов.
a = 5.3 x = str(a) print(x, type(a), type(x))
Преобразование в список
Для преобразования в список используется функция list(). Аргументом функции list() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).
При преобразовании строки в список, мы получаем список, состоящий из символов строки.
Стоит обратить внимание на то, что при преобразовании словаря в список, в списке оказываются только ключи.
b = 'Python' x = list(b) print(x) c = (3, 4) x = list(c) print(x) d = [5, 6] x = list(d) print(x) e = x = list(e) print(x) f = x = list(f) print(x)
['P', 'y', 't', 'h', 'o', 'n'] [3, 4] [5, 6] [8, 7] [1, 2]
Преобразование в кортеж
Для преобразования в кортеж используется функция tuple(). Аргументом функции tuple() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).
Преобразование в кортеж происходит по тому же принципу, по которому происходит преобразование в список.
Преобразование в множество
Для преобразования в множество используется функция set(). Аргументом функции set() может выступать любой итерируемый тип данных (строка, кортеж, список, множество, словарь).
Преобразование в множество происходит по тому же принципу, по которому происходит преобразование в список, но следует учитывать, что повторяющиеся элементы в множестве будут представлены только один раз.
a = [5, 6, 5, 6, 7] x = set(a) print(x)
С помощью последовательного преобразования числа в строку, а затем в множество, можно найти набор символов, которые встречаются в числе.
a = 227 x = set(str(a)) print(x)
Преобразование в словарь
Для преобразования в словарь используется функция dict().
Для преобразования в словарь каждый элемент преобразуемой последовательности должен быть парой. Первым элементом в паре может быть любой неизменяемый тип данных (число, строка, кортеж), а вторым — любой тип данных.
f = [[1, 'яблоко'], [2, 'тыква']] x = dict(f) print(x)
Преобразование в логический тип
Для преобразования в логический тип используется функция bool().
Функция bool() вернет False, если в качестве аргумента выступает пустая строка, нулевое число, None, пустой список, пустой кортеж или пустое множество. Непустая строка, ненулевое число, даже если оно отрицательное, вернут True. Непустое множество, непустой список или непустой кортеж, даже если они содержат один пустой элемент, вернут True.
a = -7 x = bool(a) print(x) b = '' x = bool(b) print(x) c = x = bool(c) print(x)
True False True