zoukankan      html  css  js  c++  java
  • learnpython(未整理的内容)

    了解python

    1.python -编译->字节码-解释字节码,字节码是跟平台无关的(c的完全编译->二进制代码,intel芯片的指令)所以比c,c++慢,这也是python最大的缺点了。

    2.python解释器,代码-解释器-计算机硬件(安装py之后,有一个解释器跟库,所以需要运行纯py代码,必须安装解释器,解释器就是运行python程序的程序

    3.编译是一个简单的翻译的步骤,每条源码转为一条条字节码,字节码无关平台,运行比源码快,解释器将字节码解释运行。

    1)如果py有读写权限。那么会把解释出来的字节码保存在pyc文件里面。没发生改变的话,就直接运行pyc文件。这是一种启动速度的优化,减少了解释的步骤。检查源文件跟字节码的时间戳,进行对比来决定是否重新解释。

    2)如果没有读写权限,那么会把字节码存在内存进行运行,然后程序结束后简单丢弃

    3)字节码在虚拟机中运行

    源代码->字节码->PVM(虚拟机)->                                                                                                                                                                            cpu

    4.python只拥有运行时候,所有的工作都是在运行的时候做的,建立函数,类的操作,连接模块。

    5.CPython指的是,用c语言编写的python软件, JPython是java写的

    6.pyinstaller 生成自安装的二进制文件,exe 将代码虚拟机器

    Python的对象类型

    1.python是动态类型(自动跟踪你的类型而不是要求声明),但是它也是强类型语言(只能对一个对象进行合适该类型的有效操作)

    2.列表解析表达式[row[1] for row in M if row[1] % 2 ==0]

    3.列表解析回比for快2倍左右(TODO测试)

    4.元组提供了一种不可变约束性

    5.检查对象类型 1.if type(L) == type([])  2.if type(L) == list  3.if isinstance(L, list)

    数字

    1.32位整形,跟无限长整形,可以通过后面加L,l来变成长整形,当超过32位的时候,会自动转为长整形。

    2.bin(1<<2) 显示为bx100

    3.小数对象可以修正浮点数运算精确度不够的问题 Decimal('0.1')

    4.Fraction(2,3) 分数,Fraction('2', '3') 字符串也可以生成

    5.True,跟False是1,0对象的子类,实际上就是数字,但是做了独特的显示,输出。但是True+1 会输出2

    动态语言特点:

    1.类型是对象的,而不是变量的,变量只是引用了对象。对象基本头部是类型跟引用计数。gc相关可以再总结 

    字符串:

    1.r"(- -)/" 表示为原始字符串,不用转义

    2.s = ‘a b c’ len(s) = 5 a, 换行符,b,缩进符,c 转义反斜杠是不跟字符串一起存储在内存中的

    3.字符串翻转 s[::-1]

    元组:

    为什么要元组,元组提供了一种规则完整性,确保不会被其他引用所改变。但是元组里面的元素如果是列表,是可以改变的,元组的元素的引用不能变。

    print(x, end = " ")

    生成器跟迭代器:

    迭代器是一个类似列表但是只提供了next接口进行迭代的结构

    yield返回的是一个生成器,有迭代协议,可以进行迭代使用

    map:

    lst1 = [1,2,3] lst2 = ["one","two","three"]

    print dict(map(None, lst1, lst2)) 

    {1:"one",2:"two",3:"three"}

    内置作用域  2.6 true false str list都在里面

    嵌套作用域 , 嵌套函数,lambda 可变变量才能被子函数改变,不变变量只是只读,

    全局变量 == 模块的属性

    lambda 一个表达式,不是语句,匿名的函数,函数速写,推迟执行,替代def函数 常用于回调注册, 或者简单地内联代码,不要过度使用,def总能替代它

    ;callfunc  = {

      1:(lambda x, y: 1, 2)

    继承搜索树,

    对象->类->超类

    方法是拥有特殊第一参数的函数,函数方法。是类对象的拥有的。也是面向对象的一个设计。因为传入的第一参数是实例对象,对实例对象做处理。故称面向对象

    静态方法 staticmethod

    类方法 classmethod

    类装饰器

  • 相关阅读:
    Qt 打印机支持模块
    手动启动jenkins
    Ubuntu下安装Apache2, php5 mysql
    Ubuntu 使用apt-get时提示错误:无法获得锁 /var/lib/dpkg/lock
    scp 在不同机器上传文件
    python 正则表达式 贪婪模式的简介和匹配时的几种模式
    python指定pypi的源地址 镜像地址
    python三元运算符
    python导入上级目录中的模块
    linux下使用vim替换文件中的^M换行符
  • 原文地址:https://www.cnblogs.com/leilei-weapon/p/13592047.html
Copyright © 2011-2022 走看看