在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的关键字只包含小写字母。
序号 | 保留字 | 说明 |
---|---|---|
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规范,规定如下:
每组导入之间使用空行隔开。
代码示例:
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中缩进格式要严格遵循结构。
代码示例:
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的数据结构
(adsbygoogle = window.adsbygoogle || []).push({});