8-900-374-94-44
[email protected]
Slide Image
Меню

Строка в число с – Преобразование строки в число и обратно

5 примеров преобразования строки в целое число или число с плавающей точкой в Python

520

Иногда требуется преобразовать строку в целое число или в число с плавающей точкой для осуществления определённых операций в Python.

Если вы попробуете выполнить то или иное действие со строкой в виде чисел, то получите ошибку.

Этот код приведёт к ошибке:

str_a = ’50’
b = 10
c = str_a + b
print (c)

В Python можно использовать функции int и float для преобразования строки в целое число или число с плавающей точкой до осуществления каких-либо операций.

Рассмотрим следующий код:

str_a = '50'
b = 10
c = int(str_a) + b
print ("The value of c = ",c)  

В результате его работы выведется значение переменной c, представляющее собой сумму переменных str_a и b.

Можно использовать класс float для преобразования строки в число с плавающей точкой.

Пример использования float для преобразования строки:

#Пример преобразования string во float
str_a = '50.85'
b = 10.33
c = float(str_a) + b
print ("The value of c = ",c) 

Замечание: если вы попытаетесь использовать здесь функцию int(), то получите ошибку.

Если нужно преобразовать строки из чисел, содержащиеся в списке, тогда используйте генератора списков.

Будет создан новый список, в котором можно применить функцию int в каждой итерации.

Код:

#Пример преобразования string в int в списке
str_lst = ['1', '2', '3']
int_lst = [int(x) for x in str_lst]
print (int_lst)

Будет выведен новый список, состоящий из целых чисел, полученных из строк.

Аналогичным образом можно использовать float вместо int для преобразования списка, содержащего строки из целых чисел. Рассмотрим пример:

Код для преобразования элементов списка в числа с плавающей точкой:

#Пример преобразования string во float в списке
str_lst = ['10.505', '2.3', '3.99']
float_lst = [float(x) for x in str_lst]
print (float_lst)

Ну а как насчёт строки наподобие “5,000,000”? Если попытаетесь преобразовать ее, используя функции int() или float(), то получите ошибку.

Решением будет использование import locale. Например:

locale.setlocale(locale.LC_ALL, ‘en_US.UTF-8’ )

Но это может вызвать проблемы в остальных локалях. Другое решение заключается в том, чтобы заменить запятые пустыми строками, то есть“”, а затем использовать функцию int.

Код:

str_a = '5,123,000'
int_b = int(str_a.replace(',',''))
print ("The integer value",int_b)

В результате получаем целое значение. Это же решение можно применить для конвертации строки в число с плавающей точкой.

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

Для этого введённое значение сначала преобразуется в целое число, а затем используется формула расчёта високосного года.

#Пример расчёта високосного года
try:	
Y = int(input("Enter a Year? "))

exceptValueError:
print ("You may only enter digits in '2000' format!")
else:
leap_or_not = Y%4 == 0
ifleap_or_not:
print ("Leap year")
else:
print ("Not a leap year")

Вводимая строка сразу преобразуется в целое число, а затем используется для расчёта.

Для преобразования целых чисел в строки в Python можно использовать функцию str(). Функция str() принимает объект, который может быть типа int, float, double и т.п.

Рассмотрим пример преобразования переменной типа int в строку, которая затем используется как строка для конкатенации:

#Примерпреобразованияint в string

a_string = "str function for int to string"
a_num = 456

print (a_string + str(a_num))

Вывод:

str function for int to string456

Если бы целочисленная переменная была использована без функции str(), возникла бы ошибка TypeError.

Данная публикация представляет собой перевод статьи «5 examples to Convert a Python string to int and float» , подготовленной дружной командой проекта Интернет-технологии.ру

www.internet-technologies.ru

Работа со строками в 1С 8.3 (8.2)

Строка — примитивный тип данных в языке программирования 1С. Помимо 1С, этот тип данных используется во всех известных языках программирования, обычно он называется «string».

Функции работы со строками в 1С

Рассмотрим основные функции встроенного языка программирования 1С.

Строка

Функция Строка() позволяет получить текстовое представление переменных других типов.

Пример:

Строка(ТекущаяДата()) //"23.02.2015 21:31:24"

Строка(Истина)  // Да

Строка(1058)  // "1 058"

СтрДлина

Функция позволяет получить количество символов в строке 1C, включая пробелы и незначащие символы.

Например:

СтрДлина("Тестовая строка") // 15

СокрЛП, СокрЛ, СокрП

Полезная функция для удаления незначащих символов в строковом значении. СокрЛ обрабатывает символы, стоящие слева от последнего значащего символа, СокрП — справа. А СокрЛП — справа и слева.

Пример:

СокрЛП(" Слева и справа есть незначащие символы - пробелы ") // получим строку без пробелов слева и справа

Помимо пробелов, функция 1C удаляет такие символы, как перенос строки, неразрывный пробел и т.д.

Лев, Прав, Сред

С помощью данных функций очень просто получить первые (Лев) или последние (Прав) символы в строке, а также произвольное количество символов (Сред).

Пример:

