初识Python(一)

一、第一个Python语句

创建 hello.py 文件,内容如下:

print 'hello,world'

 执行 hello.py 文件,即: 

python hello.py

执行结果如下:

wKiom1iJtkeSuGDUAAAG_o9dItw008.png

python内部执行过程如下:

wKioL1iJsN7A7bjYAADuBTdiMUs471.jpg

二、解释器

默认执行上述的hello.py文件,需要明确的指出hello.py脚本由python解释器来执行,即python hello.py。

另外还可在hello.py的文件头部指定解释器,可像执行shell脚本一样执行python脚本,如下: 

#!/usr/bin/env python
  
print 'hello,world'

并赋予hello.py可执行权限,如:chmod +x hello.py

这样,直接执行./hello.py或hello.py,执行结果如下:

wKiom1iJuWai7h9YAAAIQuRlDhs668.png

三、内容编码

python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill)

ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用8位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示256个符号。

Bin Dec Hex 缩写/字符 解释
00000000 0 00 NUL(null) 空字符
00000001 1 01 SOH(start of headling) 标题开始
00000010 2 02 STX (start of text) 正文开始
00000011 3 03 ETX (end of text) 正文结束
00000100 4 04 EOT (end of transmission) 传输结束
00000101 5 05 ENQ (enquiry) 请求
00000110 6 06 ACK (acknowledge) 收到通知
00000111 7 07 BEL (bell) 响铃
00001000 8 08 BS (backspace) 退格
00001001 9 09 HT (horizontal tab) 水平制表符
00001010 10 0A LF (NL line feed, new line) 换行键
00001011 11 0B VT (vertical tab) 垂直制表符
00001100 12 0C FF (NP form feed, new page) 换页键
00001101 13 0D CR (carriage return) 回车键
00001110 14 0E SO (shift out) 不用切换
00001111 15 0F SI (shift in) 启用切换
00010000 16 10 DLE (data link escape) 数据链路转义
00010001 17 11 DC1 (device control 1) 设备控制1
00010010 18 12 DC2 (device control 2) 设备控制2
00010011 19 13 DC3 (device control 3) 设备控制3
00010100 20 14 DC4 (device control 4) 设备控制4
00010101 21 15 NAK (negative acknowledge) 拒绝接收
00010110 22 16 SYN (synchronous idle) 同步空闲
00010111 23 17 ETB (end of trans. block) 传输块结束
00011000 24 18 CAN (cancel) 取消
00011001 25 19 EM (end of medium) 介质中断
00011010 26 1A SUB (substitute) 替补
00011011 27 1B ESC (escape) 溢出
00011100 28 1C FS (file separator) 文件分割符
00011101 29 1D GS (group separator) 分组符
00011110 30 1E RS (record separator) 记录分离符
00011111 31 1F US (unit separator) 单元分隔符
00100000 32 20 (space) 空格
00100001 33 21 !  
00100010 34 22 "  
00100011 35 23 #  
00100100 36 24 $  
00100101 37 25 %  
00100110 38 26 &  
00100111 39 27 '  
00101000 40 28 (  
00101001 41 29 )  
00101010 42 2A *  
00101011 43 2B +  
00101100 44 2C ,  
00101101 45 2D -  
00101110 46 2E .  
00101111 47 2F /  
00110000 48 30 0  
00110001 49 31 1  
00110010 50 32 2  
00110011 51 33 3  
00110100 52 34 4  
00110101 53 35 5  
00110110 54 36 6  
00110111 55 37 7  
00111000 56 38 8  
00111001 57 39 9  
00111010 58 3A :  
00111011 59 3B ;  
00111100 60 3C <  
00111101 61 3D =  
00111110 62 3E >  
00111111 63 3F ?  
01000000 64 40 @  
01000001 65 41 A  
01000010 66 42 B  
01000011 67 43 C  
01000100 68 44 D  
01000101 69 45 E  
01000110 70 46 F  
01000111 71 47 G  
01001000 72 48 H  
01001001 73 49 I  
01001010 74 4A J  
01001011 75 4B K  
01001100 76 4C L  
01001101 77 4D M  
01001110 78 4E N  
01001111 79 4F O  
01010000 80 50 P  
01010001 81 51 Q  
01010010 82 52 R  
01010011 83 53 S  
01010100 84 54 T  
01010101 85 55 U  
01010110 86 56 V  
01010111 87 57 W  
01011000 88 58 X  
01011001 89 59 Y  
01011010 90 5A Z  
01011011 91 5B [  
01011100 92 5C \  
01011101 93 5D ]  
01011110 94 5E ^  
01011111 95 5F _  
01100000 96 60 `  
01100001 97 61 a  
01100010 98 62 b  
01100011 99 63 c  
01100100 100 64 d  
01100101 101 65 e  
01100110 102 66 f  
01100111 103 67 g  
01101000 104 68 h  
01101001 105 69 i  
01101010 106 6A j  
01101011 107 6B k  
01101100 108 6C l  
01101101 109 6D m  
01101110 110 6E n  
01101111 111 6F o  
01110000 112 70 p  
01110001 113 71 q  
01110010 114 72 r  
01110011 115 73 s  
01110100 116 74 t  
01110101 117 75 u  
01110110 118 76 v  
01110111 119 77 w  
01111000 120 78 x  
01111001 121 79 y  
01111010 122 7A z  
01111011 123 7B {  
01111100 124 7C |  
01111101 125 7D }  
01111110 126 7E ~  
01111111 127 7F DEL (delete) 删除

由于ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode;

Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。Unicode是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由16位来表示(2个字节),即:2 **16 = 65536;

UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存,等;

所以,python解释器在加载.py文件中的代码时,会对内容进行编码(默认ascill),如果是python代码中包含中文,将会执行出错,如下: 

#!/usr/bin/env python

print "你好,世界"

报错如下:

wKioL1iJwpnh8FRAAAAu7LRM5WY995.png

因此,需要在py文件中显示的告诉python解释器,用什么编码来执行代码,如下: 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

print "你好,世界"

结果如下:

wKiom1iJw2iCToT8AAAKeYpHB9c086.png

四、注释

当行注释:在语句前加上#,被注释的语句在python中不会被执行,如下: 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

#这是python的第一个示例代码;

print "你好,世界"

注:#!/usr/bin/env python并不是单纯的注释信息,主要用来指定用什么解释器运行脚本以及解释器所在的位置;而# -*- coding: utf-8 -*-,用来指定文件编码为utf-8;

多行注释:在段落的前一行或开头及后一行或结尾,用'''包含起来,如下: 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''
这是
python的
第一个
示例代码
'''

print "你好,世界"

或者

#!/usr/bin/env python
# -*- coding: utf-8 -*-

'''这是
python的
第一个
示例代码'''

print "你好,世界"

执行脚本传入参数

Python可通过引用大量的模块,从而使开发的Python程序更加简洁、简明。Python的类库主要包括三种:

  • Python内部提供的模块
  • 第三方模块
    • 业内开源的模块
    • 程序员自己开发的模块

例如,Python内部提供一个sys的模块,其中的sys.platform用来获取当前系统平台,可使用import命令或from ...import...命令导入模块; 

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sys
 
print sys.platform

或者

#!/usr/bin/env python
# -*- coding: utf-8 -*-
  
from sys import platform
  
print platform

执行结果如下:

wKiom1iJ5Afh4SbaAAAJM46557U768.png

六、pyc 文件

在执行Python代码时,如果导入了其他的.py文件,那么在执行过程中会自动生成一个与其同名的.pyc文件,该文件就是Python解释器编译之后产生的字节码;代码经过编译可以产生字节码,字节码通过反编译也可以得到代码;

 

posted @ 2017-02-17 22:03  05ata  阅读(342)  评论(0编辑  收藏  举报