1.编程语言的发展史

  计算机是基于电工作(基于高、低电平)1010010101011

  1、机器语言
  优点:执行速度够快
  缺点:开发效率非常低

  2、汇编语言(通过英文字符组成)
  优点:执行效率相较于机器语言略低
  缺点:开发效率相较于机器语言略高

; hello.asm
  section .data ; 数据段声明
  msg db "Hello, world!", 0xA ; 要输出的字符串
  len equ $ - msg ; 字串长度
  section .text ; 代码段声明
  global _start ; 指定入口函数
  _start: ; 在屏幕上显示一个字符串
  mov edx, len ; 参数三:字符串长度
  mov ecx, msg ; 参数二:要显示的字符串
  mov ebx, ; 参数一:文件描述符(stdout)
  mov eax, ; 系统调用号(sys_write)
  int 0x80 ; 调用内核功能
  ;退出程序
  mov ebx, ; 参数一:退出代码
  mov eax, ; 系统调用号(sys_exit)
  int 0x80 ; 调用内核功能

汇编代码示例

  3.高级语言

  c、c++、c#、java、php、python、go
  优点:开发效率高
  缺点:执行效率低

  编译型:谷歌翻译
  c、c++、go

  解释型:同声传译
  c#、python、java(先编译后解释)

  开发效率:
  (解释型>编译型)>汇编语言>机器语言

  执行效率:
  (解释型<编译型)<汇编语言<机器语言

  跨平台:
  解释型>编译型

  学习难度:
  机器语言>汇编语言>高级语言

2.python介绍

python解释器:

  python版本分类:

    python2.x

    python3.x

python执行代码的两种方式:

  1.交互型:有来有往

  2.命令行执行:python文件约定俗成将后缀名定义为.py,其实.py单纯就是文本文件

IDE工具pycharm:

  专门用于编写python代码

  优点:提升开发效率

  缺点:比较占用内存的资源

