You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3.x中整数前导零引发语法错误的原因及解决方案咨询(初学者适用)

你的Python前导零报错问题:原因、解决办法+基础概念科普

嘿,作为编程初学者碰到这个问题太正常啦!我给你讲得明明白白的~

为啥会出现这个报错?

你写的07是带前导零的数字,但Python 3以后禁止在十进制整数前面加前导零,原因很简单:

  • 在编程里,前导零原本是用来标记八进制数的(八进制是基数为8的计数系统,只有0-7这8个数字)。比如早年Python 2里,07会被当成八进制的7,但如果写010就会被当成八进制的10,转成十进制就是8——这很容易搞混!
  • 为了避免这种「不小心加个零就改变数字意义」的坑,Python 3干脆把这个语法禁用了,要求必须用0o(注意是小写字母o,不是数字0)作为八进制数的前缀,这样一眼就能看出来这不是十进制数。

对应的解决办法

分两种情况处理:

  • 如果你本来就是想写十进制的7:直接把前面的零删掉就行,这是最常见的情况:
    fav_number = 7
    print("My favourite number is:", fav_number)
    
    运行后就会正常输出My favourite number is: 7。
  • 如果你确实需要表示八进制数:那就加上0o前缀,比如:
    fav_number = 0o7
    print("My favourite number is:", fav_number)  # 输出十进制的7
    print("My favourite number (octal):", oct(fav_number))  # 输出八进制格式的'0o7'
    

补充基础概念:不同进制的数字在Python里的写法

编程里除了十进制,还有几种常用进制,Python都有明确的前缀规则:

  • 十进制:日常用的数字,0-9,直接写,比如7、123。
  • 八进制:基数8,数字0-7,前缀0o,比如0o10对应十进制的8。
  • 十六进制:基数16,数字0-9+a-f(大小写都行),前缀0x,比如0x10对应十进制的16。
  • 二进制:基数2,数字0和1,前缀0b,比如0b10对应十进制的2。

内容的提问来源于stack exchange,提问作者viveooo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 18:12:34