python查看帮助
$ python -h
python 标识符
1.由 字母,数字,下划线 组成;
2.标识符 只能以 字母,下划线 开头,不能以数字开头;
3.标识符 区分大小写;
4.下划线开头的标识符特殊意义:单下划线(例如 _foo)代表不能直接访问的类属性,需通过接口访问,双下划线(例如:__foo)代表类的私有成员,双下划线开头+双下划线结尾(例如:__foo__)代表python里的特殊方法专用的标识
5.同一行可写多条语句,用分号隔开 例如:print(“1”);print(“234”);
python 保留字符
所有的关键字都是小写
代码块规则(行和缩进)
1.空白缩进;
2.同一个块的代码,缩进空白数量必须一致;
如何支持中文输出(良好的编码习惯)
作为中国的开发人员,良好的编码习惯,任何情况下,一定要让程序支持中文~
#!/usr/bin/env python
#coding=utf-8 #此处表示编码使用utf8格式,不管是否需要,养成必定要写utf8支持的良好习惯
分行符
与C++一样,如果一条语句分多行显示,用斜杠,例:
sum = value1 + \
value2 + \
value3
引号
可以使用 单引号,双引号,三引号:
1.单引号与双引号差别不大;
2.三引号支持多行字符串(三个单引号 或 三个双引号);
value = 'value1'
value2 = "value2"
mulvalue = """我是第一行,
我是第二行,
我是第三行"""
或者
mulvalue = '''我是第一行,
我是第二行,
我是第三行'''
注释
1.单行注释:#
#!/usr/bin/python
# 我是注释
print('hello')
2.多行注释:三引号(三个单引号 或 三个双引号)
#!/usr/bin/python
'''
我是多行注释
我是多行注释2
'''
"""
我也是多行注释
我还是多行注释2
"""
字符串连接(+)
与go语言类似,也是用加号
#!/usr/bin/python
print "123" + "456"
各模块之间用空格隔开(约定俗称的规则)
1.函数或类之间,用空行分隔;
2.空行本身没意义,但能增加代码可维护性;
3.空行不属于python语法,只属于程序代码一部分,不影响python解释器运行;
同一行多条语句
#!/usr/bin/python
print("1");print("2");print("3");
变量定义
标准变量类型:
Numbers:数字{int(例:1234),long(例:2345L),float(例:0.0123),complex(例:3+100j)}
# 特别说明:python3.0之后,只有int,没有long
String:字符串(类似std::string)
#字串列表有2种取值顺序:s= 'abcdef'
# 从左往右索引由 0 开始:s[1:3] >> 'bcd'
# 从右往左索引由 -1 开始:s[-2:-5] >> 'bcde'
List:列表(类似std::list)
Tuple:元组(类似std::vector)
Dictionary:字典(类似std::map)
#!/usr/bin/python
x=1
x += 2
x2=100.1
y="aaa"
m=n=k=2 # 支持多变量赋值
数组定义和遍历
#!/usr/bin/python
x = ['aa', 'bb', 'cc']
for i in x:
print "I am " + i
字符串截取
#!/usr/bin/env python
#coding=utf-8
x = 'abcdefgh'
print x[2:5] # 'cde'
print x[-4:-1] # 'efgh'
print x[-4:-1:2] #第三个参数是步长 'eg'
列表
#!/usr/bin/env python
#coding=utf-8
x = ['a','bc','d','e','f','g','h']
print x[-4:-1]
print x[2:4]
print x[1:6:3] #第三个参数是步长
# 修改元素
x[0] = 'mmmm' # x = ['mmmm','bc','d','e','f','g','h']
# 末尾添加元素 append
x.append('new~') # x = ['mmmm','bc','d','e','f','g','h','new~']
# 中间插入元素 insert
x.insert(3, '33') # 插入一个元素,使得 x[3] = '33'
# 删除元素 del
del x[0]
# 从末尾弹出 pop
value = x.pop() # value = 'new~',并且x中的'new~'元素被删除
# 从任意位置弹出 pop(position)
value = x.pop(0) # 把x中0位置元素弹出,赋值给value,并删除原x[0]的元素
# 根据值删除 remove
x.remove('e') # 把x中'e'元素删除
# 注意 remove 只删除第一个 'e',如果x中有多个 'e' 元素,则需要多次调用remove
# 排序 sort ,永久修改原列表
x = ['z','a','t','x','m']
x.sort() # 正向排序
print x # ['a', 'm', 't', 'x', 'z']
x.sort(reverse=True) # 反向排序
print x # ['z', 'x', 't', 'm', 'a']
# 临时排序 sorted,函数返回临时变量,同样也可以使用reverse=True
print sorted(x) # ['a', 'm', 't', 'x', 'z']
print x # ['z', 'x', 't', 'm', 'a']
print sorted(x,reverse=True) # ['z', 'x', 't', 'm', 'a']
print x # ['z', 'x', 't', 'm', 'a']
# 倒序 reverse 函数,永久修改
x.reverse()
print x # ['a','m','t','x','z']
元组
与列表很相似,差别在于列表用[x,y,z,k],元组用(a,b,c,d,e,f)
但是,但是,但是:元组内元素不可更改,也就是所谓的不能二次赋值,相当于只读列表!
#!/usr/bin/env python
#coding=utf-8
x = ['abcdefgh','888']
x[0] = '999' # 合法
print x[0:] # 输出 ['999','888']
#!/usr/bin/env python
#coding=utf-8
x = ('abcdefgh','888')
x[0] = '999' # 报错,元素项不能修改
print x[0:]
字典(key:value)
字典标识:{}
#!/usr/bin/env python
#coding=utf-8
dict = {}
dict['a'] = 'is a'
dist['b'] = 'is b'
dist2 = {'x':'xxx', 'y':'yyy', 'money':12345}
print dist
print dist['a']
print dist2
print dist2.keys() # 输出所有键 ['x','y']
print dist2.values() #输出所有值 ['xxx','yyy']
y = dist2.keys()
print y # ['x','y']
z = dist2.values()
print z # ['xxx','yyy']
查看变量类型(使用 type 或 isinstance 或 class is)
学习的过程中,看到有人说:所有的数据类型都是类,不知道对不对,姑且就这样认为吧!!!
不推荐用type(x),而用isinstance或 __class__ is
x = ['a','bbbb']
type(x) #<type 'list'>
z = type(x)
print z # <type 'list'>
t = type(z)
print t # <type 'type'>
print isinstance(x,list) # True
print isinstance(x,int) # False
class A:
pass
a = A()
print a.__class__ is A # True
内置函数 range
#!/usr/bin/python
for i in range(10): # 注意冒号结束
print i, # 加了逗号,所以输出结果 0 1 2 3 4 5 6 7 8 9
# print i # 没有逗号,则每个数字显示一行
输出
#!/usr/bin/python
# 每次输出都换行
print("1");
print("2");
print("3");
print 4
print 5
# 在同一行输出,空格隔开
x=11
y=22;z=33
print x,y,z
代码组
首行以关键字开始,冒号结束 ( if while def class else elif 等)
# 示例,不追求可编译
if value1 :
# todo
elif value2 :
# todo
else :
#todo
# 新模块开始
if value3 :
# todo
函数声明和逻辑运算符
#!/usr/bin/python
def foo(value1,value2): # def 开头,冒号结束
value = value1 + value2
if value > 2 :
print value
elif (vaue > 0) and (value < 2) or (value == -1) : # 逻辑运算用 and or
print value
else:
print value
return value
格式化输出
#!/usr/bin/python
x='1'
y=2
z=3
print '%s + %d = %d'%(x,y,z) # 输出结果 1 + 2 = 3
引入模块 (import)
#!/usr/bin/python
import sys # 引入sys模块
print sys.argv #执行命令时,可以携带参数
声明解释器路径(一定是首行)
#!/usr/bin/python # 方式一
#!/usr/bin/env python # 方式二(推荐)