亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python無法處理以0開頭的數字字符串。為什么?

Python無法處理以0開頭的數字字符串。為什么?

白衣非少年 2019-11-04 09:51:20
我剛剛在python解釋器上執行了以下程序:>>> def mylife(x):...     if x>0:...             print(x)...     else:...             print(-x)... >>> mylife(01)File "<stdin>", line 1mylife(01)        ^SyntaxError: invalid token>>> mylife(1)1>>> mylife(-1)1>>> mylife(0)0現在,我已經看到了這一點,但是正如鏈接所言,八進制的0在python中不再起作用(即在python3中不起作用)。但這是否意味著應該正確解釋以0開頭的數字的行為?以base-2還是以正常base-10表示?既然不是這樣,為什么python會表現出這樣的行為?這是實施問題嗎?還是語義問題?
查看完整描述

2 回答

?
jeck貓

TA貢獻1909條經驗 獲得超7個贊

我的猜測是,由于012在python3.x中不再是八進制文字常量,因此他們不允許使用該012語法以避免奇怪的向后兼容錯誤??紤]使用八進制常量的python2.x腳本:


a = 012 + 013

然后將其移植到python 3,它仍然有效-它只是為您提供a = 25而不是a = 21您以前期望的(十進制)。追蹤該錯誤很有趣。


查看完整回答
反對 回復 2019-11-04
  • 2 回答
  • 0 關注
  • 2011 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號