使用 Python 从给定的字符串数字中删除前导零

pythonserver side programmingprogramming更新于 2024/1/4 12:33:00

在本文中,我们将学习一个 Python 程序,用于从给定的字符串数字中删除前导零。

假设我们已获取字符串格式的数字。我们现在将使用下面给出的方法删除所有前导零(数字开头的零)。

使用的方法

以下是用于完成此任务的各种方法 -

  • 使用 For 循环和 remove() 函数

  • 使用正则表达式

  • 使用 int() 函数

方法 1:使用 For 循环和 remove() 函数

算法(步骤)

以下是执行所需任务要遵循的算法/步骤。 −

  • 创建一个函数deleteLeadingZeros(),删除传递给该函数的字符串数字的前导零。

  • 使用for循环,使用 len() 函数遍历字符串的长度。

  • len() 函数 − 对象中的项目数由 len() 方法返回。当对象是字符串时,len() 函数返回字符串中的字符数。

  • 使用 if 条件语句和 != 运算符检查字符串中的当前字符是否不为 0

  • 使用切片获取前导零后的字符串剩余字符。

  • 从输入字符串中删除所有前导 0 后返回结果字符串。

  • 如果没有找到前导 0,则返回 0。

  • 创建一个变量来存储作为字符串传递的输入数字。

  • 通过将输入字符串传递给上面定义的 deleteLeadingZeros() 函数来调用它,以获取删除前导零后的结果字符串。

  • 以同样的方式检查另一个没有前导的字符串零。

示例

以下程序返回一个字符串,该字符串使用 for 循环和 remove() 函数从作为字符串传递的数字中删除所有前导零 -

# 创建一个函数,删除前导零
# 从作为字符串传递给函数的数字
def deleteLeadingZeros(inputString):
   # 遍历字符串的长度
   for k in range(len(inputString)):
      # 检查字符串的当前字符是否不是 0
      if inputString[k] != '0':
         # 使用切片获取剩余的字符串
         outputString= inputString[k::]
         # 返回删除前导 0 后的结果字符串
         return outputString
   # 如果整个字符串中没有找到前导 0,则返回 0
   return "0"
# 输入数字作为字符串
inputString = "0002056"
print("给定字符串是:", inputString)
# 通过将输入字符串传递给 deleteLeadingZeros() 函数来调用它
print("删除前导零后:", deleteLeadingZeros(inputString))
# 检查是否有其他没有前导零的字符串
inputString = "256"
print("给定字符串是:", inputString)
# 通过将输入字符串传递给它来调用 deleteLeadingZeros() 函数
print("删除前导零后:", deleteLeadingZeros(inputString))

输出

执行时,上述程序将生成以下输出 -

给定字符串是:0002056
删除前导零后:2056
给定字符串为:256
删除前导零后:256

方法 2:使用正则表达式

算法(步骤)

以下是执行所需任务所要遵循的算法/步骤。 −

  • 使用 import 关键字导入 regex(re) 模块。

  • 创建一个函数 deleteLeadingZeros(),该函数从作为字符串传递给该函数的数字中删除前导零。

  • 创建一个变量来存储用于从输入字符串中删除前导零的正则表达式模式。

  • 使用 sub() 函数将匹配的正则表达式模式替换为空字符串。

  • sub() 函数(返回一个字符串,其中所有匹配的给定模式都被替换字符串替换)。

  • 从输入字符串中删除所有前导 0 后打印结果字符串。

示例

以下程序返回如下使用正则表达式从作为字符串传递的数字中删除所有前导零的字符串 −

# 导入 re 模块
import re
# 创建一个删除前导零的函数
# 从作为字符串传递给函数的数字中删除前导零
def deleteLeadingZeros(inputString):
    # 用于从输入字符串中删除前导零的正则表达式模式
    regexPattern = "^0+(?!$)"
    # 将匹配的正则表达式模式替换为空字符串
    outputString = re.sub(regexPattern, "", inputString)
    # 删除前导零后返回输出字符串
    return outputString
    # 输入数字作为字符串
inputString = "0002056"
print("给定字符串为:", inputString)
# 通过将输入字符串传递给 deleteLeadingZeros() 函数来调用它
print("删除前导零后:", deleteLeadingZeros(inputString))

输出

执行时,上述程序将生成以下输出 -

给定字符串为:0002056
删除前导零后: 2056

方法 3:使用 int() 函数

算法(步骤)

以下是执行所需任务需要遵循的算法/步骤。−

  • 创建一个函数 deleteLeadingZeros(),该函数从作为字符串传递给该函数的数字中删除前导零。

  • 使用 int() 函数(从给定对象返回一个整数)将输入字符串转换为整数。此函数删除所有前导零。

  • 返回从输入字符串中删除所有前导零后的结果数字。

示例

以下程序返回一个数字,该数字使用 int() 函数从作为字符串传递的数字中删除所有前导零 -

# 创建一个删除前导零的函数
# 从作为字符串传递给函数的数字中删除前导零
def deleteLeadingZeros(inputString):
    # 将输入字符串转换为整数会删除所有前导零
    result = int(inputString)
    # 返回删除前导零后的结果数字
    return result
# 输入数字作为字符串
inputString = "0002056"
print("给定字符串是:", inputString)
# 通过将输入字符串传递给 deleteLeadingZeros() 函数来调用它
print("删除前导零后:", deleteLeadingZeros(inputString))

输出

执行时,上述程序将生成以下输出 -

给定字符串是:0002056
删除前导零后:2056

结论

在本文中,我们学习了如何使用三种不同的方法从给定的字符串数字中删除前导零。我们学习了如何使用切片来获取可迭代对象的子集,例如字符串、列表或元组。我们还学习了如何利用正则表达式模块将一个模式替换为另一个模式。


相关文章