注释:

  单行注释: #

  多行注释:   """  双引号      或     '''

        """         '''

  快捷键: ctrl+?

变量:

  什么是变量: 变:事物的状态是可以变化的

          量:描述事物的状态

  变量的使用:1.变量名

         2.赋值符号

         3.变量值

  变量名的命名规范:1.只能由字母、数字、下划线组成

           2.不能用中文

              3.不能以数字开头

            4.区分大小写

  变量名的命名风格:1.驼峰体

              UserAge=18

              print(UserAge)

           2.下划线体

              user_age=18

              print(user_age)

  变量的三大特征:

    值:value

    内存地址:id  id()

    变量的类型:type  type()

  常量:python中没有常量,但python程序员约定俗成将字母全部大写的变量定义为常量

     例:NAME = 'SEAN'

          HOST = '127.0.0.1'

内存管理:

  小整数池:假设有a,b两个变量,当a=b,并且在[-5,256]的整数区间内,那么他们指向相同的地址,即id相同

         #pycharm优化了这个功能,能包含更大的数,字符串,也有小整数池的机制

  例:

>>> a = 257
>>> b = 257
>>> print(id(a))
2335729820784
>>> print(id(b))
2335761804048
>>> a = 255
>>> b = 255
>>> print(id(a))
1838517664
>>> print(id(b))
1838517664

  垃圾回收机制:

  1.引用计数:当内存中的值引用记数为0,垃圾回收机制就会自动清除    #执行效率低

  2.标记清除:当应用程序将内存撑满时,会自动停止,然后进行两项工作,第一项是标记,第二项是清除

   计数机制还有个致命弱点,即循环引用(也称交叉引用),需要用到标记清除

  循环引用会导致:值不再被任何名字关联,但值的引用计数并不会为0,应该被回收但不能被回收

  直接引用指的是从栈区出发直接引用到内存地址,间接引用指从栈区出发引用到堆区后再进一步引用到内存地址

  3.分代回收:历经多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低。  #gc:Garbage Collector(垃圾收集器)

编程语言和python介绍, 变量,小整数池,垃圾回收机制的更多相关文章

  1. 编程语言及python介绍

    编程语言及python介绍 1.编程语言分类 机器语言 优点:执行效率高 缺点:开发效率极低,跨平台性差 汇编语言 优点:较机器语言执行效率稍低 缺点:较机器语言开发效率稍高,仍然很低,跨平台性差 高 ...

  2. pycharm的基本使用 、 Python的注释语法,变量,常量,垃圾回收机制,数据类型

    1.文件路径要注意 我把文件放在了D盘,如下图:你们可以根据自身情况设置 2.python环境要选择本地下载好的 如下图: 点击本机存在的环境,如果提示NO interpr,就点击第二步 如果还是没有 ...

  3. 小整数池和intern机制

    在python中,为了优化速度,避免频繁申请和销毁内存空间,python使用小整数池来缓存 range(-5,257) 之间的整数(这里不包含257),这些小整数在赋值引用时使用的都是同一个对象和内存 ...

  4. Python基础部分:7、 垃圾回收机制和流程控制

    目录 一.垃圾回收机制 1.引用计数 2.标记清除 3.分类代收 二.流程控制 1.理论 2.必备知识 3.分支结构 4.循环结构 一.垃圾回收机制 垃圾回收机制,简称GC,是python解释器自带的 ...

  5. 编程语言类别;运行Python程序的方式;变量和常量;Python程序的垃圾回收机制;

    目录 编程语言分类 运行Python程序的两种方式 1.交互式 变量与常量 1.变量 2.常量 3.小整数池 垃圾回收机制 编程语言分类 编程语言分为: 1.机器语言:直接用二进制的0和1和计算机(C ...

  6. 介绍python由来, 安装python3.8.3 及其变量的定义, 小整数池

    介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写能够解释Python语言语法的解释器.Python这个名字,来自Guido所挚爱 ...

  7. C语言和Python语言在存储变量方面的不同

    C语言和Python语言在存储变量方面的不同 众所周知,Python是脚本语言,边解释边执行,而C语言是编译型语言 存储变量: C语言定义变量,变量本身代表的就是大小,任何一个字母或者数字 符号均可以 ...

  8. CHENGDU1-Python编程语言和PEP8规范

    CHENGDU1-Python编程语言和PEP8规范 PEP8规范6条? 答:PEP8规范说白了就是一种规范,可以遵守,也可以不遵守,遵守PEP8可以让代码的可读性更高. 代码编排:---缩进,4个空 ...

  9. python垃圾回收机制与小整数池

    python垃圾回收机制 当引用计数为0时,python会删除这个值. 引用计数 x = 10 y = x del x print(y) 10 引用计数+1,引用计数+1,引用计数-1,此时引用计数为 ...

随机推荐

  1. 认识一下microbit扩展板robotbit

    在我们买到的套件中,另一块叫robotbit扩展板,所谓扩展板,是把控制板上的针脚引出来,方便我们扩展驱动连接电机.舵机.及各种传感器以展功能. 介绍如下 :下面 反面: 官方文档:http://le ...

  2. springboot yml配置文件注入值

    1.编写javabean: package com.example.springboot.bean; import org.springframework.boot.context.propertie ...

  3. Ubuntu 18 Kubernetes集群的安装和部署 以及Helm的安装

    首先说一下我的环境, 我是在windows 10 上面建了一个ubuntu18的虚拟机,同时由于某些原因 不受网络限制, 所以安装比较顺利. Install 1.安装并启用 Docker  sudo ...

  4. CentOS7安装Kubernetes1.16.3

    一.概述 手工搭建 Kubernetes 集群是一件很繁琐的事情,为了简化这些操作,就产生了很多安装配置工具,如 Kubeadm ,Kubespray,RKE 等组件,我最终选择了官方的 Kubead ...

  5. EntityFramework执行Add-Miragtion或者Update-Database出闲ScriptHalted

    今天基友在他本机运行我的项目,执行ef还原数据的时候,一直出现ScriptHalted的错误. 找了下百度,只找到一个stackoverflowd的答案,没有看到中文的解决方案. 现在总结一下,并给出 ...

  6. java之maven之maven的使用

    这里使用的工具是 myeclipse ,所以这里讲的是在 myeclipse 上使用maven. 1.什么是仓库? 用于存放依赖包.配置文件.其他插件等. 项目添加依赖时,默认从 本地仓库 读取依赖包 ...

  7. java字符串常用方法总结(更新中..)

    一.String类 1.字符串拼接 String str1 = "abcd"; String str2 = "efgh"; System.out.println ...

  8. Python 之 计算psnr和ssim值

    基于python版的PSNR和ssim值计算 总所周知,图像质量评价的常用指标有PSNR和SSIM等,本博文是基于python版的图像numpy的float64格式和uint8格式计算两种指标值(附代 ...

  9. Python之路(第四十一篇)线程概念、线程背景、线程特点、threading模块、开启线程的方式

    一.线程 ​ 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程.程序和进程的区别就在于:程序是指令的集合,它是 ...

  10. kill 命令在Java应用中使用注意事项

    前言 我们都知道,kill在linux系统中是用于杀死进程. kill pid [..] kill命令可将指定的信号发送给相应的进程或工作. kill命令默认使用信号为15,用于结束进程或工作.如果进 ...