SyntaxError: 不允许在十进制整数文字中使用前导零
SyntaxError: leading zeros in decimal integer literals are not permitted
当我们声明一个带有前导零的整数时,会出现 Python“SyntaxError: leading zeros in decimal integer literals are not permitted”。
要解决该错误,请从整数中删除任何前导零或将值包装在字符串中。
下面是错误如何发生的示例。
主程序
# ⛔️ SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers my_num = 08
在 Python 中,整数中不允许有前导零。
从整数中删除前导零
解决错误的一种方法是删除所有前导零。
主程序
my_num = 8 print(my_num) # 👉️ 8
从整数中删除前导零解决了这个问题。
主程序
# ⛔️ causes error my_num = 007 # -------------------------------- # ✅ works as intended my_num = 7
数字不能以前导零开头,将包含前导零的字符串转换为数字会自动删除前导零。
主程序
my_str = '0007' my_int = int(my_str) print(my_int) # 👉️ 7
0
在 Python 中唯一可以以整数开头的是0
它本身。
主程序
my_int = 0 print(my_int) # 👉️ 0
将值包裹在字符串中以解决错误
或者,您可以将值包装在字符串中。
主程序
my_num = '08' print(my_num) # 👉️ '08'
当值用引号引起来时,它是一个字符串并且可以以前导零开头。
格式化带有前导零的字符串
如果需要用前导零将值填充到特定长度,则可以使用
格式化字符串文字。
主程序
my_int = 7 result = f'{my_int:03}' print(result) # 👉️ 007 result = f'{my_int:04}' print(result) # 👉️ 0007 result = f'{my_int:05}' print(result) # 👉️ 00007
如果您需要将整数列表格式化为 N 个前导零,请使用列表理解。
主程序
a_list = [3, 5, 7, 9] new_list = [f'{item:03}' for item in a_list] print(new_list) # 👉️ ['003', '005', '007', '009']
列表推导用于对每个元素执行某些操作或选择满足条件的元素子集。
格式化字符串文字 (f-strings) 让我们通过在字符串前加上f
.
主程序
var1 = 'bobby' var2 = 'hadz' result = f'{var1}{var2}' print(result) # 👉️ bobbyhadz
确保将表达式括在大括号 – 中{expression}
。
格式化字符串文字还使我们能够在表达式块中使用
格式规范迷你语言
。
冒号后的0
是填充字符。
主程序
my_int = 7 result = f'{my_int:03}' print(result) # 👉️ 007
如有必要,示例将字符串填充到长度为 3、4 或 5 的前导零。
如果字符串已经达到指定长度,则不添加前导零。
用引号包裹字典键或列表元素
这同样适用于字典键和列表项。
主程序
# ⛔️ SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers my_dict = {04: 'hi'} # ⛔ ️SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers my_list = [01, 02]
您可以将字典键包装在一个字符串中或删除前导零。
主程序
my_dict = {'04': 'hi'} print(my_dict['04']) # 👉️ 'hi'
如果列表元素以前导零开头,请确保将所有列表元素用引号引起来。
主程序
my_list = ['01', '02'] print(my_list[0]) # 👉️ '01' print(my_list[1]) # 👉️ '02'
创建八进制文字
如果您打算指定八进制文字,请在其前面加上前缀0o
。
主程序
example_1 = 0o72 print(example_1) # 👉️ 58 example_2 = 0o73 print(example_2) # 👉️ 59
八进制表示法以8
rather than10
作为基数。
额外资源
您可以通过查看以下教程来了解有关相关主题的更多信息: