本帖最后由 pig2 于 2015-3-3 22:02 编辑
Python的领域: shall编程 交互式模式 help(raw_input) 获取相应的帮助信息 dir(类名) 显示类名中的方法和属性 type(变量名) 显示变量的类型 id(变量名) 显示变量指向的地址 len() 可以测量列表,元组,字符串的元素个数大小
Python 内建函数 raw_input(‘Enter login name:’) 重定向:>> 或者 << logfile = open('E:/python/pythonProgram/1.txt','a')
print >> logfile, 'Fatal error: invalid input'
logfile.close()range(n) 0到n的一串数 for i in range(len(str)) printstr,’(%d)’ % i 文件和内建函数open(),file()
数据结构 列表:使用[]创建,如[‘Call’,’me’,’now’] 元组:使用()创建,如(‘one’,’two’) 字符串也是序列 列表:数组序列可变 [‘Call’,’me’,’Jerry’] 元组:数组序列不可变(‘one’,’two’) 字符串:字符序列不可变
步进切片sequence[::number]number为负数, 倒序显示字符串, 正数则正序显示字符串, 数值代表显示字符的step值.
集合类型 集合 映射类型 字典:可变对象,大小
Python 4组逻辑运算操作符: 身份操作符:is 判断左端的对象应用是否等同右端对象应用; 也可以是None 比较操作符:<,>,<=,>=,!=,==等,增强型赋值语句:+=,-=等,增强型赋值语句的性能比较好 成员操作符:in 或者 not in:测试成员关系 逻辑操作符:and or not
输出表示: print 接受一个逗号分隔的对象列表,并为行尾自动添加一个换行符,如果不需要,则在最后个元素后添加逗号。 输入/输出 print “string%format1%format…”%(variable1,variable2,….)
dir(__bulitins__)显示内置的命令和函数
%后面可以使用的修饰符: %[(name)][flag][width][.precision]typecode Eg:d={‘x’:32,’y’:27.49,’z’:65} print “%(x)-10d%(y)0.3g”%d 输出d中的键为x,y的值。
函数的创建与调用: 使用def语句定义函数 def functionName(arguments): suite 每个Python函数都有一个返回值,默认为None。也可以使用”return value”明确定义返回值 def语句会创建一个函数对象,并同时创建一个指向函数的对象引用 1 函数也是对象,可以存储在组合数据类型中,也可以作为参数传递给其他函数 2 callable()可用于测试函数是否可调用 >>>def PrintName(name): ... print name ... >>>callable(PrintName) 1 >>>PrintName('yangxinzhao') yangxinzhao >>>
Python标准库拥有众多内置模块。这些模块拥有大量函数 Python模块实际就是包含Python代码的.py文件,拥有自定义的函数与类及变量等 导入模块使用import语句进行,后跟模块名称(不能指定模块文件名的后缀.py) 导入一个模块后,可以访问其内部含有的任意函数、类及变量 >>>import random >>>x = random.choice(['a','b','c']) >>>print x a
语句和语法 #:注释,可以从一行的任何地方开始 续行: \ : ‘’’:闭合操作符,单一语句跨多行 代码组: 缩进相同的一组语句构成的一个代码块 首行以关键字开始,如if while 等,以冒号结束 Python使用缩进来分割代码组,同一代码组的代码行必须严格对齐,否则会造成语法错误。 同一行放置多个语句 ;:以分号做为分隔符 模块 每一个Python脚本 可以都当成一个模块 模块里面的代码可以是一段直接执行的脚本,也可以是一个类或者方法,导入模块的文件会被执行,因此文件只可以包含方法或者类,其他的代码会被执行一次
导入方法:import 模块名(不加.py) 调用 模块名.方法名 Python基本编程风格: “” ””:注释 ,可以通过__doc__动态获取注释文档字符串 缩进:同一四个字符 命名惯例 以单一下划线开头变量名(_X)不会被from module import * 语句导入 前后都有下划线的变量名(__X__)是系统定义的变量名,对Python有重要意义 一两个下划线开头但没有下划线的变量名(__X)是类的本地变量 在交互式模式下,变量名“_”用于保存最后表达式的结果 # coding=utf-8
__author__ = 'Administrator'
"""this is a test module""" #模块文档
import sys #模块导入
import os
debug = True #全局变量
class FooClass(object): #类定义
"""Foo class"""
pass
def test(): #函数定义
"""test function"""
foo =FooClass()
if debug:
print 'runtest()'
if __name__ == '__main__': #主程序__name__ 导入了当前自己模块的名称,如果这个模块直接自己执行的,则该模块默认名称为__main__,因此长用于测试 如果这个模块是被导入,则该模块默认名称为style
test()
如果这个模块被调用或者当主程序执行时,都会执行 if __name__ == ‘__main__’ 实例被创建后,其身份(地址)和类型(赋值类型)就不可以变 如果对象的值是可以改变的,列表和字典都是可变对象 如果对象的值是不可以改变的,数值、字符串,元组都是不可变对象 如果某个对象包含其他对象的应用,则将其称为容器 列表是容器 数据比较: 值比较:对象的数据是否相同 ,== 身份:is 类型:type Python内置函数id()可返回一个对象的身份,及该对象在内存中的位置 is 运算符用于比较两个对象的身份 type()用于返回一个对象的类型,用于类型比较 核心数据类型: 数字:int long float complex bool 字符:str Unicode 列表:list 字典:dict 元组:tuple 文件:file 其他类型:集合(set),frozenset,类类型,None 其他文件类工具:pipes,fifos,sockets 类型转换: 显示转换:转换成字符串:str(),repr()或format():将非字符串转换成字符串 Str() 相当于print,repr() str1 = str(3.14) 转换整型:int(),float() num2 = int(‘3.14’) 字符串转换成列表:list(s) >>>str1 = "Hello,world" >>> l1 =list(str1) >>> print l1 ['H', 'e', 'l', 'l','o', ',', 'w', 'o', 'r', 'l', 'd'] 将列表转换成字符串:str(list) 将字符串s转换成元组:tuple(s) 将字符串s转换成集合:set(s),数学中的集合 >>>print tl set(['e', 'd', 'H', 'l','o', ',', 'r', 'w']) 创建字典:dict(d) d 必须是(key,value)的元组序列 >>>d = [(1,'yang'),(2,'xin'),(3,'zhao')] >>> d1 =dict(d) >>> print d1 {1: 'yang', 2: 'xin', 3:'zhao'} 将字符串转成不可变集合:frozenset(s) 将整数转换成对应的ASIIC字符:chr(n) ord(ch):将字转换成整数值 ord(x) hex(ch): 将字转换成16进制字符串 bin(ch): 将字转换成2进制字符串 oct(x) 数字运算: x**y x的y次方 字符序列: 字符串字面量:单引号,双引号,三引号,前后结构要一直 因为不支持国标码,定义Unicode是要加u str1 = u”杨新照” Python 3 已经支持中文 列表 PrintName().__doc__:调用函数方法 PrintName.__doc__: 引用对象的属性 使用与所用序列的操作和方法 S:索引运算符 S[i:j]为切片运算符,s[i:j:stride]为扩展切片运算符 stride为步进,可以为负数,I,j也可以为负数,从尾部向前 >>> list1[0:] [1, 2, 3, 4, 5] >>> lihst[3:] =['m','n'] >>> print list1 [1, 2, 3, 'm', 'n'] min(s) 和 max(s) 只使用与能够对元素排序的序列,字符也行,只是按ASCII比较 sum(s)只使用与数字序列 lens(s) s中的最小值 使用 容器类:内部包含任意对象的有序集合,通过索引访问其中的元素,可变对象。异构(存储不同类型的数据),任意嵌套 列表: 容器类型 支持在原处修改: 修改指定的索引元素,修改指定的分片。删除语句(del[list[1:3]]),内置方法 算数操作返回新的列表: List1 + list2 合并列表,返回新的列表 List1 * N 把list1 重复N次,返回一个新的列表 in : 成员关系判断 >>> list2 =[1,2,3] >>> list3 =list2 >>>list2.append(4) >>> print list3 [1, 2, 3, 4] >>> list4 =list2[:] >>>list4.append(5) >>> print list2 [1, 2, 3, 4] Python 内置库copy :copy.deepcopy深度复制 >>> id(list2) 33940984 >>> import copy >>> list5 =copy.deepcopy(list2) >>> id(list5) 33940704 Python不要错过的书籍: |