1、Python标识符
在 Python 里,标识符由字母、数字、下划线组成。
在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。
Python 中的标识符是区分大小写的。
以下划线开头的标识符是有特殊意义的。
以双下划线开头的 __foo 代表类的私有成员,__foo(self)代表类的私有方法,不能直接从外部调用,需通过类里的其他方法调用。
以双下划线开头和结尾的 __foo__ 代表 Python 里特殊方法专用的标识,如 __init__() 代表类的构造函数。
2、Python 保留字符
下面的列表显示了在Python中的保留字。这些保留字不能用作常数或变数,或任何其他标识符名称。
所有 Python 的关键字只包含小写字母。
and | exec | not |
assert | finally | or |
break | for | pass |
class | from | |
continue | global | raise |
def | if | return |
del | import | try |
elif | in | while |
else | is | with |
except | lambda | yield |
3、行和缩进
学习 Python 与其他语言最大的区别就是,Python 的代码块不使用大括号 {} 来控制类,函数以及其他逻辑判断。
python 最具特色的就是用缩进来写模块。
缩进的空白数量是可变的,但是所有代码块语句必须包含相同的缩进空白数量,这个必须严格执行。如下所示:
1 if True: 2 print ("True") 3 else: 4 print ("False")
以下代码将会执行错误:
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 if True: 6 print("Answer") 7 print("True") 8 else: 9 print("Answer") 10 # 没有严格缩进,在执行时会报错 11 print("False")
执行以上代码,会出现如下错误提醒:
1 E:\Python\PythonLearing\venv\Scripts\python.exe E:/Python/PythonLearing/test.py 2 File "E:/Python/PythonLearing/test.py", line 11 3 print("False") 4 ^ 5 IndentationError: unindent does not match any outer indentation level
IndentationError: unindent does not match any outer indentation level。
错误表明,你使用的缩进方式不一致,有的是 tab 键缩进,有的是空格缩进,改为一致即可。
如果是 IndentationError: unexpected indent 错误, 则 python 编译器是在告诉你"Hi,老兄,你的文件里格式不对了,可能是tab和空格没对齐的问题",所有 python 对格式要求非常严格。
因此,在 Python 的代码块中必须使用相同数目的行首缩进数。
建议你在每个缩进层次使用 单个制表符 或 两个空格 或 四个空格 , 切记不能混用。
4、多行语句
Python语句中一般以新行作为语句的结束符。
但是我们可以使用斜杠( \)将一行的语句分为多行显示,如下所示:
1 total = item_one + \ 2 item_two + \ 3 item_three
语句中包含 [], {} 或 () 括号就不需要使用多行连接符。如下实例:
1 days = ['Monday', 'Tuesday', 'Wednesday', 2 'Thursday', 'Friday']
5、Python 引号
Python 可以使用引号( ' )、双引号( " )、三引号( ''' 或 """ ) 来表示字符串,引号的开始与结束必须的相同类型的。
其中三引号可以由多行组成,编写多行文本的快捷语法,常用于文档字符串,在文件的特定地点,被当做注释。
1 word = 'word' 2 sentence = "这是一个句子。" 3 paragraph = """这是一个段落。 4 包含了多个语句"""
6、Python注释
python中单行注释采用 # 开头。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 # 第一个注释 6 print ("Hello, Python!"); # 第二个注释
输出结果:
1 Hello, Python!
python 中多行注释使用三个单引号(''')或三个双引号(""")。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 6 ''' 7 这是多行注释,使用单引号。 8 这是多行注释,使用单引号。 9 这是多行注释,使用单引号。 10 ''' 11 12 """ 13 这是多行注释,使用双引号。 14 这是多行注释,使用双引号。 15 这是多行注释,使用双引号。 16 """
7、Print 打印
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 ' end=' 。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 x="a" 6 y="b" 7 # 换行输出 8 print(x) 9 print(y) 10 11 print ('---------') 12 # 不换行输出 13 print(x, end = ' ') 14 print(y, end = ' ') 15 16 17 # a 18 # b 19 # --------- 20 # a b
格式化方法,可以用format实现格式化。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 age = 20 6 name = 'Swaroop' 7 print('{0} was {1} years old when he wrote this book'.format(name, age)) 8 print('Why is {0} playing with that python?'.format(name)) 9 10 11 # Swaroop was 20 years old when he wrote this book 12 # Why is Swaroop playing with that python?
格式化方法,也可以使用%s和%d实现,%s对应字符变量,%d对应数字变量。另外还有%r,打印变量原始类型,一般作调试用。
1 #!/user/bin/env ptyhon 2 # -*- coding:utf-8 -*- 3 # Author: VisonWong 4 5 age = 20 6 name = 'Swaroop' 7 print('%s was %d years old when he wrote this book' %(name,age) ) 8 print('Why is %s playing with that python?' %name) 9 10 11 # Swaroop was 20 years old when he wrote this book 12 # Why is Swaroop playing with that python?
8、变量赋值及命名规则
① 声明一个变量name,变量name的值为:“wcw”
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 name = "wcw"
② 变量命名的规则
1 变量定义的规则: 2 3 变量名只能是 字母、数字或下划线的任意组合 4 变量名的第一个字符不能是数字 5 以下关键字不能声明为变量名 6 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 7 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
③ 扩展 (给变量name1赋值Alex li,变量name2赋值为变量name1,name1重赋值Jack Chen,此时name2的值为多少?)
1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 #-Author-Lian 4 name1 = "Alex Li" 5 6 name2 = name1 7 print(name1, name2) 8 9 name1 = "Jack Chen" 10 11 print("What is the value of name2 now?")
由图所示,所以最后name1的值为Jack Chen,name2的值为Alex li。
9、字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。
其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode。
Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。
Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码。
规定所有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536。注:此处说的的是最少2个字节,可能更多。
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文
1 #!/usr/bin/env python 2 3 print "你好,世界"
改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:
1 #!/usr/bin/env python 2 # -*- coding: utf-8 -*- 3 4 print "你好,世界"
注:python2.x版本,默认支持的字符编码为ASCll python3.x版本,默认支持的是Unicode,不用声明字符编码可以直接显示中文。
10、标准数据类型
在内存中存储的数据可以有多种类型。
例如,一个人的年龄可以用数字来存储,他的名字可以用字符来存储。
Python 定义了一些标准类型,用于存储各种类型的数据。
Python有五个标准的数据类型:
1、Numbers(数字)
2、String(字符串)
3、List(列表)
4、Tuple(元组)
5、Dictionary(字典)
Python数字
数字数据类型用于存储数值。
他们是不可改变的数据类型,这意味着改变数字数据类型会分配一个新的对象。
当你指定一个值时,Number对象就会被创建:
1 var1 = 1 2 var2 = 10
也可以使用del语句删除一些对象的引用。
del语句的语法是:
1 del var1[,var2[,var3[....,varN]]]]
Python支持四种不同的数字类型:
int(有符号整型)
long(长整型[也可以代表八进制和十六进制])
float(浮点型)
complex(复数)
实例
一些数值类型的实例:
int | long | float | complex |
---|---|---|---|
10 | 51924361L | 0.0 | 3.14j |
100 | -0x19323L | 15.20 | 45.j |
-786 | 0122L | -21.9 | 9.322e-36j |
080 | 0xDEFABCECBDAECBFBAEl | 32.3e+18 | .876j |
-0490 | 535633629843L | -90. | -.6545+0J |
-0x260 | -052318172735L | -32.54e100 | 3e+26J |
0x69 | -4721885298529L | 70.2E-12 | 4.53e-7j |
长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。
Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
Python字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。
一般记为 :
1 s="a1a2···an"(n>=0)
它是编程语言中表示文本的数据类型。
python的字串列表有2种取值顺序:
-
- 从左到右索引默认0开始的,最大范围是字符串长度少1
- 从右到左索引默认-1开始的,最大范围是字符串开头
Python列表
List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。
Python元组
元组是另一个数据类型,类似于List(列表)。
元组用"()"标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。
Python 字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。