我想在电话号码/号码前显示零

时间:2014-05-02 04:58:22

标签: python

我在python中放了什么:

phoneNumber = input("Enter your Phone Number: ")

print("Your number is", str(phoneNumber))

如果我把021999888:

,我会得到什么
Enter your Phone Number: 021999888
  

Traceback(最近一次调用最后一次):文件“None”,第1行,in   无效令牌:,第1行,第9位

如果我放21,我会得到什么:

  

输入您的电话号码:21

     

你的号码是21

如果我把02:

,我会得到什么
  

输入您的电话号码:02

     

您的号码是2

如果我放021,我会得到什么:

  

输入您的电话号码:021

     

你的号码是17

如果我把09:

,我会得到什么
Enter your Phone Number: 09

Traceback (most recent call last):
  File "None", line 1, in <module>
invalid token: <string>, line 1, pos 2

任何想法有什么不对?

3 个答案:

答案 0 :(得分:2)

如果在数字文字之前有0,那么它是八进制格式。在这种情况下,任何大于7的数字都将导致错误。我认为您应该考虑将电话号码存储为字符串,因此请改用raw_input()。这也将保持领先0。

答案 1 :(得分:1)

数字为八进制格式之前的0

>>> 02
2
>>> 021
17
>>> 0562
370
>>> 02412
1290
>>> oct(1)
'01'
>>> oct(1290)
'02412'

使用raw_input()确保输入不必是您可以在shell中调用的内容:

>>> number = raw_input('Enter your phone number: ')
Enter your phone number: 04081546723
>>> number
'04081546723'

如果你在shell中调用021999888,会发生以下情况:

>>> 021999888
  File "<stdin>", line 1
    021999888
            ^
SyntaxError: invalid token

查看here以获取有关八进制数的更多信息。

答案 2 :(得分:0)

@perreal是对的。您应该使用raw_input代替:

>>> phoneNumber = raw_input("Enter your Phone Number: ")
>>> print("Your number is", phoneNumber)
Enter your Phone Number: 091234123
Your number is 091234123