如何在Python中使用0作为第一个数字的int变量?

时间:2015-02-11 17:55:23

标签: python string int digit

所以,我在学校评估之前做了一些练习,想知道我是怎么做的,所以当我输入一个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”,但我需要将字符串转换为整数以用于算术目的。任何帮助将不胜感激:)

2 个答案:

答案 0 :(得分:2)

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

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()

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

答案 1 :(得分:0)

如果您想从输入的输入调用列表中选择10个单独的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检查输入是否为数字,但允许负数不会起作用,因为输出字符数是错误的。