`

python 初步学习 小结2

阅读更多
一  字符串

  1) 字符串的索引可以是负数,比如str="hello", str[-1]=o,
  2) 分片 str="hello world"  str[1:]返回ello world   str[:-1],返回除-1位置前的所有字符,即hello wor
str[:],返回所有字符


  3)分片中的第3个限制值,步长 st="123456789"  st[1:-1:2] 则只显示2,3,6,8

  4) 字符串转换
   字符串转数字,用int(raw_input("xxxxx"))

  5) join函数
      a1=['a','b','c']
       print "-".join(a1);
    则用-将a,b,c串起来,型成a-b-c
   6)split函数
        a1="a-b-c"
       a1.split("-")
    7)strip,去掉首个字符空格 ltrip(去除左空格) RTRIP(去除右空格)
   startswith,endswith,比较字符串是否以一个字符串开始和结束
        #-*-coding:UTF-8 -*-
#Python模板
print "========欢迎使用图片上传系统========";
filename=raw_input("请输入需要上传的图片路径地址:");
if filename.endswith(".gif") or filename.endswith(".jpg"):
print "%s图片格式正确,正在上传中....."%filename;
else:
print "图片格式不正确,请上传GIF或者JPG格式图片";
   9) find 函数
       substring.find("t"); //从左往右查
       substring.rfind("t"); //从右往左查
  10) translate函数
        只处理单个字符的替换
      先转为一个元组,再进行转换为日期
        import time;
import datetime;
print time.strftime("%Y年 %m月 %d日 %X",time.localtime());
t=time.strptime("2011-3-8","%Y-%m-%d");
y,m,d=t[0:3]
print datetime.datetime(y,m,d);
  输出:2012年 02月 14日 14:29:26
2011-03-08 00:00:00

二 正则表达式
   1)正则表达导入 import re;
   例子:
   m = re.match(r"^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\.)+[a-zA-Z]{2,}$", text);
if m:
    ........................................
三 面向对象
    1)self,相当于java的this,比如  def getage(self):
    2) python中新建对象不用new
   3) 如果函数方法及属性的名称有两个下划线开始,为私有,否则为公有属性
   4)私有的属性不能被实例化对象访问,但可以用实例化对象名._类名_私有属性名访问
     比如class Fly:
           self.__abc='xxxx'
         fly=Fly()
         fly._Fly__abc
    5)数据属性
        class ABC:
          pass
        data=ABC()
        data.ddddd  //直接添加属性,不需要预先定义

    6) 静态方法
       使用staticmethod或者@staticmethod
        比如abc=staticmethod(getmethod)  //可以把普通方法或者私有方法转为静态方法
  
  7) 类方法和类实例方法
       比如class mysql(Object):
          def abc   //类实例方法
         .....
          @classmethod
           def test
             .............
          mysql1=mysql();
    mysql1.abc     
    mysql.test  (OK)
    mysql1.test  (ok)
  
 类的内置方法
      A 构造函数  __init__ 
      B 析构函数  __del__
      C __new__ 跟__init__ 
           new是在创建对象时被调用,__init__创建完对象后才调用
      D 还有如__setitem__,__getitem__等方法,为字典方法,还有__delitem__
     E 当调用==比较对象时,即调用__cmp__方法,比较两个实例

  9)方法的动态性
    比如class A:
        pass
     def today:
      a.yesterday=today  //将为类A新方法yesterday.


   10) 继承 class class_name(要继承的父类)
          在子类中使用父类的构造函数
          class father:
               def __init__
....................
         class son(father)
            father.__init__
       或者使用
           super(son,self).__init__

   11) python中没抽象类,但可以使用notimplementederror类来模拟抽象类,让其在实例化时异常
       def abstract()
       raise NotImplementedError("abstract")
     class abc:
         def __init__(self):
           if self.__class__ is abc:
             abstract()
       ..............
        abc1=abc(); //不能实例化

    12) 多继承
          class aaa(父类1,父类2,父类3)
    13) 类的命名空间
          class mynamespace:
            ..
            def ttt(self):
         mynamespace1=mynamespace()
         mynamespace1.ttt()
    14) 检查一个类是否另外一个类的子类
        
         print issubclass(子类,父类)
     15)检查是否某个类的实例
        print isinstance(实例名,类名)

四  新式类,从object或其他内置类型衍生的类,都叫新式类。
     1)_slots__属性
            python新模式的class,即从object继承下来的类有一个变量是__slots__,slots的作用是阻止在实例化类时为实例分配dict,默认情况下每个类都会有一个dict,通过__dict__访问,这个dict维护了这个实例的所有属性,举例如下
class base(object):
    v = 1
    def __init__(self):
          pass

b = base()
print b.__dict__
b.x = 2
print b.__dict__
运行:
{}
{'x':2}
可见:实例的dict只保持实例的变量,对于类的属性是不保存的,类的属性包括变量和函数。由于每次实例化一个类都要分配一个新的dict,因此存在空间的浪费,因此有了slots,当定义了slots后,slots中定义的变量变成了类的描述符,相当于java,c++中的成员变量声明,类的实例只能拥有这些个变量,而不在有dict,因此也就不能在增加新的变量
class base(object):
   __slots__ = ('y')
    v = 1
    def __init__(self):
          pass

b = base()
print b.__dict__
b.x = 2              //error,不能增加新的变量
print b.__dict__

注意,如果类的成员变量与slots中的变量同名,
class base(object):
    __slots=('y',)
   y = 2
    v = 1
    def __init__(self):
          pass

b = base()
print b.__dict__
b.x = 2
b.y = 3 //read only
print b.__dict__

目前的实现是该变量被设置为readonly!!!
   又如:
#!/usr/bin/env python
#_*_ coding:utf-8 _*_

class test_slot(object):
     __slots__ = "width", "height"

     def width(self):
         print "width"


class test(object):
     def amethod(self):
         print "amethod"
   t=tst_slot()
   t.abc='123'  //出错,因为abc不在slots中规定的属性!
    t.width='123'  //正确。

  2)__getattribute__  检查类实例的每个属性的访问,当实例的属性无论是否找到与否都执行。
      
    class  a
       def __getattribute__(self,name):
           if name=='test' ................
       
        a1=a()
        a1.member
        a1.test  //因为有test属性,所以执行
   
   3) 描述符:包含的有__get__(),__set__()__ 和__delete()__,将某种特殊类型的类的实例指派给另外一个类的属性。
        具体见:
       http://caterpillar.onlyfun.net/Gossip/Python/Descriptor.html

   4) __getattr__方法:
         如果某个属性在类中不存在,则调用__getattr__方法。首先在__dict__中找属性名,然后在实例的属性中
        
2
3
分享到:
评论
2 楼 jackyrong 2012-02-17  
jallin 写道
楼主和张学友拍照的吗?

YES
1 楼 jallin 2012-02-17  
楼主和张学友拍照的吗?

相关推荐

    Python初步学习总结.doc.pdf

    在“Python初步学习总结”中,我们探讨了如何在Eclipse集成开发环境中安装和配置PyDev插件,以及Python语法的学习和开发体验。 首先,安装PyDev插件是为了在Eclipse中支持Python开发。通常,这可以通过Eclipse的...

    Python初步

    根据给定的文件信息,以下是对“Python初步”这一主题涉及的关键知识点的详细解析: ### 一、Python简介 Python是一种高级编程语言,以其简洁易读的语法而闻名,非常适合初学者入门。它支持多种编程范式,如面向...

    Python学习总结(DOC34页).doc

    这些基础知识通常在一周到两周内就可以初步掌握,初学者可以通过在线教程,如菜鸟教程的Python简介部分进行学习。 接下来,实践是巩固理论的最佳方式。完成小项目如终端计算器,或在Codecademy这样的交互式学习平台...

    常用数据挖掘算法总结及Python实现.pdf

    Logistic回归用于二分类问题,SVM(支持向量机)通过构造最大边距超平面实现分类,适合处理小样本高维数据。集成学习如随机森林和AdaBoost,通过组合多个弱学习器提升整体性能。 第四部分,非监督学习——聚类与...

    LR模型的Python实现

    结合计算机视觉或自然语言处理技术,LR模型也可以作为初步分类器,应用于更复杂的深度学习架构中。 总结,LR模型的Python实现涉及到数据预处理、模型训练、评估和调优等多个环节。掌握这些步骤,不仅可以帮你理解LR...

    用python学习rgbd-slam系列.zip

    总结,本学习资源着重于通过Python语言掌握RGB-D SLAM的关键技术,包括数据处理、特征提取、位姿估计和地图构建。通过实际项目和代码,学习者可以逐步建立起对SLAM的理解,并具备实现简单SLAM系统的能力。

    Python语言程序设计PPT课件.zip

    每一章的小结都是对本章要点的具体解释,供学习者复习查询。 本书为河北省高等教育教学改革研究与实践项目“新工科背景下警务大数据应用专业人才培养模式与教学实践研究”(编号:2018GJJG450)的阶段性成果。 ...

    python基础练习附带答案

    这通常代表第一周的学习内容,可能包括Python的基础概念,如变量、数据类型(如整型、浮点型、字符串和布尔型)、输入/输出操作、基本运算符、控制结构(如if语句、for循环和while循环)以及函数的初步介绍。...

    基于Python的深度学习BP网络语音增强方法研究.pdf

    总结来说,基于Python的深度学习BP网络语音增强方法的研究,为我们提供了一种有效解决噪声污染问题的技术方案。通过深度学习的神经网络模型,不仅能够适应复杂的噪声环境,还能显著提高语音处理系统的性能,尤其在低...

    网格搜索算法(基于Python编程语言实现)

    2. 基于先验知识的选择:根据领域知识或初步实验结果,优先考虑可能有效的参数组合。 3. 并行化:利用多核处理器或分布式计算资源,加速网格搜索过程。 总结,网格搜索算法在优化神经网络的超参数时起着关键作用,...

    Python语言程序设计习题答案.zip

    每一章的小结都是对本章要点的具体解释,供学习者复习查询。 本书为河北省高等教育教学改革研究与实践项目“新工科背景下警务大数据应用专业人才培养模式与教学实践研究”(编号:2018GJJG450)的阶段性成果。 ...

    Excel和Python对比学习在Python数据分析课程中的运用.zip

    总结来说,Excel适合初步的数据探索和小型数据集的处理,而Python则适用于大规模数据处理、复杂分析和高级可视化。在学习过程中,结合两者,既能充分利用Excel的便捷性,又能利用Python的灵活性和强大功能,提升数据...

    细说Python.pdf

    - **Python语言与编译器**:本书开篇首先介绍了Python语言及其编译器的基本概念,为读者提供了对Python的初步了解。 - **语言的大致分类**:在此基础上,进一步探讨了编程语言的不同分类方式,帮助读者理解Python在...

    python环境搭建所需下载包

    而"python学习总结.txt"可能是对Python基础知识的简要概述,包括变量、数据类型、控制结构、函数、模块等内容的介绍,是学习Python的初步指引。 总的来说,搭建Python环境需要Python安装包、一个合适的IDE如PyCharm...

    中文版的python指导

    - **适用人群**:适合Python初学者及希望通过系统学习加深对Python理解的学习者。 #### 二、描述:相当赞的中文版的《python指导》,让你一天学会python,是你入门python的最佳选择 - **特点介绍**: - **易学性**...

    适用于所有人的Python:探索Python 3中的数据Python for Everybody: Exploring Data in Python 3

    自2008年发布以来,Python 3逐渐取代了旧版Python 2,并成为当前Python开发的主流。Python 3的主要改进包括对字符串、打印语句的改进,以及对函数、类、异常处理、数据结构等方面的一些语法改进。 其次,本书特别...

    Python语言程序设计源代码.zip

    每一章的小结都是对本章要点的具体解释,供学习者复习查询。 本书为河北省高等教育教学改革研究与实践项目“新工科背景下警务大数据应用专业人才培养模式与教学实践研究”(编号:2018GJJG450)的阶段性成果。 ...

    初识Python(第1课时)教学设计.doc

    - 初步学习编写和运行简单的Python程序。 2. 过程与方法: - 通过教师演示,学会启动Python环境和运行Python命令。 - 通过自我练习,巩固这些操作。 - 通过课堂互动,总结和拓展所学知识。 3. 情感态度与价值...

    《Python基础教程_第2版》PDF版本下载.txt

    根据提供的文件信息,我们可以推断出这是一份关于获取《Python基础教程_第2版》PDF版本下载途径的信息。下面将对与该书籍相关的知识点进行详细介绍。 ### 一、Python语言简介 Python是一种广泛使用的高级编程语言...

    python-2.7.12.zip

    总结来说,Python 2.7.12 对于那些需要兼容旧代码或项目的开发者来说仍然有价值,但随着社区的重心转向 Python 3,学习和采用最新的语言版本是保持竞争力的关键。无论是初学者还是经验丰富的开发者,都应该了解这些...

Global site tag (gtag.js) - Google Analytics