【问题标题】:How can I have an int variable with 0 as the first number in Python?如何在 Python 中使用 0 作为第一个数字的 int 变量?
【发布时间】:2015-02-11 17:55:23
【问题描述】:

所以,我在学校评估之前做了一些练习,想知道如何做到这一点,以便当我输入一个以 0 作为第一个值的整数时,它不会将其转换为没有零开始。这是我的程序的一小部分摘录:

initialNumber = int(input("Enter your 10 digit number: "))

while len(str(initialNumber)) != 10:
    print("Next time please enter a 10 digit numerical value excluding decimals...")
    time.sleep(1)
    initialNumber = int(input("Enter your 10 digit number: "))

calculator()

我正在使用 Python 3.4,我知道我可以按照以下方式做一些事情:

initialNumber = input("Enter your ten digit number")

我知道通过使用它可以保留“0”,但我需要将字符串转换为整数以用于算术目的。任何帮助将不胜感激:)

【问题讨论】:

  • 整数没有前导 0。如果您需要将整数用于整数类型操作(例如乘法),那么您需要将其存储为整数并且您不能有前导 0...您没有提到为什么要使用但记住您可以在返回整数之前重新格式化为字符串。
  • 如果将其转换为整数以用于数字目的,则没有数字。这只是一个数值。
  • 一个更好的问题可能是,“当我打印一个整数时,如何在左侧填充足够多的零,使其达到一定的长度?”
  • 前导零在 python2 中表示八进制,在 python3 中是无效语法
  • 你能解释一下你需要保留前导零的算术目的吗?

标签: python string int digit


【解决方案1】:

虽然我个人认为这样做没有意义。在执行数学运算之前,我会创建一个字符串变量来保存前导零。

initialNumber = (raw_input("Enter your 10 digit number: "))

while len(str(initialNumber)) != 10:
    print("Next time please enter a 10 digit numerical value excluding decimals...")
    time.sleep(1)
    initialNumber = (raw_input("Enter your 10 digit number: "))

leadingZeros = (len(initialNumber) - len(str(int(initialNumber)))) * "0"

calculator()

在算术之后,您可以轻松地将零连接到输出的开头。

【讨论】:

    【解决方案2】:

    如果您想要输入调用列表中的十个单独的 int 并映射到 int:

    initialNumber = list(map(int,(input("Enter your 10 digit number: "))))
    
    
    In [1]: initialNumber = list(map(int,(input("Enter your 10 digit number: "))))
    Enter your 10 digit number: 0123456789
    
    In [2]: initialNumber
    Out[2]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    while True:
        initialNumber = input("Enter your 10 digit number: ")
        if len(initialNumber) != 10 or not initialNumber.isdigit():
            print("Invalid input")
        else:
            print(list(map(int,initialNumber)))
            break
    

    通常您会使用 try/except 来检查输入是否为数字,但允许负数将不起作用,因此输出字符数会出错。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 2014-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多