Python基本语法笔记2

List操作:

ten_things = "Apples Oranges Crows Telephone Light Sugar"
print "Wait there are not 10 things in that list. Let‘s fix that."
stuff = ten_things.split(‘ ‘)
more_stuff = ["Day", "Night", "Song", "Frisbee", "Corn", "Banana", "Girl", "Boy"]
while len(stuff) != 10:
    next_one = more_stuff.pop()
    print "Adding: ", next_one
    stuff.append(next_one)
    print "There are %d items now." % len(stuff)
print "There we go: ", stuff
print "Let‘s do some things with stuff."
print stuff[1]
print stuff[-1] # whoa! fancy
print stuff.pop()
print ‘ ‘.join(stuff) # what? cool!
print ‘#‘.join(stuff[3:5]) # super stellar!
>>> stuff = {‘name‘: ‘Zed‘, ‘age‘: 39, ‘height‘: 6 * 12 + 2}
>>> print stuff[‘name‘]
Zed
>>> stuff[1] = "Wow"
>>> stuff[2] = "Neato"
>>> print stuff[1]
Wow
>>> print stuff[2]
Neato
>>> stuff
{‘city‘: ‘San Francisco‘, 2: ‘Neato‘, ‘name‘: ‘Zed‘, 1: ‘Wow‘, ‘age‘: 39, ‘height‘: 74}
>>> del stuff[‘city‘]
>>> del stuff[1]
>>> del stuff[2]

类的使用:

#coding=utf-8
class Employee:
   ‘所有员工的基类‘
   empCount = 0
   def __init__(self, name, salary):
      self.name = name
      self.salary = salary
      Employee.empCount += 1
   
   def displayCount(self):
     print "Total Employee %d" % Employee.empCount
   def displayEmployee(self):
      print "Name : ", self.name,  ", Salary: ", self.salary
"创建 Employee 类的第一个对象"
emp1 = Employee("Zara", 2000)
"创建 Employee 类的第二个对象"
emp2 = Employee("Manni", 5000)

__dict__ : 类的属性(包含一个字典,由类的数据属性组成)

__doc__ :类的文档字符串

__name__: 类名

__module__: 类定义所在的模块(类的全名是‘__main__.className‘,如果类位于一个导入模块mymod中,那么className.__module__ 等于 mymod)

__bases__ : 类的所有父类构成元素(包含了以个由所有父类组成的元组)

当对象被创建时, 就创建了一个引用计数, 当这个对象不再需要时, 也就是说, 这个对象的引用计数变为0 时, 它被垃圾回收。但是回收不是"立即"的, 由解释器在适当的时机,将垃圾对象占用的内存空间回收。

析构函数 __del__ ,__del__在对象消逝的时候被调用,当对象不再被使用时,__del__方法运行:

class Point:
   def __init( self, x=0, y=0):
      self.x = x
      self.y = y
   def __del__(self):
      class_name = self.__class__.__name__
      print class_name, "destroyed"

类的继承:

class Parent:        # 定义父类
   parentAttr = 100
   def __init__(self):
      print "调用父类构造函数"
   def parentMethod(self):
      print ‘调用父类方法‘
   def setAttr(self, attr):
      Parent.parentAttr = attr
   def getAttr(self):
      print "父类属性 :", Parent.parentAttr
class Child(Parent): # 定义子类
   def __init__(self):
      print "调用子类构造方法"
   def childMethod(self):
      print ‘调用子类方法 child method‘

issubclass() - 布尔函数判断一个类是另一个类的子类或者子孙类,语法:issubclass(sub,sup)

isinstance(obj, Class) 布尔函数如果obj是Class类的实例对象或者是一个Class子类的实例对象则返回true。

运算符重载:

def __add__(self,other):
    return Vector(self.a + other.a, self.b + other.b)
class JustCounter:
__secretCount = 0  # 私有变量
publicCount = 0    # 公开变量

__init__ ( self [,args...] )

构造函数

简单的调用方法: obj = className(args)

__del__( self )

析构方法, 删除一个对象

简单的调用方法 : dell obj

__repr__( self )

转化为供解释器读取的形式

简单的调用方法 : repr(obj)

__str__( self )

用于将值转化为适于人阅读的形式

简单的调用方法 : str(obj)

__cmp__ ( self, x )

对象比较

简单的调用方法 : cmp(obj, x)

str()一般是将数值转成字符串。

repr()是将一个对象转成字符串显示,注意只是显示用,有些对象转成字符串没有直接的意思。如list,dict使用str()是无效的,但使用repr可以,这是为了看它们都有哪些值,为了显示之用。

正则表达式:

import re
line = "Cats are smarter than dogs"
matchObj = re.match( r‘(.*) are (.*?) .*‘, line, re.M|re.I)
if matchObj:
   print "matchObj.group() : ", matchObj.group()
   print "matchObj.group(1) : ", matchObj.group(1)
   print "matchObj.group(2) : ", matchObj.group(2)
else:
   print "No match!!"

输出:

matchObj.group() :  Cats are smarter than dogs

matchObj.group(1) :  Cats

matchObj.group(2) :  smarter

re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

正则表达式替换:

