一、编码
最早计算机编码是ASCII编码,其中包含大小写字母、数字和一些符号。一共127个字符,只需要一个字节。但后来需要处理中文一个字节满足不了,为了把中文编入进去中国制定了GB2312编码。各国也制定了各自不同的编码方式,如果处理一篇复合文章则会出现乱码问题。所以Unicode诞生了,它将所以语言编码其中,一般是用2个字节表示(偏僻字会需要4个字节)。所以ASCII码编码的字符“A”用Unicode编码只需前面加0,即:00000000 01000001。
Unicode编码中也会遇见问题,包含的多了同样浪费的也就多,如果一篇文章全是英文,则用Unicode编码比ASCII编码要浪费一倍的空间。所以为解决这个问题又将Unicode编码改进为“可变长度编码”的UTF-8,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:
字符 | ASCII | Unicode | UTF-8 |
---|---|---|---|
A | 01000001 | 00000000 01000001 | 01000001 |
中 | x | 01001110 00101101 | 11100100 10111000 10101101 |
从表格中可看出,ASCII相当于UTF-8中的一部分,所以只支持ASCII编码的软件也可以再UTF-8编码环境下使用。
用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到文件。浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器。
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 当然你也可以为源码文件指定不同的编码:
# -*- coding: gb2312 -*-
二、标识符
Python标识符就以下三点:
- 标识符由字母,数字,下划线_组成。
- 数字不能作为首字母。
- 区分字母大小写。
以下划线开头的标识符是有特殊意义的。以单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用"from xxx import *"而导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里 特殊方法专用的标识,如__init__()代表类的构造函数。
三、保留字
保留字也是关键字,其不能作为常数、变数、变量或其它标识符。Python标准库提供keyword模块可以输出所有关键字:
>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
四、注释
Python中单行注释由“#”开头:
#第一行注释
print('Hello word')#输出Hello word
输出结果:
Hello word
多行注释可以是“#”,也可以以三个单引号'''....'''或三个双引号"""...""",Python中单引号和双引号相同,但必须各自对应使用。
#第一行注释
#第二行注释
'''
多行注释
使用单引号
'''
"""多行注释
使用
双引号
"""
print('Hello man')
str='sdjfa"ds"ds'#双引号中用单引号或单引号中用双引号不需要转译字符
print(str)
str="sdjfa'ds'ds"
print(str)
str='sdjfa\'ds\'ds'#单引号中用单引号或双引号中用双引号需要用转译字符
print(str)
输出结果:
Hello man
sdjf"ds"ds
sdjfa'ds'ds
sdjfa'ds'ds
五、多行语句
Python通常是一行写完代表一条语句末尾不需要分号,但有时语句过长则需要换行,可以使用反斜杠\来实现多行语句,如下:
mony=mony_one+\
mony_two+\
mony_three
在()、[]、{}中的多行语句不需要加反斜杠\也能实现多行语句,如下:
mony=["mony_one",
"mony_two",
"mony_three"]
实现多行语句输出有两种:加转译字符\n,或使用三个双引号"""..."""或三个单引号'''...'''但注意需要赋值给某个变量,且注意格式,否则就会成为注释。例:
str='Hello\nWorld'
print(str)
str="""Hello
this
world"""
print(str)
结果如下:
Hello
World
Hello
this
world
六、行与缩进
Python最大的特色是它独特的缩进来表示代码块。它不在使用大括号{}来控制类,函数,其它逻辑块。缩进的额空白数量是可变的,但同一代码块的空白数量必须一致,这个必须严格遵守否则会报错或逻辑错误
s=0
i=1
if i<=100:
s+=i
i=i+1
else:
print(s)
七、空行
函数与函数之间、类与类之间、类与函数接口之间都需要用一空行间隔,以突出新一段代码的开始。
空行与缩进不同并不是Python的语法,但是代码的一部分,不加空行代码编译运行也不会报错。但是空行是用来分隔不同功能代码,有利于阅读,和后期的维护及重构。
八、代码组
缩进相同的一组语句构成一个代码块,我们称之代码组。像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。我们将首行及后面的代码组称为一个子句(clause)。
如下实例:
if expression :
suite
elif expression :
suite
else :
suite
九、Print输出
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end="":
#!/usr/bin/python3
x="a"
y="b"
# 换行输出
print( x )
print( y )
print('---------')
# 不换行输出
print( x, end=" " )
print( y, end=" " )
print()
以上实例执行结果为:
a
b
---------
a b
十、import与from...import
在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
《自己学习使用,如有雷同此为借鉴》