Лев("Тестовая строка", 4) // "Тест"

Сред("Тестовая строка", 5, 6) // "овая с"

Найти

Функция для поиска подстроки внутри другой подстроки. Синтаксис Найти(<Строка для поиска>, <Подстрока поиска>). Функция возвращает число — номер позиции символа (или символов) в исходной подстроке. Если подстроки не найдено, вернётся число 0. Если в искомой подстроке есть несколько вхождений, вернется номер позиции первого совпадения.

Пример:

Найти("Тестовая строка", "строка") // 10

Найти("Тестовая строка", "123") // вернется 0, подстроки "123" нет в исходной строке

Найти("Тестовая строка", "я") // 8

ВРег, НРег, ТРег

Функции для управления регистром строки. ВРег — преобразует строку в верхний регистр. НРег — в нижний. ТРег — у каждого нового слова первая буква преобразуется в верхний регистр, остальные в нижний.

Пример:

ВРег("Тестовая строка")  // "ТЕСТОВАЯ СТРОКА"

НРег("Тестовая строка")  // "тестовая строка"

ТРег("Тестовая строка") // "Тестовая Строка"

ПустаяСтрока

Функция, позволяющая сравнить исходную строку с пустой строкой. Проверяется наличие незначащих символов.

Пример:

Получите 267 видеоуроков по 1С бесплатно:

ПустаяСтрока("Тест") //ложь

ПустаяСтрока(" ") // истина


Аналогично можно проверить строку на пустое значение следующим образом:

СокрЛП(" ") = "" // истина

СтрЗаменить

Функция СтрЗаменить позволяет массово заменить искомое значение на нужное нам. Синтаксис:

Например:

СтрЗаменить("Произвольная Строка", " " , "") //"ПроизвольнаяСтрока"

СтрЧислоСтрок

Позволяет получить количество строк в многострочном тексте. Функция считает количество переносов строк (Символы.ПС).

Например, построчная обработка текстового фрагмента:

Для Н=1 по СтрЧислоСтрок(ТекстФайла) Цикл

.....

КонецЕсли;

СтрПолучитьСтроку

С помощью данной функции можно получить произвольную строку из многострочного текста. Синтаксис — СтрПолучитьСтроку(<Строка>, <Номер строки>).

Пример:

СтрокаНомер5 =  СтрПолучитьСтроку(ИсходнаяСтрока, 5)

СтрЧислоВхождений

Функция для подсчета числа вхождений произвольного фрагмента в строку. Например, подсчитать количество вхождений определенных символов или слов в текст.

Пример:

СтрЧислоВхождений ("Тестовая строка", "т")  // 2

Символ и КодСимвола

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

Примеры:

КодСимвола("Т")  // 1 058

Символ(1058) // "Т"

Часто встречающиеся задачи по работе со строками в 1С

Рассмотрим классические примеры решения задач в работе с текстовыми переменными.

Конкатенация строк в 1С

Конкатенация, или объединение строк в 1С делается оператором «+».

Например:

"Первая часть строки " + "и вторая" // получим "Первая часть строки и вторая"


Преобразовать число в строку

Тут всё просто. Достаточно использовать метод «Строка()»:

Строка(12355.44) // "12 355,44"

Однако может смущать наличие неразрывного пробела.

Его можно убрать с помощью замены неразрывного пробела на пустую строку:

СтрЗаменить(Строка(12355.44),Символы.НПП,"")  // "12355,44"

или с помощью метода Формат:

Строка(Формат(12355.44,"ЧГ="))

Кавычки в строке 1С

Для новичков достаточно трудно установить кавычки внутри строки, хотя в этом нет ничего сложного. Достаточно внутри строки поставить вместо одних кавычек двое.

Например:

Строка("Наша организация называется ""Березка"", мы работаем на рынке с 1999 года")

Символ переноса строки

Символ переноса строки необходим для переноса строки на следующую строку. В 1С это можно сделать с помощью специальной конструкции «Символы.ПС».

Пример:

"Этот текст будет на первой строке" + Символы.ПС + "А этот на второй"

Сравнение строк в 1С

Сравнить строки достаточно просто с помощью оператора сравнения — «=».

Однако для получения корректного сравнения часто требуется возвести строки в один регистр и убрать незначащие символы:

СокрЛП(ВРег(Строка1)) = СокрЛП(ВРег(Строка2))

Таким образом, мы получим более точное сравнение двух строк.

Убрать пробелы в строке 1С

Достаточно часто нужно убрать пробелы в строке 1С.

Если требуется убрать пробелы справа и слева:

ИсходнаяСтрока = СокрЛП(ИсходнаяСтрока)


Если требуется убрать абсолютно все пробелы, можно заменить их на пустую строку:

ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, " " ,"")

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

ИсходнаяСтрока = СтрЗаменить(ИсходнаяСтрока, Символы.НПП ,"")

Другие статьи по 1С:

Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте

подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

programmist1s.ru

Строки в языке 1С 8.3, 8.2 (в примерах)

