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 条评论
登录 后参与评论

相关文章

来自专栏FreeBuf

代码审计 | DedeCMS v 5.7 sp2 RemoveXSS bypass

DedeCMS 简称织梦CMS,当前最新版为 5.7 sp2,最近又去挖了挖这个CMS,发现过滤XSS的RemoveXSS函数存在缺陷导致可以被绕过。

793
来自专栏雪胖纸的玩蛇日常

老男孩Python全栈开发(92天全)视频教程 自学笔记03

1925
来自专栏技术分享

.NET/ASP.NET MVC Controller 控制器(深入解析控制器运行原理)

阅读目录: 1.开篇介绍 2.ASP.NETMVC Controller 控制器的入口(Controller的执行流程) 3.ASP.NETMVC Contro...

1776
来自专栏跟着阿笨一起玩NET

添加引用方式抛出和捕获干净的WebService异常

说明:【干净】指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message就是WS方法中抛出的异常消息,不含任何“杂质”。

461
来自专栏AhDung

【C#】添加引用方式抛出和捕获干净的WebService异常

说明:【干净】指的是客户端在捕获WebService(下称WS)抛出的异常时,得到的ex.Message就是WS方法中抛出的异常消息,不含任何“杂质”。

493
来自专栏抠抠空间

爬虫之urllib包以及request模块和parse模块

1440
来自专栏Danny的专栏

在JSP页面中调用另一个JSP页面中的变量

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huyuyang6688/article/...

854
来自专栏JetpropelledSnake

Django学习笔记之Django中间件

1325
来自专栏个人分享

MongoDB的基本使用

函数limit和skip分别表示可以限制返回结果的最大条数和忽略掉集合中的钱N个文档

822
来自专栏C/C++基础

Google C++编程风格指南(一)之头文件的相关规范

一个良好的编程规范和风格是一名程序猿成熟的标志。规范的编码可以减少代码冗余,降低出错概率,便于代码管理和代码交流等等,事实上,其作用远不止这些,我们要牢记编码规...

921

扫码关注云+社区