用Python从字符串中删除数字的前导零
在这篇文章中,我们将学习一个Python程序,从一个以字符串形式给出的数字中删除前导零。
假设我们已经取得了一个字符串格式的数字。现在我们将使用下面给出的方法去除所有的前导零(数字开头的零)。
使用的方法
以下是用于完成这项任务的各种方法
- 使用For Loop和remove()函数
-
使用Regex
-
使用int()函数
方法1:使用For Loop和remove()函数
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 创建一个函数 deleteLeadingZeros() ,从一个以字符串形式传递给该函数的数字中删除前导零。
-
使用 for循环, 用len()函数遍历字符串的长度。
-
len()函数 – len()方法返回一个对象中的项目数。当对象是一个字符串时,len()函数返回字符串中的字符数。
-
使用if条件语句和!=操作符来检查一个字符串中的当前字符是否为0
-
使用切分法获取字符串中前导零后的剩余字符。
-
返回从输入字符串中去除所有前导0后的结果字符串。
-
如果没有发现前导0,则返回0。
-
创建一个变量来存储以字符串形式传递的输入数字。
-
调用上述定义的deleteLeadingZeros()函数,将输入的字符串传递给它,得到去除前导零后的结果字符串。
-
用同样的方法检查其他没有前导零的字符串。
例子
下面的程序使用for Loop和remove()函数从一个以字符串形式传递的数字中删除了所有的前导零,返回一个字符串。
# 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:使用Regex
算法(步骤)
以下是执行所需任务时需要遵循的算法/步骤。-
- 使用import关键字来导入regex(re)模块。
-
创建一个函数 deleteLeadingZeros() ,从一个以字符串形式传递给该函数的数字中删除前导零。
-
创建一个变量来存储用于从输入字符串中去除前导零的regex模式。
-
使用 sub() 函数将匹配的regex模式替换为一个空字符串。
-
sub() 函数(返回一个字符串,其中所有匹配的给定模式的出现都被替换字符串所取代)。
-
在删除输入字符串的所有前导0后,打印出结果字符串。
例子
下面的程序以字符串的形式返回,从一个使用正则表达式传递的数字中删除了所有的前导0-。
# 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
总结
在这篇文章中,我们学习了如何使用三种不同的方法从一个以字符串形式给出的数字中去除前导零。我们学习了如何使用切分来获得一个可迭代的子集,如字符串、列表或元组。我们还学习了如何利用regex模块用一个模式替换(替代)另一个模式。