初识python

python的创始人为吉多*范罗苏姆(Guido van Rossum)。1989年圣诞节期间,开发出来的脚本解释程序。

python是⼀⻔什么样的语言

python 是一门解释型语言,弱类型语言。

编程语⾔主要从以下⼏个⻆度为进⾏分类,编译型和解释型、静态语⾔和动态语⾔、强类

型定义语⾔和弱类型定义语⾔,我们先看编译型语⾔和解释型语⾔. 稍后再说强类型和弱类
编译和解释的区别是什么?
编译器是把源程序的每⼀条语句都编译成机器语⾔,并保存成⼆进制⽂件,这样运⾏时计算机
可以直接以机器语⾔来运⾏此程序,速度很快;
⽽解释器则是只在执⾏程序时,才⼀条⼀条的解释成机器语⾔给计算机来执⾏,所以运⾏速度
是不如编译后的程序运⾏的快的.
这是因为计算机不能直接认识并执⾏我们写的语句,它只能认识机器语⾔(是⼆进制的形式)
 
 
 
 

编译型vs解释型

编译型
优点:编译器⼀般会有预编译的过程对代码进⾏优化。因为编译只做⼀次,运⾏时不需要编
译,所以编译型语⾔的程序执⾏效率⾼。可以脱离语⾔环境独立运⾏。
缺点:编译之后如果需要修改就需要整个模块重新编译。编译的时候根据对应的运⾏环境⽣
成机器码,不同的操作系统之间移植就会有问题,需要根据运⾏的操作系统环境编译不同的
可执⾏⽂件。
解释型
优点:有良好的平台兼容性,在任何环境中都可以运⾏,前提是安装了解释器(虚拟机)。
灵活,修改代码的时候直接修改就可以,可以快速部署,不⽤停机维护。
缺点:每次运⾏的时候都要解释⼀遍,性能上不如编译型语⾔。
 

1.2.python的优缺点

 
先看优点
1. Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易
懂,初学者学Python,不但⼊⻔容易,⽽且将来深⼊下去,可以编写那些⾮常⾮常
复杂的程序。
2. 开发效率⾮常⾼,Python有⾮常强⼤的第三⽅库,基本上你想通过计算机实现任何
功能,Python官⽅库⾥都有相应的模块进⾏⽀持,直接下载调⽤后,在基础库的基
础上再进⾏开发,⼤⼤降低开发周期,避免重复造轮⼦。
3. ⾼级语⾔————当你⽤Python语⾔编写程序的时候,你⽆需考虑诸如如何管理你
的程序使⽤的内存⼀类的底层细节
4. 可移植性————由于它的开源本质,Python已经被移植在许多平台上(经过改动
使它能够⼯ 作在不同平台上)。如果你⼩⼼地避免使⽤依赖于系统的特性,那么你
的所有Python程序⽆需修改就⼏乎可以在市场上所有的系统平台上运⾏
5. 可扩展性————如果你需要你的⼀段关键代码运⾏得更快或者希望某些算法不公
开,你可以把你的部分程序⽤C或C++编写,然后在你的Python程序中使⽤它们。
6. 可嵌⼊性————你可以把Python嵌⼊你的C/C++程序,从⽽向你的程序⽤户提供
脚本功能。
再看缺点:1. 速度慢,Python 的运⾏速度相⽐C语⾔确实慢很多,跟JAVA相⽐也要慢⼀些,因此
这也是很多所谓的⼤⽜不屑于使⽤Python的主要原因,但其实这⾥所指的运⾏速度
慢在⼤多数情况下⽤户是⽆法直接感知到的,必须借助测试⼯具才能体现出来,⽐如
你⽤C运⼀个程序花了0.01s,⽤Python是0.1s,这样C语⾔直接⽐Python快了10倍,
算是⾮常夸张了,但是你是⽆法直接通过⾁眼感知的,因为⼀个正常⼈所能感知的时
间最⼩单位是0.15-0.4s左右,哈哈。其实在⼤多数情况下Python已经完全可以满
⾜你对程序速度的要求,除⾮你要写对速度要求极⾼的搜索引擎等,这种情况下,当
然还是建议你⽤C去实现的。
2. 代码不能加密,因为PYTHON是解释性语⾔,它的源码都是以名⽂形式存放的,不
过我不认为这算是⼀个缺点,如果你的项⽬要求源代码必须是加密的,那你⼀开始就
不应该⽤Python来去实现。
3. 线程不能利⽤多CPU问题,这是Python被⼈诟病最多的⼀个缺点,GIL即全局解释
器锁(Global Interpreter Lock),是计算机程序设计语⾔解释器⽤于同步线程的
⼯具,使得任何时刻仅有⼀个线程在执⾏,Python的线程是操作系统的原⽣线程。
在Linux上为pthread,在Windows上为Win thread,完全由操作系统调度线程的
执⾏。⼀个python解释器进程内有⼀条主线程,以及多条⽤户程序的执⾏线程。即
使在多核CPU平台上,由于GIL的存在,所以禁⽌多线程的并⾏执⾏。关于这个问题
的折衷解决⽅法,我们在以后线程和进程章节⾥再进⾏详细探讨。
 
 
 
 

