python 在线

886Python 基础语法

脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单。

#!/usr/bin/python : 是告诉操作系统执行这个脚本的时候,调用 /usr/bin 下的 python 解释器;

#!/usr/bin/env python(推荐): 这种用法是为了防止操作系统用户没有将 python 装在默认的 /usr/bin 路径里。当系统看到这一行的时候,首先会到 env 设置里查找 python 的安装路径,再调用对应路径下的解释器程序完成操作。

#!/usr/bin/python 相当于写死了python路径;

#!/usr/bin/env python 会去环境设置寻找 python 目录,推荐这种写法

885Python 基础语法

执行脚本传入参数,使用sys模块,编辑 test.py 如下

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import sys

print sys.argv

sys.argv 用来获取命令行参数

运行命令,执行结果:

./test.py hello
['./test.py', 'hello']

sys.argv[0] 代表文件本身路径,所带参数从 sys.argv[1] 开始。

884Python 中文编码

在 Eclipse 中调试 python 例子时候,提示:

SyntaxError: (unicode error) 'utf-8' codec can't decode byte 0xb4 in position 0:invalid start byte,

基本知识:在 python 中默认的编码格式是 utf-8。所以怎么会报不能按 utf-8 来解码嘞?一头雾水啊。

问题的解决:

1、Eclipse 中 Window->Preferences:

最后在 Eclipse 安装目录中的 eclipse.ini 文件最后加上 -Dfile.encoding=UTF-8 就行了,最终写入文件的中文就不会出现乱码的问题了。

2、使用 notepad++ 打开 test.py 发现文件存储的格式是 ANSI

只要将保存文件的格式换成 UTF-8 就好了。

883Python 中文编码

python2.x 脚本加上 # -*- coding: UTF-8 -*- 或者 #coding=utf-8 后windows 命令提示符下输出中文字符串还会出现乱码。

解决方法需要先使用 decode("utf-8") 转换成 utf-8 编码,然后使用 encode("gbk") 转换成 gbk 编码,才能在 windows 命令提示符下正常输出中文。

例如:

>>> # -*- coding: UTF-8 -*-
>>> s="我是中文 "
>>> print s.decode("utf-8").encode("gbk")

原因是 windows 命令提示符的显示编码为 gbk 编码。

在命令提示符下使用 chcp 查询编码。

"活动代码页:936" 代表命令提示符的编码为 "gbk"

"活动代码页:65001" 代表命令提示符的编码为 "utf-8"

882Python 中文编码

其实pycharm右下角就可以切换编码,不用这么麻烦:

但是,如果你文件已经指定了编码 # -*- coding: UTF-8 -*-,这里就不能修改了: