python入门常用功能小结


一、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用andornot代替了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的循环语句有whilefor,它们都支持else语句;注意Python的for相当于C#中的foreach语句,同时可以用for + range对象模拟C#中的常规for循环;

(6) 两种语言的异常处理语句基本一致,不同的是Python的异常处理也支持elsetry:
     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()   返回相应的父类
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值