一、list, tuple, set 和 dict的使用
多使用list, tuple, set 和 dict这几种数据类型,它们分别用[]、()、([])和{}定义。
tuple_name=(“apple”,”banana”,”grape”,”orange”)
list=[“apple”,”banana”,”grage”,”orange”]
dict={“a”:”apple”, “b”:”banana”, “g”:”grage”, “o”:”orange”}
字符串:注意区别str和unicode
在Python中定义一个Unicode字符串,需要在引号前面加上一个字符u,
当使用utf-8编码时,非unicode字符中一个汉字的长度是3,而使用gb2312时是2
# -*- coding: utf-8 -*-
unicode = u'我'
str = '我'
print len(unicode),len(str)
#输出 1 3
# -*- coding: gb2312 -*-
unicode = u'我'
str = '我'
print len(unicode),len(str)
#输出 1 2
# -*- coding: utf-8 -*-
str1 = u'我是派森'
print str1[2:4]
#输出 '派森'
列表list:
# -*- coding: utf-8 -*-
array = [1,2,3]
print array[0]
#输出 1
array[0] = 'a'
print array
#输出 ['a', 2, 3]
元组tuple:
# -*- coding: utf-8 -*-
test = [0] #列表可以这样定义
print type(test) #输出<type 'list'>
test = [0,] #也可以这样定义
print type(test) #输出<type 'list'>
test = (0,) #元组可以这样定义
print type(test) #输出<type 'tuple'>
test = (0) #但不能这样定义,Python会认为它是一个括号表达式
print type(test) #输出<type 'int'>
test = 0, #也可以省略括号,但要注意与C的逗号表达式不同
print type(test) #输出<type 'tuple'>
二、python中的运算符、表达式和流程控制:
(1) Python的算术运算符除了+、-、*、/、%(取余数)之外,还有求幂(**)和取模(//);
(2) Python支持复合赋值(x+=1),但不支持C#中的自增和自减运算符(如x++);
(3) Python用and、or、not代替了C#语言中的逻辑运算符&&、||和!,同时and、or所执行的逻辑运算不返回布尔值,而是返回实际比较值之一;
(4) Python的选择语句包括if、elif和else,记得后边加冒号;Python中没有switch,但可以用if-elif-else或dict完成相同的任务模拟;
def print_one():
print 'one'
def print_two():
print 'two'
numtrans = {
1:print_one,
2:print_two,
}
try:
numtrans[x]() #注意名字+括号就可以执行方法了,这个实际上很牛X的。
except KeyError:
print 'nothing!'
(5) Python的循环语句有while、for,它们都支持else语句;注意Python的for相当于C#中的foreach语句,同时可以用for + range对象模拟C#中的常规for循环;
(6) 两种语言的异常处理语句基本一致,不同的是Python的异常处理也支持else。
try:
f = open('thefile.txt')
s = f.readline()
...
except IOError, (errno, strerror):
print "I/O error(%s): %s" % (errno, strerror)
except ValueError:
print "Could not convert data to an integer."
except:
print "Unexpected error:", sys.exc_info()[0]
raise
finally:
f.close()
三、面向对象编程的基本知识
(1) Python用class关键字、类名、括号加父类(可选)及冒号定义类,实例化类时不需要new关键字;
(2) Python可以对象中动态添加成员变量,但建议在__init__函数中添加成员变量并初始化;
(3) Python的类中可以通过名称前加双下划线定义私有变量(及私有方法);
(4) Python中定义类的方法与定义普通函数在语法上基本相同,区别是非静态方法的第一个参数总是类的实例,即self;
(5) 通过修饰符@staticmethod可以定义一个类的静态方法;
(6) Python对类方法重载和运算符重载,通过内置的运算符方法来实现
class A:
def __init__(self,sum = 0):
self.sum = sum
def __add__(self,x):
return A(self.sum + x.sum)
def __str__(self):
return str(self.sum)
a = A(1)
b = A(2)
print a + b
#输出 3
(7) Python支持类的单继承和多继承,但不支持接口,也不(直接)支持抽象类;
(8) 通过自省,可以在运行时获得对象的有用信息。
常用的自省函数包括:
* id() 返回对象唯一的标识符
* repr() 返回对象的标准字符串表达式
* type() 返回对象的类型
* dir() 返回对象的属性名称列表
* vars() 返回一个字典,它包含了对象存储于其__dict__中的属性(键)及值
* hasattr() 判断一个对象是否有一个特定的属性
* getattr() 取得对象的属性
* setattr() 赋值给对象的属性
* delattr() 从一个对象中删除属性
* callable() 测试对象的可调用性
* issubclass() 判断一个类是另一个类的子类或子孙类
* isinstance() 判断一个对象是否是另一个给定类的实例
* super() 返回相应的父类
python入门常用功能小结
最新推荐文章于 2021-12-31 16:03:17 发布