phone = "2004-959-559 # This is Phone Number"
# Delete Python-style comments
num = re.sub(r‘#.*$‘, "", phone)
print "Phone Num : ", num
# Remove anything other than digits
num = re.sub(r‘\D‘, "", phone)    
print "Phone Num : ", num

re.I 使匹配对大小写不敏感

re.L 做本地化识别(locale-aware)匹配

re.M 多行匹配,影响 ^ 和 $

re.S 使 . 匹配包括换行在内的所有字符

re.U 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B.

re.X 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。

[...] 用来表示一组字符,单独列出:[amk] 匹配 ‘a‘,‘m‘或‘k‘

[^...] 不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。

时间: 2024-10-05 23:27:30

Python基本语法笔记2的相关文章

Python 3 语法笔记(4):集合

python的集合,并不等于其他语言的广泛意义上的集合.严格来说list更像是一种集合,这里的集合set,是一种无重复元素的无序集合. * 可以理解为,没有值只有键的字典.一种原始形态的字典. 1 创建集合 a_set = set() #空集合 a_set = {1,2,3} 用list来创建集合: a_set = set([1,2,"abc",4]) 2 修改集合元素 a_set.add(单个元素) a_set.update(单个或多个元素或集合) #这里可以是集合,也可以是列表集合

Python基本语法笔记

#后面写注释 加上.0则自动作为float处理 输出int: print "He's %d pounds heavy." % my_weight 输出String: print "He's got %s eyes and %s hair." % (my_eyes, my_hair) Use the %r for debugging, since it displays the "raw" data of the variable, but the

Python 3 语法笔记(1):基本数据类型

1 Boolean True和False在算数运算符作用下,会自动转化为整数1和0: if语句进行布尔检测的时候,遇到非0认为是True,遇到0则认为是False: 2 Number Number包括int和float,可以使用float()和int()进行互相之间的转换. 在python 3中,没long的概念,int无限大,不受sys.maxint的限制.而浮点数只能精确到小数点后15位置: /表示浮点除,//表示整数除,**是次方,%是求余: fractions是一个分数库,可以表示分数:

Python 3 语法笔记(5):字典

根据前面几节,可以看出python是在基础类型最为丰富的编程语言. list tuple set dict 可见其在数据结构层面的切分粒度,是希望满足比较多的领域编程需要的. 1 创建字典 a_dict = {'server': 'db.diveintopython3.org', 'database': 'mysql'} 也可以通过其他方法,如从list和tuple来创建,具体见手册.字典的键是不可重复的,性质上有点类似set,dict可以理解为携带值的set.当然dict没有集合操作方法(交集

Python 3 语法笔记(3):元组

1 tuple和list 所有不修改list元素的操作,tuple都有.(下标.切片.索引等) 所有修改list元素的操作,tuple都没有.(扩展.修改.删除等) tuple代表常量集合,遍历速度远远比list快. tuple和字面值,都是不可修改的类型,适合用作字典的键. tuple()可以冻结list,list()可以融化tuple. 2 布尔测试 () 表示False 非()表示True 3 实现多重返回值 4 赋值的逗号,可以实现自动打包(pack) 返回值也可以打包成tuple: =

Python 3 语法笔记(2):列表

1 创建列表 list是一种有序集合,可以容纳不同类型的变量 可以通过正整数,也可以用负整数(倒序)来索引. 2 列表切片 从列表中提取一个子列表: mylist[起始索引:结束索引]    从起始索引开始,到结束索引处,含结束索引处的元素. mylist[:结束索引] 和 mylist[开始索引:] 表示,从头开始或直到结尾. 注:mylist[:] 是对mylist进行完整复制的一个捷径. 3 列表增项 对于列表:a_list = ['a'] 有以下四种方法来增加项目: 列表 + 列表: a

python核心编程--笔记

python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗余输出(导入语句详细追踪) 1.5 –m mod 将一个模块以脚本形式运行 1.6 –Q opt 除法选项(参阅文档) 1.7 –c cmd 运行以命令行字符串心事提交的python脚本 1.8 file   以给定的文件运行python脚本 2 _在解释器中表示最后

Python简单操作笔记

Python 类型转换 str(),repr()|format() : 将非字符类型转成子串 int() : 转为整形 float() : 转为浮点型 list(s) : 将字串s转成列表 tuple(s) : 将字串s转成元组 set(s) : 将字串s转成集合 frozenset(s) : 将字串s转成不可变集合 dict(s) : 创建字典 其d必须是(key,value)的元组序列; chr(x) : 将整形转成字符 ord(x) : 将字符转成整形 hex(x) : 将整形转换成16进

Python学习手册笔记

之前为了编写一个svm分词的程序而简单学了下Python,觉得Python很好用,想深入并系统学习一下,了解一些机制,因此开始阅读<Python学习手册(第三版)>.如果只是想快速入门,我在这里推荐了几篇文章,有其他语言编程经验的人简单看一看就可以很快地开始编写Python程序了. 黑体表示章节, 下划线表示可以直接在原文对应位置查到的专有技术名词. 原书配套答案请到http://www.hzbook.com/Books/4572.html下载,简单注册即可. 第三章 如何运行程序 impor