我在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
任何想法有什么不对?
答案 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