&НаКлиенте
Процедура ВыполнитьКод(Команда)
 
    /// Как найти длину строки в 1с 8.3, 8.2
 
    Сообщить(СтрДлина("123456789")); // 9
 
    /// Как взять часть строки в 1с 8.3, 8.2
 
    // как взять N символов слева
    Строка = "Иван Грозный";
    Сообщить(Лев(Строка, 4)); // Иван
 
    // как взять N символов справа
    Строка = "Иван Грозный";
    Сообщить(Прав(Строка, 7)); // Грозный
 
    // как взять строку из середины
    Строка = "Мама, папа, я.";
    // возьмём начиная с 7 индекса 4 символа
    Сообщить(Сред(Строка, 7, 4)); // папа
 
    /// Как найти подстроку в 1с 8.3, 8.2
 
    Строка = "Привет, мир!";
    Индекс = Найти(Строка, "Привет"); // 1, строки индексируются с единицы
 
    /// Как узнать число вхождений подстроки в строку в 1с 8.3, 8.2
 
    Сообщить(СтрЧислоВхождений("я, я и ещё раз я.", "я")); // 3
 
    /// Как заменить подстроку в строке в 1с 8.3, 8.2
 
    Сообщить(СтрЗаменить("Идёт сильный дождь.", "дождь", "снег"));
 
    /// Как проверить на пустую строку в 1с 8.3, 8.2
 
    Если ПустаяСтрока("         ") Тогда
        Сообщить("Строка пустая, то есть не содержит значащих символов.");
    КонецЕсли;
 
    /// Как удалить незначащие символы из строки в 1с 8.3, 8.2
 
    // слева
    Сообщить(СокрЛ("   из лесу ёлочку    ")); // "из лесу ёлочку    "
    // справа
    Сообщить(СокрП("   из лесу ёлочку    ")); // "   из лесу ёлочку"
    // с двух сторон
    Сообщить(СокрЛП("   из лесу ёлочку    ")); // "из лесу ёлочку"
 
    /// Как вставить в строку перенос в 1с 8.3, 8.2
 
    Строка =
        "Первая строка" + Символы.ПС +
        "Вторая строка" + Символы.ПС +
        "Третья строка";
 
    /// Как работать с многострочными строками (нумерация с 
    /// единицы) в 1с 8.3, 8.2
 
    Сообщить(СтрЧислоСтрок(Строка)); // 3
    Сообщить(СтрПолучитьСтроку(Строка, 2)); // "Вторая строка"
 
    /// Верхний, нижний и титульный регистры в 1с 8.3, 8.2
 
    Сообщить(ВРег("россия - родина моя!")); // РОССИЯ - РОДИНА МОЯ!
    Сообщить(НРег("МИР, ТРУД, МАЙ!")); // мир, труд, май
    Сообщить(ТРег("мама мыла раму")); // Мама Мыла Раму
 
    /// Как получить код символа строки в 1с 8.3, 8.2
 
    // код отдельного символа:
    //   туда
    Сообщить(КодСимвола("A")); // 65
    //   и обратно
    Сообщить(Символ(65)); // "A"
 
    // код третьего символа в строке
    Сообщить(КодСимвола("ABC", 3)); //67
 
    // код первого символа в строке
    КодПервогоСимволаФамилии = КодСимвола("Грозный");
    Сообщить(КодПервогоСимволаФамилии); // 1043, потому что Unicode.
 
    /// Как преобразовать строку в число в 1с 8.3, 8.2
 
    Сообщить(Число("125.36")); // 125,36
    Сообщить(Число("125,36")); // 125,36
 
    /// Как преобразовать число в строку в 1с 8.3, 8.2
 
    Сообщить(25 + "10"); // 35
    // если же нужно сложить число и строку как строки
    Сообщить(Строка(25) + "10"); // 2510
 
    /// Как разбить строку с разделителями в 1с 8.3, 8.2
 
    Разделитель = ",";
    Строки = СтрЗаменить("январь, февраль, март", Разделитель, Символы.ПС);
    Для Индекс = 1 По СтрЧислоСтрок(Строки) Цикл
        Сообщить(СтрПолучитьСтроку(Строки, Индекс));
    КонецЦикла;
 
КонецПроцедуры
 
&НаСервереБезКонтекста
Процедура ВыполнитьКодНаСервере()
 
    /// Как сериализовать значение в строку в 1с 8.3, 8.2
 
    Массив = Новый Массив(3);
    Массив[0] = 1;
    Массив[1] = "Земля";
    Массив[2] = 3.14;
 
    Стр = ЗначениеВСтрокуВнутр(Массив);
    Сообщить(Стр);
 
    //{"#",51e7a0d2-530b-11d4-b98a-008048da3034,
    //  {3,
    //      {"N",1},
    //      {"S","Земля"},
    //      {"N",3.14}
    //  }
    //}
 
    /// Как десериализовать значение из строки в 1с 8.3, 8.2
 
    МассивКопия = ЗначениеИзСтрокиВнутр(Стр);
    Элемент = МассивКопия[1];
    Сообщить(Элемент); // Земля
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

helpme1c.ru

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

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