基础:
字符数组、列表等容器下标从0开始
Python数据类型
- 数字
var1 = 1
- 字符串
str = 'Hello World!' 下标访问字符串类似列表
- 列表
list = [ 'abcd', 786 , 2.23, 'john', 70.2 ]
print list[0] # Prints first element of the list
print list[1:3] # Prints elements starting from 2nd to 4th
print list[2:] # Prints elements starting from 3rd element
del list[0] # Delete
first element of the list
- 元组
tinytuple = (123, 'john') 元组可以被认为是只读的列表。
- 字典
tinydict = {'name': 'john','code':6734, 'dept': 'sales'}
print dict['one'] # Prints value for 'one' key
print dict[2] # Prints value for 2 key
print tinydict # Prints complete dictionary
print tinydict.keys() # Prints all the keys
print tinydict.values() # Prints all the values
三引号让程序员从引号和特殊字符串的泥潭里面解脱出来;
一个典型的用例是,处理HTML或者SQL
cursor.execute(''' CREATE TABLE users ( login VARCHAR(8), uid INTEGER, prid INTEGER) ''')
内嵌 if...elif...else 结构
if expression1:
statement(s)
elif expression2:
statement(s)
else:
statement(s)
while 循环
while expression:
statement(s)
单行while子句的例子:
while expression : statement
for 循环
for iterating_var in sequence:
statements(s)
例子:
fruits = ['banana', 'apple', 'mango']
for index in range(len(fruits)):
print ('Current fruit :', fruits[index])
for fruit in fruits:
print ('Current fruit :', fruit)
range
- >>> range(1,5) #代表从1到5(不包含5)
[1, 2, 3, 4]
>>> range(1,5,2) #代表从1到5,间隔2(不包含5)
[1, 3]
>>> range(5) #代表从0到5(不包含5)
[0, 1, 2, 3, 4]
break 语句、continue 语
pass 语句:
空操作
;
在执行时什么也不会发生
函数
def functionname( parameters ):
function_suite
return [expression]
例子:
def functionname( parameters ):
a = parameters+' world'
return a
print (functionname('hello'))
不定长参数
加了星号(*)的变量名会存放所有未命名的变量参数。选择不多传参数也可。如下实例:
def printinfo( arg1, *vartuple ):
print arg1
for var in vartuple:
print var
return;
printinfo( 10 );
printinfo( 70, 60, 50 );
类
class CUser:
__Id = 0 # 私有变量
Version = '1.0' # 公有变量
"这里self参数就会告诉方法是哪个对象来调用的.这称为实例引用"
def __init__(self,id,name):
self.__Id = id
self.Name = name
def get_version(self):
return self.Version
"self代表类的实例,而非类[同this]"
def set_name(this,new_name):
this.Name = new_name
"调用user.print_dict(),实际是CUser.print_dict(user),也就是说把self替换成类的实例"
def print_dict(self):
print (self.__dict__)
"如果不需要使用self参数可以不用self : CUser.print_class2()"
def print_class():
print (__class__)
user = CUser(1,'hz')
user.set_name('new hz')
print (user.Name)
CUser.print_class()
user.print_dict() #内置属性
print (user.get_version()) #自定义属性:__Id\Name\Version
执行结果
new hz
<class '__main__.CUser'>
{'Name': 'new hz', 'Id': 1}
1.0
内置类的属性
__dict__ : 字典包含类的命名空间。
__doc__ : 类文档字符串,或者如果是None那么表示未定义。
__name__: 类名
__module__: 其中类定义的模块名称。此属性在交互模式为“__main__”。
__bases__ : 一个可能为空的元组包含基类,其基类列表为出现的顺序。
销毁对象(垃圾回收)
Python
的垃圾收集程序执行过程中运行,当一个对象的引用计数为零时被触发
回收的内存块
类继承、重载
类似C++
import
导入模块;
import module1[, module2[,... moduleN]
从模块中导入一个指定的部分到当前命名空间中
from modname import name1[, name2[, ... nameN]]
打开和关闭文件
file object = open(file_name [, access_mode][, buffering])
...
fileObject.read([count]);
fileObject.write(string);
fileObject.close();
新建目录、删除目录、重命名文件和删除文件
os.mkdir("newdir")
os.rmdir('dirname')
os.rename(current_file_name, new_file_name)
os.remove(file_name)
获取路径、切换路径
os.getcwd()
os.chdir("newdir")
处理异常
try....except...else
raise [Exception [, args [, traceback]]]
例子:
class AiError(RuntimeError):
def __init__(self,arg):
self.arg = arg
try:
raise AiError("except AiError!")
# raise "except"
except AiError as e:
print(e.arg)
except:
print("common except...")
else:
print("no except...")
finally:
print("alway execute!")
匹配VS搜索
Python的提供两种不同的原语操作基于正则表达式:
match匹配检查匹配仅在字符串的开头,而search检查匹配字符串中的任何地方(这是Perl并默认的情况)
re.match(pattern, string, flags=0)
re.search
搜索和替换
sub(pattern, repl, string, max=0)