编程语言及python介绍
编程语言及python介绍
1、编程语言分类
机器语言
优点:执行效率高
缺点:开发效率极低,跨平台性差
汇编语言
优点:较机器语言执行效率稍低
缺点:较机器语言开发效率稍高,仍然很低,跨平台性差
高级语言
编译型(C、C++、go)
类似谷歌翻译,把程序所有的代码翻译成二进制指令后,操作系统根据指令直接操控硬件
解释型(python、PHP、C#、Java(先编译后解释))
类似同声翻译,需要解释器,一边翻译一边执行
优点:开发效率高
缺点:执行效率低
总结:
开发效率:(解释型>编译型)> 汇编语言 > 机器语言
执行效率:机器语言 > 汇编语言 >(编译型 > 解释型)
跨平台性:解释型 > 编译型
学习难度:机器语言 > 汇编语言 > 高级语言
2、python解释器
- 安装
python解释器版本:
python2.x
python3.x
打开python官网
不要下载最新版
环境变量:系统变量优先于用户变量
输入cmd打开命令提示符,输入python测试是否安装成功
python执行代码的两种方式
交互式:调试程序时使用,无法保存文件
文件式(脚本式、命令行执行):python中约定俗成的以.py结尾,其实就是文本文件,其他结尾也可执行
3、IDE工具(pycharm)
专门用于编写python代码
优点:
提升开发效率
缺点:
比较占用内存的资源
pycharm官网下载professional专业版
4、注释
1、什么是注释?
注释是代码之母,对代码进行解释说明,程序执行时不会被运行
2、为什么要注释?
增强代码可读性
3、怎么用注释?
- 单行注释,用#,快捷键Ctrl+?(#后加个空格规范化)
- 多行注释,用三个单引号或者双引号‘’‘ ’‘’或者 """ """
4、注释原则
不用全部注释,自己觉得重要的部分加注释
可以英文或者中文,不可以用拼音
5、变量
1、什么是变量?
变:事物的状态可以变化
量:描述事物的状态
2、为什么要有变量?
程序的执行本质是一系列状态的变化,需要一种机制来反映或保存程序执行时的状态,以及状态的变化
3、变量怎么用?
变量名 赋值符号 变量值
age = 18
4、变量三大特性
type变量类型
id内存地址
value变量值
5、变量名的命名规范
只能是数字、字母、下划线组成
数字不能开头
不能是中文
区分大小写
6、变量名命名风格
下划线体 user_name
驼峰体 UserName
7、常量
python中没有常量,程序员约定俗成的把全部是大写命名为常量
6、内存管理
1、小整数池
python解释器中-5~256的id相同,pycharm对此进行了优化范围更广
a = 25
b = 257
print(id(a))
>>>2335729820784
print(id(b))
>>>2335761804048
a = 255
b = 255
print(id(a))
>>>1838517664
print(id(b))
>>>1838517664
2、垃圾回收机制(GC)
垃圾回收机制是自动帮助我们管理内存,清理垃圾的一种工具
1)引用计数
当一个对象的引用被创建或者复制时,对象的引用计数加1;
当一个对象的引用被销毁时,对象的引用计数减1;
当对象的引用计数减少为0时,就意味着对象已经没有被任何人使用了,可以将其所占用的内存释放了。
优点:
简单、直观
实时性,只要没有了引用就释放资源。
缺点:
维护引用计数需要消耗一定的资源
循环应用时,无法回收。也正是因为这个原因,才需要通过标记-清理和分代收集机制来辅助引用计数机制。
2)标记-清除
“标记-清除”是用来解决循环引入问题的。
# 变量名l1指向列表1,变量名l2指向列表2,如下
>>> l1=['列表1中的第一个元素'] # 列表1被引用一次
>>> l2=['列表2中的第一个元素'] # 列表2被引用一次
>>> l1.append(l2) # 把列表2追加到l1中作为第二个元素,列表2的引用计数为2
>>> l2.append(l1) # 把列表1追加到l2中作为第二个元素,列表1的引用计数为2
# l1与l2
# l1 = ['列表1中的第一个元素',列表2的内存地址]
# l2 = ['列表2中的第一个元素',列表1的内存地址]
首先内存中有两块区域:堆区与栈区,在定义变量时,变量名存放于栈区,变量值存放于堆区,内存管理回收的则是堆区的内容
标记:标记的过程其实就是,遍历所有的GC Roots对象(栈区中的所有内容或者线程都可以作为GC Roots对象),然后将所有GC Roots的对象可以直接或间接访问到的对象标记为存活的对象。
清除:清除的过程将遍历堆中所有的对象,将没有标记的对象全部清除掉。
3)分代回收
核心思想:在多次扫描的情况下,都没有被回收的变量,gc机制就会认为,该变量是常用变量,gc对其扫描的频率会降低
分代:指的是根据存活时间来为变量划分不同等级(也就是不同的代)
回收:依然是使用引用计数作为回收的依据
编程语言及python介绍的更多相关文章
- 编程语言和python介绍, 变量,小整数池,垃圾回收机制
1.编程语言的发展史 计算机是基于电工作(基于高.低电平)1010010101011 1.机器语言 优点:执行速度够快 缺点:开发效率非常低 2.汇编语言(通过英文字符组成) 优点:执行效率相较于机器 ...
- C#编程语言及.NET 平台快速入门指南
github: https://github.com/mfjiang e-mail: hamlet.jiang@live.com ⼀.C#,CLR,IL,JIT概念 以及 .NET 家族 (⼀)基 ...
- 各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言)
各种编程语言功能综合简要介绍(C,C++,JAVA,PHP,PYTHON,易语言) 总结 a.一个语言或者一个东西能火是和这种语言进入某一子行业的契机有关.也就是说这个语言有没有解决社会急需的问题. ...
- Go语言及Web框架Beego环境无脑搭建
[原]Go语言及Web框架Beego环境无脑搭建 本文涉及软件均以截至到2013年10月12日的最新版本为准 1. 相关软件准备: 1) go1.2rc1.windows-386.msi,对应32位w ...
- Go语言及Web框架Beego环境
Go语言及Web框架Beego环境无脑搭建 [原]Go语言及Web框架Beego环境无脑搭建 本文涉及软件均以截至到2013年10月12日的最新版本为准 1. 相关软件准备: 1) go1.2rc1. ...
- Python介绍及环境搭建
摘自http://www.cnblogs.com/sanzangTst/p/7278337.html Python零基础学习系列之二--Python介绍及环境搭建 1-1.Python简介: Py ...
- 【转】Python介绍
[转]Python介绍 本节内容 Python简史 Python是一门什么样的语言? Python的优点与缺点 Python解释器 一.Python简史 历史背景 在20世纪80年代,IBM和苹果已经 ...
- python基础1之python介绍、安装、变量和字符编码、数据类型、输入输出、数据运算、循环
开启python之路 内容概要: 一.python介绍 二.安装 三.第一个python程序 四.变量和字符编码 五.用户输入 六.数据类型 七.一切皆对象 八.数据运算 九.if else 流程判断 ...
- Python介绍以及Python环境搭建
Python介绍以及Python环境搭建 1.Python 发展历史 Python是由Guido van Rossum在八十年代末和九十年代初,在荷兰国家数学和计算机科学研究所设计出来的,据说是在圣诞 ...
随机推荐
- redis持久化方式与优缺点
Redis是一个支持持久化的内存数据库,也就是说redis需要经常将内存中的数据同步到磁盘来保证持久化.redis支持四种持久化方式,一是 Snapshotting(快照)也是默认方式:二是Appen ...
- Kafka为什么速度那么快?
Kafka为什么速度那么快? Kafka的消息是保存或缓存在磁盘上的,一般认为在磁盘上读写数据是会降低性能的,因为寻址会比较消耗时间,但是实际上,Kafka的特性之一就是高吞吐率. 即使是普通的服务器 ...
- 你还在为了JVM而烦恼么?(内存结构和垃圾回收算法)
做JAVA也有接近2年的时间了,公司的leader说,做JAVA,三年是个坎,如果过了三年你还没有去研究JVM的话,那么你这个程序员只能是板砖的工具了.恰逢辞职,来个JVM的解析可好? JVM是J ...
- Nacos配置的多环境管理
实现多环境管理有下面几种方式 1.使用Data ID与profiles实现 在 Nacos Config Starter 中,dataId 的拼接格式为 ${prefix} - ${spring.pr ...
- CentOS7 Hbase 安装(完全分布式)
安装前准备 hadoop安装 zookeeper安装 安装步骤 1.下载 $ wget http://mirror.bit.edu.cn/apache/hbase/2.0.5/hbase-2.0.5- ...
- Spring IOC 常用的注解
一.@Bean 1.配置类 @Configuration public class MainConfig { @Bean public Person person(){ return new Pers ...
- laravel5.5框架中视图间如何共享数据?视图间共享数据的两种方法
laravel框架中视图间共享数据有两种,一种是用视图门面share()方法实现,另一种是用视图门面composer() 方法实现,那么,两种方法的实现究竟是怎样的呢?让我们来看一看接下来的文章内容. ...
- 记一次ssh.exec_command(cmd)执行后读取结果为空
# 连接跳板机,执行插标签 def con_tmp_machine(mobile_phoneno, myguid): keyfile = os.path.expanduser('/Users/kusy ...
- SSL保护 C/S 、B/S 通信安全
转:https://blog.csdn.net/GitChat/article/details/78431275 网络安全是一个永恒的话题,保护网络安全有很多方法,其中应用最为广泛的就是使用 SSL ...
- SpringMVC-方法四种类型返回值总结,你用过几种?
SpringMVC 现在算是 Java 领域的一个基础性框架了,很多人天天用,可是对于 SpringMVC 方法的返回值,你又是否完全清楚呢?今天松哥就来和大家聊一聊 SpringMVC 中四种不同类 ...