python 学习(day1)的更多相关文章

  1. Python学习-day1

    Mark一下,python学习. 今天一天已1.5x的速度看完了Alex老师的第一周的视频,先是4节鸡汤课,而且给了勺,讲述了python目前在世界的地位,发展趋势,以及未来的愿景. 最重要的还是写一 ...

  2. python学习——DAY1

    日期:20170113 一.个人体会: 零基础学python,是艰辛的,需要付出和坚持. 关于流程图.我最开始画的是从上到下,再从左到右,画了很多重复的内容,单线程的流程图,看起来很容易理解,但是自己 ...

  3. python学习Day1 计算机原理编程思维

    一.学习思想:3W+1H   学什么(what).为什么学(why).用在哪里(where).怎么用(how) 学习编程语言重在代码量.代码量.代码量! 二.计算机五大组成部分,三大核心: 五大组成部 ...

  4. python学习day1

    python简单介绍: Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种 ...

  5. Python学习day1 初识python&环境安装

    day1 环境安装-计算机基础 环境安装参见 https://blog.csdn.net/ling_mochen/article/details/79314118 1.markdown基本语法 htt ...

  6. python学习 day1 (3月1日)

    01 cpu 内存 硬盘 操作系统 CPU:中央处理器,相当于人大脑. 飞机 内存:临时存储数据. 8g,16g, 高铁 1,成本高. 2,断电即消失. 硬盘:长期存储大量的数据. 1T 512G等等 ...

  7. huyingsakai的Python学习day1:计算机硬件

    1.python是什么?Python是一门编程语言 2.什么是编程语言?(*****)程序员和计算机沟通交流的介质 3.什么是编程?(*****)编程就是程序员想把内心表达的方法用某种计算机语言思维表 ...

  8. Python学习-Day1(Typora软件与计算机)

    学习总括 Typora软件介绍(markdown语法) 相关拓展知识 文件的后缀名是什么? 什么是语言? 什么是编程语言? 什么是编程?(程序员写代码的本质) 计算机的五大组成部分 计算机的本质 计算 ...

  9. python学习第一

    #python学习day1#一.变量#变量命名规范:#驼峰命名法:AgeOfPlane#下划线命名(推荐):age_of_plane#变量格式同C/C++#注意:变量不以中文命名:变量不宜过长:变量因 ...

  10. Python学习笔记,day1

    Python学习第一天 一.变量 变量定义的规则: 变量名只能是 字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声明为变量名['and', 'as', 'assert', ...

随机推荐

  1. Oracle 11g Dataguard参数详解

    https://www.jb51.net/article/52269.htm注:本文译自<Oracle Data Guard 11g Handbook> Page 78 – Page 88 ...

  2. sql server使用sp_executesql返回拼接字符串里面的输出参数

    问题: 今天一同事请教博主,他拼接了一个语句,select表格形式数据,然后使用@@rowcount获取到行数. 但他又有这样特别的需求:想只获取行数而不返回表格数据结果,因为是while循环,不想返 ...

  3. Docker和ASP.NET Core

    Docker和ASP.NET Core Docker 正在逐渐成为容器行业的事实标准,受到 Windows 和 Linux 生态系统领域最重要供应商的支持. (Microsoft 是支持 Docker ...

  4. PostgreSQL数据库一些tricks

    PostgreSQL自带Pgadmin客户端,可用于访问本地和远程PG库,一些tricks如下: 1.联合查询 SELECT * FROM table1 INNER JOIN table2 ON ta ...

  5. IO流与装饰者模式

    java使用IO流来处理不同设备之间数据的交互;所有的IO操作实际上都是对 Stream 的操作 从功能上划分: 输入流: 当数据从源进入的编写的程序时,称它为输入流; 输出流: 从程序输出回另一个源 ...

  6. JavaScript空字符串判断

    JavaScript空字符串判断 本文完整示例代码GIT仓: 测试用例完整代码:isNullOrEmpty jPublic GIT仓:jPublic 比较常见写法 if (str == 'undefi ...

  7. .net core 日常学习第一篇

    使用vs 2015 update3 版本,安装sdk:https://dotnet.microsoft.com/download  可以运行 .net core 1.x版 或者使用vs 2017及以上 ...

  8. Java - 变量常量数据类型

    标识符命名规范 可以有字母数字下划线和美元符组成, hello abc 不能以数字开头 123abc 严格区分大小写 void Void 不能是java的关键字和保留字 class 标识符必须是见名知 ...

  9. dedecmsV5.7 arclist 如何调用副栏目的文章

    问题:用arclist 调用某个栏目下的文章的时候,发现无法调用出副栏目是这个栏目的文章. 然后就上百度搜了一番,记录一下我搜到的解决方法: 1.打开/include/taglib/arclist.l ...

  10. ABP入门教程10 - 展示层实现增删改查-控制器

    点这里进入ABP入门教程目录 创建控制器 在展示层(即JD.CRS.Web.Mvc)的Controllers下新建一个控制器CourseController.cs using Abp.Applicat ...