zoukankan      html  css  js  c++  java
  • Python语法入门01

    引子

    ​ 基于上一篇所学,有了计算机硬件,再在硬件之上安装好操作系统,我们就有了一个应用程序的运行平台,我们接下来的任务就是学习如何使用某款编程语言来开发应用程序。

    ​ 本篇的主题是先带大家了解下编程语言,然后重点介绍python这门编程语言

    编程语言的发展史

    1、机器语言

    优点:执行效率够快

    缺点:开发效率非常低

    2、汇编语言

    优点:执行效率快,相较于机器语言慢一点

    缺点:开发效率低,相较于机器语言快一点

    3、高级语言

    (C、C++、C#、Java、python、PHP、go等)

    优点:开发效率高

    缺点:执行效率低

    高级语言又分为编译型和解释型

    编译型:写完代码需要编译成计算机识别的二进制指令,之后操作系统会拿着编译好的二进制指令直接操作硬件。(类似于谷歌翻译)

    常见的语言有:C语言,C++、go 

    优点: 编译一次之后就可以拿着结果重复运行,而无需再次翻译,执行效率高于解释型

    缺点: 编译型代码是针对某一个平台翻译的,当前平台翻译的结果无法拿到另外一个平台使用,即无法跨平台

    解释型:类似同声翻译,需要有一个解释器,解释器会读取程序代码,一边翻译一边执行。

    常见的语言有:python、C#

    优点: 代码运行是依赖于解释器,不同平台有对应版本的解释器,所以代码是可以跨平台运行

    缺点: 每次执行都需要翻译,执行效率低于编译型

    相比较

    开发效率

    (解释型>编译型)>汇编语言>机器语言

    执行效率

    (解释型<编译型)<汇编语言<机器语言

    跨平台

    解释型>编译型

    学习难度

    机器语言>汇编语言>高级语言

    python编译器

    Python解释器有哪些种类?

    官方的Python解释器本质就是基于C语言开发的一个软件,该软件的功能就是读取以.py结尾的文件内容,然后按照Guido定义好的语法和规则去翻译并执行相应的代码。这种用C实现的解释器称为CPython,它是python领域性能最好,应用最广泛的一款解释器,我们在后面提到的解释器指的都是Cpython解释器。但其实解释器作为一款应用软件,完全可以采用其他语言来开发,只要能解释python这门语言的语法即可。Python解释器的一些种类如下,简单了解即可

    # Jython
    JPython解释器是用JAVA编写的python解释器,可以直接把Python代码编译成Java字节码并执行,它不但使基于java的项目之上嵌入python脚本成为可能,同时也可以将java程序引入到python程序之中。
    
    # IPython
    IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。这就好比很多国产浏览器虽然外观不同,但内核其实都是调用了IE。
    CPython用>>>作为提示符,而IPython用In [序号]:作为提示符。
    
    # PyPy
    PyPy是Python开发者为了更好地Hack Python而用Python语言实现的Python解释器。PyPy提供了JIT编译器和沙盒功能,对Python代码进行动态编译(注意不是解释),因此运行速度比CPython还要快。
    
    # IronPython
    IronPython和Jython类似,只不过IronPython是运行在微软.Net平台上的Python解释器,可以直接把Python代码编译成.Net的字节码。

    python编译器的安装和pycharm的安装详见https://www.cnblogs.com/aheng/p/11754307.html

    python版本分类:

    python2.X(2020年以后就不会更新了)

    python3.X

    python执行代码的两种方式

    1、交互式:有来有往

    2、命令行执行

    python文件约定俗成将后缀名定义于.py 其实.py单纯就是文本文件(无所谓什么后缀,因为都要用编译器编译)只要不改里面的源码就没事。

    IDE工具pycharm

    pycharm是专门编写python代码的软件

    优点:提升开发效率

    缺点:比较占用内存资源

    注释

    作为程序员要养成写注释的好习惯    注释是代码之母

    单行注释:#

    多行注释:'''  '''(双引号,单引号都可以)

    快捷键:Ctrl+/

    python变量

    1、什么是变量?

    变:事物的状态是可以变化的

    量:描述事物的状态

    2、没有变量行不行

    那肯定不行啊

    3、怎么用变量

    变量名+赋值符号+变量值

    比如:age = 18

    变量名的命名规则

    1、只能有字母、数字、下划线组成

    2、不能用中文(用了中文第二天就可以离职了)

    3、不能以数字开头

    4、区分大小写

    变量名的命名风格

    1、驼峰体

    例如:UserAge = 18

    2、下划线体

    user_age = 18

    变量的三大特性

    1、值    value

    2、地址      id

    3、类型     type

    常量

    什么是常量?

    常量指在程序运行过程中不会改变的量

    为什么要有常量?

     在程序运行过程中,有些值是固定的、不应该被改变,比如圆周率 3.141592653...

    怎么使用常量?

    在Python中没有一个专门的语法定义常量,约定俗成是用全部大写的变量名表示常量。如:PI=3.14159。所以单从语法层面去讲,常量的使用与变量完全一致。

    内存管理

    小整数池:

    id(内存地址)相同,变量名不同。有利于计算机的内存优化。范围是(-5 —256)超过这个范围的id地址就不会相同了

    垃圾回收机制(把没用的变量值从内存中回收,释放内存资源)

    1、引用计数:当内存中的值引用计数为0,垃圾回收机制就会自动清

    2、标记清除:当应用程序将内存撑满的时候会自动停止,清除垃圾

    3、分代回收:在历经多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低,具体实现原理如下:

    分代指的是根据存活时间来为变量划分不同等级(也就是不同的代)
    
    新定义的变量,放到新生代这个等级中,假设每隔1分钟扫描新生代一次,如果发现变量依然被引用,那么该对象的权重(权重本质就是个整数)加一,当变量的权重大于某个设定得值(假设为3),会将它移动到更高一级的青春代,青春代的gc扫描的频率低于新生代(扫描时间间隔更长),假设5分钟扫描青春代一次,这样每次gc需要扫描的变量的总个数就变少了,节省了扫描的总时间,接下来,青春代中的对象,也会以同样的方式被移动到老年代中。也就是等级(代)越高,被垃圾回收机制扫描的频率越低
    分代回收
  • 相关阅读:
    基于云的平台利用新技术来改变商店式购物营销
    在云上战斗:游戏设计师推出 Windows Azure 上的全球在线游戏
    use Visual studio2012 development kernel to hidden process on Windows8
    Mobile Services更新:增加了新的 HTML5/JS SDK 并对 Windows Phone 7.5 进行支持
    [转载]30个Oracle语句优化法例详解(3)
    [转载]Informix4gl FORM:直立控制录入两遍一概信息的设置
    [转载]Oracle数据库异构数据结合详解(1)
    [转载]informix onbar规复饬令用法
    [转载]30个Oracle语句优化划定端正详解(4)
    [转载]同一台效力器上搭建HDR实例
  • 原文地址:https://www.cnblogs.com/aheng/p/11777166.html
Copyright © 2011-2022 走看看