专栏首页企鹅号快讯Python基础补课一 开头注释

Python基础补课一 开头注释

#!/usr/bin/python

or

#!/usr/bin/env python

"#!"符号并不是Python 专属,它实际上是类Unix系统中通用的,并且有一个名字叫做“Shebang”。

它的作用是指定将要执行的脚本的解释器,也就是说它规定了接下来的所有代码要由谁来解释。例如,#!/bin/sh 的意思就是用sh shell来执行这个脚本。假如一个脚本连带它的地址叫做path/to/script,而它的第一行写着#!/bin/sh,那么相当于直接在命令行直接输入/bin/sh path/to/script,path/to/script在这里作为/bin/sh 的第一个参数。

Shebang的格式如下:

#!interpreter [optional-arg]

interpreter 是一个绝对地址,指向一个可执行的程序,optional-arg 是一个可选的参数,就如#!/usr/bin/env python中所示,python在这里是env的参数,env在环境变量中寻找名叫python的程序,然后用它来执行某个第一行写了这段代码的程序。另外,"#!"符号后面也可以加空格,不影响它的功能。

显然,#!/usr/bin/env python的写法要比#!/usr/bin/python更有通用性。

除此之外,单独的"#"符号更一般的功能是把整行代码作为注释。在类Unix 系统中,"#!"是个例外,它不被看做注释,而在Windows 系统中没有Shebang 的概念,就算把#和!写在一起,也是会被看成注释。所以在Windows 系统中这行代码其实是没有用的。

# -*- coding: utf-8 -*-

这是Python特有的表达方式。类似于Shebang,这段代码前面虽然有注释符号"#",但是却有着特定的功能。它的作用是声明所在的Python文件使用哪种编码方式。

默认的编码方是ASCII码

这个声明需要满足如下正则表达式:

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

所以实际上一般见到的那种写法只是为了好看。#coding=utf-8和#encoding:utf-8等等写法也都是可以识别的。

另外,就像"#!"要写在第一行,编码声明也规定要写在第一行(当第一行没有Shebang 时)或第二行。

· 以上规定来自于PEP(Python Enhancement Proposals),PEP 是由Python 社区提议和维护的,可以看作是Python 的编码规范。著名的提案有建议Python编程样式的PEP8。

本文来自企鹅号 - Arkh媒体

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 分布式系统CAP理论

    往期精选 在讨论常见架构前,先简单了解一下CAP理论: CAP是Consistency、Availablity和Partition-tolerance的缩写。分...

    企鹅号小编
  • 对5种主流编程语言的吐槽

    不可否认,想要成为一名优秀的程序员确实是需要掌握多种编程语言。通过这几年的自虐式学习,小编也慢慢的掌握了这些编程语言。接下来要为大家,介绍五款让人又爱又恨的编程...

    企鹅号小编
  • 盘点·GitHub最著名的20个Python机器学习项目

    摘要 摘要:开源是技术创新和快速发展的核心。这篇文章向你展示Python机器学习开源项目以及在分析过程中发现的非常有趣的见解和趋势。 我们分析了GitHub上的...

    企鹅号小编
  • centos7.5升级Python2.x

    用户2398817
  • 深入理解Linux内核.pdf

    为了彻底理解是什么使得Linux能正常运行以及其为何能在各种不同的系统中运行良好,你需要深入研究内核最本质的部分。内核处理CPU与外界间的所有交互,并且决定哪些...

    用户3157710
  • windows下python中pip与easy_install相关

    下载地址:https://pypi.python.org/pypi/ez_setup

    汐楓
  • CentOS 7 下安装 Python

    当前最新的 CentOS 7.3 默认安装的是 Python 2 ,并且默认的官方 yum 源中不提供 Python 3 的安装包。最近需要在机器上装awscl...

    用户2398817
  • 分布式系统CAP理论

    往期精选 在讨论常见架构前,先简单了解一下CAP理论: CAP是Consistency、Availablity和Partition-tolerance的缩写。分...

    企鹅号小编
  • 大型系统演进之路-负载均衡演进

    通过Nginx的反向代理将请求分发到tomcat中,如果tomcat支持100并发,Nginx支持50000并发,理论上nginx把请求发送到500个tomca...

    春哥大魔王
  • Spring Boot应用 打包与部署指南

    Java Web应用在Spring Boot之前,通常是打包成war(Web application ARchive)包,结合Tomcat来完成部署。

    ken.io

扫码关注云+社区

领取腾讯云代金券