zoukankan      html  css  js  c++  java
  • python(2)- python程序的编写简单介绍

    一.语句和语法

    #  注释
    
        转译回车,继续上一行,在一行语句较长的情况下可以使用其来切分成多行,因其可读性差所以不建议使用
    
    ;  将两个语句连接到一行,可读性差,不建议使用
    
    :  将代码的头和体分开
    
    语句(代码块)用缩进方式体现不同的代码级别,建议采用4个空格(不要使用tab),因为不同编程语言环境下tab所代表的空格数不一定是4
    
    python文件以模块的方式组织,编写一个.py结尾的文件实际上就写了一个模块
    

      

    二.变量定义与赋值

    a=1:1为内存变量存放于内存中,a为变量的引用,python为动态语言,变量及其类型均无需事先声明类型
    
    与C语言和C++的区别:a=1无返回值
    
    注:1.c语言变量声明必须位于代码最开始,而且要在所有语句之前
    
      2.c++,java可以随时随地声明变量,但是必须声明变量名字和类型
    
      3.python也可以随时随地声明变量,但是变量在被定义时,解释器会根据等式右侧的值来决定其类型
    
      4.变量必须先赋值,才可使用
    

      

    三.内存管理

    内存管理:

    1.变量无须指定类型
    
    2.程序员无须关心内存管理
    
    3.变量没有指向被赋予的值时会被自动回收
    
    4.del能够直接释放内存对象(减少对象的引用计数)
    

      

    引用计数:

    增加引用计数:

    1.对象被创建并将其引用赋值给变量,引用计数加1(例a=1)
    
    2.同一个对象的引用又赋值给其它变量,引用计数加1(例b=a)
    
    3.对象作为参数被函数调用,引用计数加1(例int(a))
    
    4.对象成为容器对象中的一个元素,引用计数加1(例list_test=['xuyaping','z',a])
    

      

    减少引用计数:

    1.a作为被函数调用的参数,在函数运行结束后,包括a在内的所有局部变量均会被销毁,引用计数减1
    
    2.变量被赋值给另外一个对象,原对象引用计数减1(例b=2,1这一内存对象的引用只剩a)
    
    3.使用del删除对象的引用,引用计数减1(例del a)
    
    4.a作为容器list_test中的一个元素,被清除,引用计数减少(例list_test.remove(a))
    
    5.容器本身被销毁(例del list_test)
    

      

    注意:python内存回收交给一段独立的代码即垃圾回收器(包含引用计数器和循环垃圾收集器),引用计数在归零时并不会立即清除(可能有循环调用)
    
       不必纠结循环引用收集,只需记住垃圾回收器帮你自动清理内存。
    

      

    简单例子

    x=1 #创建内存变量1,将变量1的引用传给x,此刻1的引用计数为1
    y=x #1的引用计数增加到2
    
    
    y=2 #创建新的内存变量2,将变量2的引用传给y,原本指向1的y,此刻给了2,所以1的引用计数减少到了1
    
    del x #删除了内存对象1的引用x,此刻1再无引用,此刻它就成了python解释器回收的目标
    

    四.python对象

    python中使用对象模型来存储数据,用来生成数据类型的工厂函数本质上是类,新建数据的结果本质是实例化一个对象
    
    对象有三种特性:
    1.身份:内存地址,可以用id()确认,id相同的就是同一个对象 2.类型:可以用type()查看,返回值的type也是对象 3.值

    五.标识符

    定义:允许作为名字的有效字符串集合
    
    1.名字必须有实际意义,可读性好
    
    2.首字母必须是字母或下划线(_)
    
    3.剩下的字符可以是字母和数字或者下划线
    
    4.大小写敏感
    
    5.两种风格:conn_obj或ConnObj
    
    6.不能使用关键字,不能使用内建
    
    内建:由解释器自动导入(提供基本功能),可以看作全局变量,
    

      

    六.专用下划线标识符

    _xxx:不能用from module import *导入
    
    __xxx__:系统定义名字
    
    __xxx:类中私有变量
    
    下划线对于解释器来说有特殊意义,而且是内建标识符所使用符号,不建议自定义变量以下划线开头
    
    但是如果是类中的私有变量,__xxx将会是一个好习惯
    
     
    
    系统变量__name__会根据python文件被加载方式的不同得出不同的值。
    
        python文件被当作模块导入:__name__=模块名或者文件名
    
        python文件被执行:__name__='__main__'
    
     
    
    在我们使用python编写一个软件时,应该只有一个主程序中包含大量顶级代码(就是没有缩进的代码,python解释器读取到顶级代码会立即执行),其他.py文件应
    
     
    
    该只有少量顶级代码,所有功能都应该封装在函数或类中。
    
     
    
    通常在文件结尾结合__name__变量,编写测试代码 。
    

      

    七.编写模块基本风格

    1.标题
    2.文档注释
    3.模块导入
    4.变量定义
    5.类定义语句
    6.函数定义语句
    7.主程序
    8.测试代码
    

      

    八.示范

    #_*_coding:utf-8_*_
    #!/usr/bin/env python
    
    '''
    This is an example module
    '''
    
    import sys,os
    
    debug=True
    
    class Test:
        '''
        test class
        '''
        pass
    
    def main():
        '''
        test func
        :return: 
        '''
        pass
    
    if __name__ == '__main__':
        main()
    

      

  • 相关阅读:
    与众不同 windows phone (50)
    与众不同 windows phone (49)
    重新想象 Windows 8.1 Store Apps (93)
    重新想象 Windows 8.1 Store Apps 系列文章索引
    重新想象 Windows 8.1 Store Apps (92)
    重新想象 Windows 8.1 Store Apps (91)
    重新想象 Windows 8.1 Store Apps (90)
    重新想象 Windows 8.1 Store Apps (89)
    重新想象 Windows 8.1 Store Apps (88)
    重新想象 Windows 8.1 Store Apps (87)
  • 原文地址:https://www.cnblogs.com/xuyaping/p/6726710.html
Copyright © 2011-2022 走看看