在Python中,全部标识符能够包括英文、数字以及下划线(_),但不能以数字开头。java
在Python中的标识符是区分大小写的。python
在Python中如下划线开头的标识符是有特殊意义的。程序员
代码示例:小程序
class person: name = "" age = 0 _gender = "" __father = "" def __init__(self, name, age): self.name = name self.age = age print "初始化"
Python中有31个保留字,这些保留字不能用做常数或者变数,或者任何其余标识符名称。全部Python的关键字只包含小写字母。api
序号 | 保留字 | 说明 |
---|---|---|
1 | and | 用于表达式运算,逻辑与操做。 |
2 | as | 用于类型转换。 |
3 | assert | 断言,用于判断变量或条件表达式的值是否为真。 |
4 | break | 中断循环语句的执行。 |
5 | class | 用于定义类。 |
6 | continue | 继续执行下一次循环。 |
7 | def | 用于定义函数或方法。 |
8 | del | 删除变量或序列的值。 |
9 | elif | 条件语句,与if、else结合使用。 |
10 | esle | 条件语句,与if、elif结合使用。也可用于异常和循环语句。 |
11 | except | 包含捕获异常后的操做代码块,与try、finally结合使用。 |
12 | exec | 用于执行Python语句。 |
13 | for | for循环语句。 |
14 | finally | 用于异常语句,出现异常后,始终要执行finally包含的代码块。 |
15 | from | 用于导入模块,与import结合使用。 |
16 | global | 定义全局变量。 |
17 | if | 条件语句,与else、elif结合使用。 |
18 | import | 用于导入模块,与from结合使用。 |
19 | in | 判断变量是否存在序列中。 |
20 | is | 判断变量是否为某个类的实例。 |
21 | lambda | 定义匿名函数。 |
22 | not | 用于表达式运算,逻辑与操做。 |
23 | or | 用于表达式运算,逻辑或操做。 |
24 | pass | 空的类,函数,方法的占位符。 |
25 | 打印语句。 | |
26 | raise | 异常抛出操做。 |
27 | return | 用于从函数返回计算结果。 |
28 | try | 包含可能会出现异常的语句,与except,finally结合使用。 |
29 | while | 循环语句。 |
30 | with | 简化Python语句。 |
31 | yield | 用于从函数依次返回值。 |
32 | 保留字 | 说明 |
为了写出优雅的代码,Python中常用PEP8规范,规定以下:数据结构
每组导入之间使用空行隔开。app
代码示例:函数
print "hello";print "world" item_one = 3 item_tow = 4 item_three = 5 total = item_one + \ item_tow + \ item_three print total
hello world 12
Python中使用缩进来表示做用范围,因此Python中缩进格式要严格遵循结构。.net
代码示例:3d
num = 2 + 3 + 4 if num > 5: print "大于" else: print "小于"
大于
代码以下:
# 这是单行注释 '''这是单引号多行注释''' """这是双引号多行注释"""
Python中的常量并不会受到保护,若是真的改是不会报错的,因此能够认为Python中并不真正存在语言意义上的常量,而是约定经过大写的变量标明它是一个常量,后续不要修改。
代码示例:
x = "abc" print "x is {}".format(x) x = 123 print "x is {}".format(x) x = y = z = 999 print "x is {},y is {}, z is {}".format(x, y, z) x, y, z = 1, 2, 'a' print "x is {},y is {}, z is {}".format(x, y, z)
x is abc x is 123 x is 999,y is 999, z is 999 x is 1,y is 2, z is a
format()函数配合花括号{}使用,能够起到占位符的做用。
Python中变量互换值不像其余语言那样须要三方变量,这里使用了一种语法糖。
代码示例:
a = "x" b = "y" a, b = b, a print "a is {}, b is {}".format(a, b)
a is y, b is x
一个程序的全部的变量并非在哪一个位置均可以访问的。访问权限决定于这个变量是在哪里赋值的。
变量的做用域决定了在哪一部分程序你能够访问哪一个特定的变量名称。
两种最基本的变量做用域以下:全局变量、局部变量。
定义在函数内部的变量拥有一个局部做用域,定义在函数外的拥有全局做用域。
局部变量只能在其被声明的函数内部访问,而全局变量能够在整个程序范围内访问。调用函数时,全部在函数内声明的变量名称都将被加入到做用域中。
虽然Python中的引用没有数据类型,可是Python是有数据类型的概念的。
Python中有5大标准数据类型,分别是:Number(数字)、String(字符串)、List(列表)、Tuple(元祖)、Dictionary(字典)。
这里介绍的内容以下:
这里有几个函数,在判断类型和内存的时候会用到:
Python Number 数据类型用于存储数值。
Number数据类型是不容许改变的,这就意味着若是改变 Number 数据类型的值,将从新分配内存空间。
Python支持四种不一样的Number类型:
代码示例:
x = 1 #整型 x = 2L #长整型 x = 3.1415 #浮点型 #复数 x = complex(32, 64) print x x = 32 + 64j print x
(32+64j) (32+64j)
Python中能够用单引号、双引号、三引号来声明字符串直接量。
在声明字符串直接量时单引号和双引号没什么区别。'abc'和"abc"等价。
而三引号声明的字符串中能够包含任意字符,这些字符会被直接看成字符串的内容。
Python中并不存在相似java中char的字符类型,想要表示一个字符,写成一个长度为1的字符串便可。
Python中字符串是有下标的,下标从0开始。Python中String类型是不可变类型的对象。
Python中len()函数能够查看字符串的长度。
代码示例:
x = 'abc' print id(x) x = "abc" print id(x) x = '''abc''' print len(x) print id(x) x = """abc""" print id(x) x = "b" print id(x)
41772656 41772656 3 41772656 41772656 39430944
由上述代码能够看出,四种引号声明的对象是同样的效果。String对象是不可变的。
Python中使用反斜杠(\)做为转义字符
转义字符 | 说明 |
---|---|
\ | 续行符 |
\ | 反斜杠符号 |
' | 单引号 |
" | 双引号 |
\a | 响铃 |
\b | 退格 |
\e | 转义 |
\000 | 空格 |
\n | 换行 |
\v | 纵向制表符 |
\t | 横向制表符 |
\r | 回车 |
\f | 换页 |
\oyy | 八进制数,yy表明的字符。例如:\o12表明换行 |
\xyy | 十六进制数,yy表明的字符。例如:\x0a表明换行 |
\other | 其余的字符以普通格式输出。 |
代码示例:
a = "Hello" b = "Workd" print a + b print a * 2 print a[1] print a[-2] print a[1:3] print a[0:4:2] print a[:2] print a[::-1] #反转字符串 print "H" in a print "H" not in b print r'\n',R'\n'
HelloWorkd HelloHello e l el Hl He olleH True True \n \n
Python 支持格式化字符串的输出 。尽管这样可能会用到很是复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
代码示例:
print "My name is %s and age is %d !" % ("xh", 25)
My name is xh and age is 25 !
格式化符号:
格式化符号 | 说明 |
---|---|
%c | 格式化字符以及ASCII码 |
%s | 格式化字符串 |
%d | 格式化整数 |
%u | 格式化无符号整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化浮点数字,可指定小数点后的精度。 |
%e | 用科学计数法格式化浮点小数 |
%E | 用科学计数法格式化浮点数,同%e的做用。 |
%g | %f和%e的简写 |
%G | %f和%E的简写 |
%p | 用十六进制数格式化变量的地址 |
辅助指令:
符号 | 说明 |
---|---|
* | 定义宽度或者小数点精度 |
- | 用做左对齐 |
+ | 在正数前面显示加号 |
<sp> | 在正数前面显示空格 |
# | 在八进制数前面显示零,在十六进制前面显示0x或者0X |
0 | 显示的数字前面填充0而不是默认的空格 |
% | %% 输出一个单一的% |
(var) | 映射变量 |
m.n | m是显示的最小总宽度,n是小数点后的位数 |
python中三引号能够将复杂的字符串进行复制:
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来,自始至终保持一小块字符串的格式是所谓的WYSIWYG(所见即所得)格式的。
Python中提供了不少操做字符串的函数,这些函数是字符串的使用更加便捷。如下将介绍常见的字符串操做:
string = "My name is xinghan, I am very happy!" # 将起始字符大写,其余字符一概小写 string.capitalize()
'My name is xinghan, i am very happy!'
# 将字符串按照指定宽度居中显示,默认两端填补空格,也能够指定符号填补。 string.center(100) string.center(100,"%")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%My name is xinghan, I am very happy!%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%'
# 计数函数,用于统计一个字符串中出现的指定字符的个数。 string.count('a')
4
# 判断字符串以指定字符结尾 string.endswith('ppy!')
True
# 判断字符串是否以指定字符开始 string.startswith('My')
True
# 查找字符,找到返回下标,不存在返回-1。支持指定查找开始位置。 string.find('i') string.find('i', 9)
12
# 查找字符,找到返回下标,不存在将报错。支持指定查找开始位置。 string.index('i', 9)
12
# 大小写转换 string.upper() #转成大写 string.lower() #转成小写
'my name is xinghan, i am very happy!'
# 标题判断,若是一个字符串中,首字母大写,其余字母所有小写,则断定为标题 string.istitle()
False
# 判断大小写 string.isupper() string.islower()
False
# 去空,将字符串两端包含的空格,换行等空白去掉。不会去除中间的。 string.strip() # 仅去除左边的空格 string.lstrip() # 仅去除右边的空格 string.rstrip()
'My name is xinghan, I am very happy!'
# 将字符串中的大小写互换。 string.swapcase()
'mY NAME IS XINGHAN, i AM VERY HAPPY!'
直接量只有两个True、False。
布尔类型的与或非and、or、not。
Python中指定任何非0和非空(null)值为true,0 或者 null为false。
代码示例:
flg1 = True flg2 = False print not flg1 print flg1 and flg2 print flg1 or flg2
False False True
Python中的空值,不使用null,而是使用None来表示。
Python中各个数据类型是能够互相转换的,转换方法以下:
Python中有7种运算符,分别是:
算术运算符有如下几种:
代码示例:
a = 20 b = 10 print a + b print a - b print a * b print a / b print a % b print a ** b print a // b
30 10 200 2 0 10240000000000 2
比较运算符又称为关系运算符,有如下几种:
代码示例:
a = 10;b = 20 print a == b print a != b print a <> b print a > b print a < b print a >= b print a <= b
False True True False True False True
Python中有如下几种赋值运算符:
Python中有如下几种位运算符:
Python中有如下几种逻辑运算符:
三种逻辑运算分为布尔型逻辑运算,和非布尔型逻辑运算。
布尔型的逻辑运算是正常的运算,很好理解。
非布尔型的逻辑运算须要遵循如下几点:
代码示例:
# number逻辑运算 x = 10; y = 20 print x and y print x or y print not x
20 10 False
# String的逻辑运算 x = "a"; y = "b" print x and y print x or y print not x
b a False
#String与Number的逻辑运算 x = 10 ; y = "a" print x and y print x or y
a 10
Python中提供了两种成员运算符:
代码示例:
# 字符串成员判断 a = "x"; b = "xyz" print a in b print a not in b
True False
# 序列成员判断 a = "x"; b = ["x", "y", "z"] print a in b print a not in b
True False
Python中提供了两种身份运算符:
代码示例:
a = 1;b = 1 print a is b print a is not b
True False
Python中运算符的优先级从高到低以下:
Python中的拷贝和赋值,针对对象,有不一样层次的流程,具体以下。
直接赋值其实就是将对象的引用给到变量。
以下图:
只是拷贝父对象,不会拷贝对象内部的子对象。
以下图:
彻底拷贝父对象以及子对象。此时的拷贝,两个对象彻底脱离了关系,是两个独立的对象,不会互相影响。
以下图:
Python中提供了和其余语言同样的流程控制语句。其中包含:
Python中的条件判断语句由if、elif、else组合搭配构成。其语法大体有以下两种:
if condition: do somthing else: do somthing
if condition: do somthing elif condition: do somthing else: do somthing
在Python中,任意值均可做为条件,全部类型的空值为False,除空值以外其余全为True。
在程序编写过程当中,常用断言来判断代码逻辑执行的正确与否。
代码示例:
age = 10 assert age = 20 # 不是预期的效果就会报错,致使程序中断,就能够缩小程序出错的范围。
File "<ipython-input-7-cdbb8299e85a>", line 2 assert age = 20 # 不是预期的效果就会报错,致使程序中断,就能够缩小程序出错的范围。 ^ SyntaxError: invalid syntax
Python中的循环语句包含两种,分别是:
while 语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理须要重复处理的相同任务。
有以下两种语法:
while condition: do somthing
while condition: do somthing else: do somthing
判断条件能够是任何表达式,任何非零、或非空(null)的值均为true。
while 语句时还有另外两个重要的命令 continue,break 来跳过循环,continue 用于跳过该次循环,break 则是用于退出循环,此外"判断条件"还能够是个常值,表示循环一定成立。若是判断条件永远为True,那么循环将永远执行下去,造成无线循环。
for循环能够遍历任何序列的项目,如一个列表或者一个字符串。
语法以下:
for interating_var in sequence: do somthing
for index in range: do somthing
代码示例:
data = [1,2,3,4] for i in data: print i,
1 2 3 4
for i in range(10): print i,
0 1 2 3 4 5 6 7 8 9
在python中,for…else表示:for中的语句和普通的没有区别,else中的语句会在循环正常执行完(即for不是经过break跳出而中断的)的状况下执行,while … else 也是同样。
代码示例:
for num in range(10,20): # 迭代 10 到 20 之间的数字 for i in range(2,num): # 根据因子迭代 if num % i == 0: # 肯定第一个因子 j = num / i # 计算第二个因子 print '%d 等于 %d * %d' % (num,i,j) break # 跳出当前循环 else: # 循环的 else 部分 print num, '是一个质数'
10 等于 2 * 5 11 是一个质数 12 等于 2 * 6 13 是一个质数 14 等于 2 * 7 15 等于 3 * 5 16 等于 2 * 8 17 是一个质数 18 等于 2 * 9 19 是一个质数
Python 语言容许在一个循环体里面嵌入另外一个循环。
能够在循环体内嵌套相同的循环体,如在for循环中嵌入for循环,在while循环中嵌入while循环;也能够在循环体内嵌入其余的循环体,如在while循环中能够嵌入for循环,能够在for循环中嵌入while循环。
代码示例:
i = 2 while(i < 100): j = 2 while(j <= (i / j)): if not(i%j): break j = j + 1 if (j > i / j) : print i, " 是素数", i = i + 1 print "Good bye!"
2 是素数 3 是素数 5 是素数 7 是素数 11 是素数 13 是素数 17 是素数 19 是素数 23 是素数 29 是素数 31 是素数 37 是素数 41 是素数 43 是素数 47 是素数 53 是素数 59 是素数 61 是素数 67 是素数 71 是素数 73 是素数 79 是素数 83 是素数 89 是素数 97 是素数 Good bye!
# 乘法口诀表 for a in range(1,10): for b in range(1,a + 1): print "%d*%d=%d\t" % (b,a,b * a), print '\n'
1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 2*5=10 3*5=15 4*5=20 5*5=25 1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36 1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49 1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64 1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
Python break语句,就像在C语言中,打破了最小封闭for或while循环。
break语句用来终止循环语句,即循环条件没有False条件或者序列还没被彻底递归完,也会中止执行循环语句。
break语句用在while和for循环中。
若是使用嵌套循环,break语句将中止执行最深层的循环,并开始执行下一行代码。
代码示例:
for letter in 'Python': # 第一个实例 if letter == 'h': break print '当前字母 :', letter var = 10 # 第二个实例 while var > 0: print '当前变量值 :', var var = var -1 if var == 5: # 当变量 var 等于 5 时退出循环 break print "Good bye!"
当前字母 : P 当前字母 : y 当前字母 : t 当前变量值 : 10 当前变量值 : 9 当前变量值 : 8 当前变量值 : 7 当前变量值 : 6 Good bye!
Python continue 语句跳出本次循环,而break跳出整个循环。
continue 语句用来告诉Python跳过当前循环的剩余语句,而后继续进行下一轮循环。
continue语句用在while和for循环中。
代码示例:
for letter in 'Python': # 第一个实例 if letter == 'h': continue print '当前字母 :', letter var = 10 # 第二个实例 while var > 0: var = var - 1 if var == 5: continue print '当前变量值 :', var print "Good bye!"
当前字母 : P 当前字母 : y 当前字母 : t 当前字母 : o 当前字母 : n 当前变量值 : 9 当前变量值 : 8 当前变量值 : 7 当前变量值 : 6 当前变量值 : 4 当前变量值 : 3 当前变量值 : 2 当前变量值 : 1 当前变量值 : 0 Good bye!
pass是空语句,是为了保持程序结构的完整性。pass 不作任何事情,通常用作占位语句。
代码示例:
# 输出 Python 的每一个字母 for letter in 'Python': if letter == 'h': pass print '这是 pass 块' print '当前字母 :', letter print "Good bye!"
当前字母 : P 当前字母 : y 当前字母 : t 这是 pass 块 当前字母 : h 当前字母 : o 当前字母 : n Good bye!
所谓推导式,就是一种从一个数据序列构件另外一个数据序列的方法。
代码示例:
number = list(range(10)) number
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
代码示例:
# 利用列表进行列表推导 li = [i * 10 for i in number] li
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
代码示例:
# 利用列表进行字典key推导 di = {i : "b" for i in number} di
{0: 'b', 1: 'b', 2: 'b', 3: 'b', 4: 'b', 5: 'b', 6: 'b', 7: 'b', 8: 'b', 9: 'b'}
下一篇:Python的数据结构