设置python编码

python 指定编码

通常我们看到的指定python编码的方式有
# coding=utf-8或者
# coding:utf-8 或者
# -*- coding:utf-8 -*-

官方文档查到指定编码的规则需要满足以下正则表达式

^[ \t\f]*#.*?coding[:=][ \t]*([-_.a-zA-Z0-9]+)

所以说以上写法都正确,或者可以再加一点,改成 # I want to use coding=utf-8 也可以,这个指定编码的注释叫魔术注释(magic comment)。

除此之外我们还见过

#!/usr/bin/python
# coding=utf-8

这种形式,那么指定编码的注释放第一行或者第二行有没有什么区别?文档中原话是这样说的

The first group of this expression is then interpreted as encoding name. If the encoding is unknown to Python, an error is raised during compilation. There must not be any Python statement on the line that contains the encoding declaration. If the first line matches the second line is ignored

意思就是

这个正则表达式匹配到的第一组作为编码名称,未指定编码编译时就会报错,编码声明的上面不能有任何python代码,如果第一行匹配到那么第二行就会被忽略

也就是声明编码的注释可以放第一行,也可以放第二行(第三行不行),但是只有最上面的编码注释会生效。
那么当她在第二行时,上面我们所写的第一行#! /usr/bin/python是什么意思呢?
这行是声明脚本由什么程序执行,当使用python test.py这种形式执行代码时,这行没什么用处,因为你指定了脚本的运行程序,当你用./test.py这种形式运行脚本才会有用,脚本会根据第一行声明自动使用python来运行脚本

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值