Как убрать ведущие нули в питоне
Спасибо, совет правильный. Еще такой вопрос всвязи с этим, есть форма списка документов, надо, чтобы номер документа там также без нулей был, как это проще сделать?
(15) посмотри модуль печати документа, там и префикс убирается, и нули
можно попробовать при вводе строки устновить вывод текста и там подменять номер.
стр = стрзаменить(ВходСтр,»0″,Символы.ПС);
для к = 1 по СтрЧислоСтрок(стр) Цикл
если СтрДлина(стрполучитьстроку(стр,к))>0 тогда
прервать;
КОнецЕсли;
КонецЦикла;
(6)
> ПроверяемыйСимвол = Сред(ИскомаяСтрока, НомерСимвола,1);
> Если КодСимвола(ПроверяемыйСимвол) <> 48 Тогда
достаточно
Если КодСимвола(ПроверяемыйСимвол,ПроверяемыйСимвол) <> 48 Тогда
+если уж на скорость, то ПозицияНеНуля можно выкинуть. в 1С переменная цикла при выходе из цикла определена (НомерСимвола).
при выходе = после выхода
стр = СокрЛ(СтрЗаменить(ИскомаяСтрока, «0», » «));
Поз = СтрДлина(ИскомаяСтрока) — СтрДлина(стр) + 1;
Если Поз > 1 Тогда
СтрокаБезВедущихнулей = Сред(ИскомаяСтрока,Поз);
Иначе
СтрокаБезВедущихнулей = ИскомаяСтрока;
КонецЕсли;
о где Serg69? Он такое любит под попкорн.
Вот еще вариант (если посередине строки пробелов нет):
СтрокаБезНулей = СтрЗаменить(ИскомаяСтрока, «0», » «);
СтрокаБезНулей = СокрЛ(СтрокаБезНулей);
Результат = СтрЗаменить(СтрокаБезНулей, » «, «0»);
(23) если были пробелы, не прокатит.
СтрокаБезНулей = СтрЗаменить(СтрЗаменить(ИскомаяСтрока,» «, «_»), «0», » «);
СтрокаБезНулей = СокрЛ(СтрокаБезНулей);
Результат = Прав(ИсходнаяСтрока, СтрДлина(СтрБезНулей));
(22) А? что? где? где попкорн?
//Убрать ведущие нули из строки
Запрос = Новый Запрос();
Запрос.Текст = «ВЫБРАТЬ ВЫБОР КОГДА Т1.Стр ПОДОБНО «»0%»» ТОГДА ПОДСТРОКА(Т1.Стр, 2, 1000) ИНАЧЕ Т1.Стр КОНЕЦ КАК БезНулей
|ИЗ (ВЫБРАТЬ ВЫБОР КОГДА Т2.Стр ПОДОБНО «»00%»» ТОГДА ПОДСТРОКА(Т2.Стр, 3, 1000) ИНАЧЕ Т2.Стр КОНЕЦ КАК Стр
|ИЗ (ВЫБРАТЬ ВЫБОР КОГДА Т3.Стр ПОДОБНО «»0000%»» ТОГДА ПОДСТРОКА(Т3.Стр, 5, 1000) ИНАЧЕ Т3.Стр КОНЕЦ КАК Стр
|ИЗ (ВЫБРАТЬ ВЫБОР КОГДА Т4.Стр ПОДОБНО «»00000000%»» ТОГДА ПОДСТРОКА(Т4.Стр, 9, 1000) ИНАЧЕ Т4.Стр КОНЕЦ КАК Стр
|ИЗ (ВЫБРАТЬ ВЫБОР КОГДА Т5.Стр ПОДОБНО «»0000000000000000%»» ТОГДА ПОДСТРОКА(Т5.Стр, 17, 1000) ИНАЧЕ Т5.Стр КОНЕЦ КАК Стр
|ИЗ (ВЫБРАТЬ ВЫБОР КОГДА &ЕстьНули ПОДОБНО «»00000000000000000000000000000000%»» ТОГДА ПОДСТРОКА(&ЕстьНули, 33, 1000) ИНАЧЕ &ЕстьНули КОНЕЦ КАК Стр) КАК Т5) КАК Т4) КАК Т3) КАК Т2) КАК Т1″;
// Проверим?
Фигня = «0000000000000000000000000000000000000000000000000000000000000000123»;
Запрос.УстановитьПараметр(«ЕстьНули», Фигня);
Выборка = Запрос.Выполнить().Выбрать();
Выборка.Следующий();
Сообщить(«Было : » + Фигня + «, стало : » + Выборка.БезНулей);
Возврат;
Удалить ведущие нули из числа, заданного в виде строки, с помощью Python
В этой статье мы изучим программу Python для удаления ведущих нулей из числа, заданного в виде строки.
Предположим, мы взяли число в строковом формате. Теперь мы удалим все ведущие нули (нули, присутствующие в начале числа), используя приведенные ниже методы.
Используемые методы
Ниже приведены различные методы, используемые для выполнения этой задачи:
- Использование цикла For и функции удаления()
Способ 1: использование цикла For и функции удаления()
Алгоритм (шаги)
Ниже приведены алгоритмы/шаги, которые необходимо выполнить для выполнения желаемой задачи. −
- Создайте функцию deleteLeadingZeros(), которая удаляет ведущие нули из числа, передаваемого в функцию в виде строки.
- Используйте цикл for для перемещения по всей длине строки с помощью функции len().
- Функция len() — количество элементов в объекте возвращается методом len(). Функция len() возвращает количество символов в строке, если объект является строкой.
- Используйте условный оператор if вместе с оператором !=, чтобы проверить, не равен ли текущий символ в строке 0.
- Получите оставшиеся символы строки после ведущих нулей, используя нарезку.
- Верните результирующую строку после удаления всех начальных 0 из входной строки.
- Возвращает 0, если ведущие 0 не найдены.
- Создайте переменную для хранения входного числа, переданного в виде строки.
- Вызовите определенную выше функцию deleteLeadingZeros(), передав ей входную строку, чтобы получить результирующую строку после удаления ведущих нулей.
- Таким же образом проверьте, нет ли в другой строке ведущих нулей.
Пример
Следующая программа возвращает результат в виде строки, которая удаляет все ведущие нули из числа, переданного в виде строки, с использованием функций цикла и удаления() —
# creating a function that removes the leading zeros # from a number passed as a string to the function def deleteLeadingZeros(inputString): # traversing through the length of the string for k in range(len(inputString)): # checking whether the current character of a string is not 0 if inputString[k] != '0': # getting the remaining string using slicing outputString= inputString[k::] # returning resultant string after removing leading 0s return outputString # returning 0 if there are no leading 0s found in the entire string return "0" # input number as a string inputString = "0002056" print("Given String is:", inputString) # calling the deleteLeadingZeros() function by passing the input string to it print("After Removing Leading Zeros:", deleteLeadingZeros(inputString)) # checking it for other strings having no leading 0s inputString = "256" print("Given String is:", inputString) # calling the deleteLeadingZeros() function by passing the input string to it print("After Removing Leading Zeros:", deleteLeadingZeros(inputString))
Выход
При выполнении вышеуказанная программа сгенерирует следующий вывод:
Given String is: 0002056 After Removing Leading Zeros: 2056 Given String is: 256 After Removing Leading Zeros: 256
Способ 2: использование регулярного выражения
Алгоритм (шаги)
Ниже приведены алгоритмы/шаги, которые необходимо выполнить для выполнения желаемой задачи. −
- Используйте ключевое слово import, чтобы импортировать модуль regex(re).
- Создайте функцию deleteLeadingZeros(), которая удаляет ведущие нули из числа, передаваемого в функцию в виде строки.
- Создайте переменную для хранения шаблона регулярного выражения для удаления ведущих нулей из входной строки.
- Замените соответствующий шаблон регулярного выражения пустой строкой с помощью функции sub().
Пример
Следующая программа возвращает результат в виде строки, которая удаляет все ведущие нули из числа, переданного в виде строки, с использованием регулярных выражений:
# importing re module import re # creating a function that removes the leading zeros # from a number passed as a string to the function def deleteLeadingZeros(inputString): # regex pattern for removing leading zeros from an input string regexPattern = "^0+(?!$)" # Replace the matched regex pattern with an empty string outputString = re.sub(regexPattern, "", inputString) # returning output string after removing leading 0s return outputString # input number as a string inputString = "0002056" print("Given String is:", inputString) # calling the deleteLeadingZeros() function by passing the input string to it print("After Removing Leading Zeros:", deleteLeadingZeros(inputString))
Выход
При выполнении вышеуказанная программа сгенерирует следующий вывод:
Given String is: 0002056 After Removing Leading Zeros: 2056
Способ 3: использование функции int()
Алгоритм (шаги)
Ниже приведены алгоритмы/шаги, которые необходимо выполнить для выполнения желаемой задачи. −
- Создайте функцию deleteLeadingZeros(), которая удаляет ведущие нули из числа, передаваемого в функцию в виде строки.
- Используйте функцию int() (возвращает целое число из заданного объекта), чтобы преобразовать входную строку в целое число. Эта функция удаляет все ведущие нули.
- Верните результирующее число после удаления всех начальных 0 из входной строки.
Пример
Следующая программа возвращает число, которое удаляет все ведущие нули из числа, переданного в виде строки с помощью функции int():
# creating a function that removes the leading zeros # from a number passed as a string to the function def deleteLeadingZeros(inputString): # converting the input string to an integer removes all the leading zeros result = int(inputString) # returning the resultant number after removing leading zeros return result # input number as a string inputString = "0002056" print("Given String is:", inputString) # calling the deleteLeadingZeros() function by passing the input string to it print("After Removing Leading Zeros:", deleteLeadingZeros(inputString))
Выход
При выполнении вышеуказанная программа сгенерирует следующий вывод:
Given String is: 0002056 After Removing Leading Zeros: 2056
Заключение
В этой статье мы узнали, как удалить ведущие нули из числа, заданного в виде строки, тремя разными методами. Мы научились использовать срезы для получения подмножества итерируемого объекта, например строки, списка или кортежа. Мы также узнали, как использовать модуль регулярных выражений для замены (замены) одного шаблона другим.
Все права защищены. © Linux-Console.net • 2019-2023
Убрать нули из числа
Добрый день! Имею такое задание: вводится число, например 1134560809. Натуральное. Нужно убрать все нули из числа и на выходе получить 11345689. Как это сделать?
Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Убрать лишние нули
Нужно перевести число -999.9999 в -1,000, -1234567.0001236 в -1,234,567. А получается -1,000.0 и.
Убрать нули спереди числа!
Всем привет такая проблемка есть число например 060 или 004 или 230 нужно проверять если у него.
Убрать нули в десятичной части числа
При конвертировании строки в число остаются нули в десятичной части. Как их убрать? string sd =.
Убрать из ListBox все числа, содержащие нули
limit = количество элементов в ListBox1 ListBox1 содержит миллион чисел от 1 до 1000000.
Как убрать незначащие нули из вещественного числа?
Помогите пожалуйста! Есть число double value == 12 650 320. 250 000 Как убрать 0 после.
4460 / 3213 / 1125
Регистрация: 21.03.2016
Сообщений: 7,950
num = 1134560809 print(int(str(num).replace('0','')))
Регистрация: 29.04.2020
Сообщений: 34
огромное спасибо!
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
1 2 3 4 5 6 7 8 9 10
n = 1134560809 lst = [] while n: n, y = divmod(n, 10) if y != 0: lst.append(y) res = 0 for i, v in enumerate(lst): res += v * 10**(i) print(res)
Регистрация: 29.04.2020
Сообщений: 34
а можно ли это сделать через условный оператор? или через while, for?
Добавлено через 32 секунды
Спасибо!
1303 / 843 / 409
Регистрация: 12.03.2018
Сообщений: 2,305
Без списка
1 2 3 4 5 6 7 8 9
n = 1134560809 cnt = 0 res = 0 while n: n, y = divmod(n, 10) if y != 0: res += y * 10**cnt cnt += 1 print(res)
35367 / 19966 / 4181
Регистрация: 12.02.2012
Сообщений: 33,130
Записей в блоге: 13
Сообщение было отмечено newtmasglee как решение
Решение
1 2 3 4 5 6 7 8 9
n = 1134560809 cnt = 1 res = 0 while n: n, y = divmod(n, 10) if y != 0: res += y * cnt cnt *= 10 print(res)
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь
Убрать нули при разделении массива на положительные и отрицательные числа
Дан массив A размера N. Сформировать два новых массива B и C: в массив B записать все положительные.
Как убрать нули в начале числа с шестнадцатеричной системой счисления
Как убрать в начале чисел нули в Ф.А.? И возможно ли как-то напрямую вычислять значения в 16ной.
Убрать из текста нули
Доброе утро, прошу помощи с работой над текстом. Дан текстовый файл, в котором нужно из всех чисел.
Как убрать нули
Есть массив, вывожу задом-наперед, так как не знаю сколько именно чисел введет пользователь — делаю.
Убрать нули из матрицы
дана матрица и нужно рассчитать логарифм этой матрицы. но в матрице есть нули. можно ли как то.
Убрать нули из массива
Есть массив мне нужно убрать нули из массива т.е. уменьшить размерность массива. Подскажите, как.
Как убрать все нули из начала строки?
Подскажите, пожалуйста, регулярное выражение, чтобы убрать все нули из начала строки.
Количество нулей может быть разным(0012345, 0000012345, 000000000000000012345).
- Вопрос задан более двух лет назад
- 1193 просмотра
Комментировать
Решения вопроса 2
ltrim($str, ‘0’)
Ответ написан более двух лет назад
Нравится 9 1 комментарий
Кстати, ltrim тоже не универсально.
Я так думаю, что «000000», «0000.567» и «000asd» нужно в «0», «0.567» и «asd» превратить.
Короче, в общем случае нужно проверять содержимое строки.
0xD34F @0xD34F Куратор тега Регулярные выражения
Не надо никаких регулярных выражений:
Хотя, разумеется, есть такой вариант:
Ответ написан более двух лет назад
Нравится 5 7 комментариев
а зачем strval?
0xD34F @0xD34F Куратор тега Регулярные выражения
FanatPHP, чтобы на выходе было значение того же типа, что и на входе.
intval не катит. вдруг в строке float или что-то типа «000000sdfghj».
0xD34F @0xD34F Куратор тега Регулярные выражения
zombtron, всё-таки катит — перечитал вопрос, не увидел в примерах обрабатываемых строк ни флоат, ни «что-то типа».
0xD34F, Но в примере нет и указания, что будут строго целые с нулями в начале.
А люди частенько сводят общую задачу к желаемой. ) Да и вообще, в програмизме нужно все варианты учитывать, руководствуясь «аксиомой недосказанности».
0xD34F, Но пусть будет целое. Что intval сделает со строкой «00018446744073709551616»? )))
0xD34F @0xD34F Куратор тега Регулярные выражения
zombtron, да-да, а ещё нет указания, что будет строго строка.
Не нужно ничего учитывать. Достаточно считать, что автор вопрос умственно полноценен, понимает, что спрашивает. Ну а какой вопрос — такой ответ.