开始python之旅

    接触python缘于工作所需,曾经接触过CC++等语言,对于编程语言在学习上大体是一个套路,当然套路因人而异,适合就好。接下来,我将不断分享python的知识和学习技巧,共同学习。

 起源

初识一门语言善于先了解语言的起源,毕竟饮水思源,赋予语言生命力也会让自己的代码生机盎然,那么话不多说,开始吧。

很久很久以前(1989年底,和我有缘的一年),一个叫Guido van Rossum的人在荷兰CWI(某个研究院)始创了Python,这缘于一个研究项目,van Rossum作为一名对解释语言ABC有着丰富设计经验的研究员,试图创造一种通用的程序设计语言用于完成日常系统管理任务并且能够访问Amoeba分布式操作系统的系统调用。我想在这个试图创造的过程中一定存在某些可以完成任务的工具,但能够播下python的种子,必然也是善于改变和思考以及富有创造性的人才能够做到的。

特点

     到目前python已经有20多年的历史了,能够经受住历史的考验取决于python自身的优点,下面介绍一些主要特点:

     高级:

             C++Java一样python是高级语言,此外,Python是解释型语言。

             内建数据结构(如:列表、字典),缩短代码量和开发时间,而且代码更易读,简洁。这一点对于程序员来说是福音,假设一个场景:某程序员小五写了一段代码,很久之后需要对这段代码增加一些内容,但时间久忘了当时的逻辑怎么办?对,注释,但写注释的勤快人并不多,这时只能再一次分析代码,如果是C 的话,那可就更头大了。这种情景下使用简洁易读的语言优势显而易见。不过,一名优秀的程序员,首先是应该写好注释。

     面向对象:

              Python具有面向对象特性,但不仅仅是面向对象,个人感觉某些场景下函数式编程更有优势。

     可升级:

              可升级其实是指模块化扩展。

     可扩展:

              用其他语言扩展

     内存管理器:

              Python中,内存的管理是由解释器负责的,在这一点上比CC++要优越,因为开发人员不用考虑什么时候需要回收释放资源,不用处理内存泄露等问题。但是,从开发者的角度而言,内存的管理十分重要,即便不用负责管理,也应该了解原理性的知识,以便进行像代码优化这类的处理。

     解释性和(字节)编译性:

              前面也提到了python是解释型的语言,但与纯粹的解释型语言不同,python实际上是字节编译(不是以本地机器码编译),因此,常看到*.pyc编译文件也就不足为奇了。

转载于:https://www.cnblogs.com/codinggirl/p/3251787.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/377969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

LeetCode 112. 路径总和 、113. 路径总和 II 思考分析

目录112. 路径总和题目递归解递归解,其他人的解法迭代解,其他人的解法113. 路径总和 II题目递归解递归解,参考别人的思路112. 路径总和 题目 给定一个二叉树和一个目标和,判断该树中是否存在根节点到叶子节点的路径,…

kotlin 查找id_Kotlin程序查找矩阵的转置

kotlin 查找idA transpose of a matrix is simply a flipped version of the original matrix. We can transpose a matrix by switching its rows with its columns 矩阵的转置只是原始矩阵的翻转形式。 我们可以通过切换矩阵的行和列来转置矩阵 Given a matrix, we have to…

[mongodb翻译]分片和故障转移

一个配置恰当的mongodb 分片集群不会有单点失效。 本章节描述了集群服务器中可能出现的故障,及相应的对策。 1. 某个mongos路由进程故障 每一个mongos会运行每一台应用服务器上面,该应用服务器只能通过这个mongos进程和集群进行通信。mongos进程不是…

看张子阳的书真是收获很多,也醒悟了很多(一)

摘录: 这是有一次开会时,我的老总跟我们说了这样一个事例:通常来说,医生是很高尚的职业(暂不考虑国内医生的负面新闻),尤其是牙科医生, 他们有着体面的工作并且收入不菲。但是&#…

【C++ grammar】抽象、封装与this指针

目录1、Abstraction and Encapsulation(抽象与封装)1. Data Field Encapsulation (数据域封装)2. Accessor and Mutator (访问器与更改器)2.1. To read/write private data, we need get/set function (为读写私有数据,需要get/set函数)2.2. …

java创建临时文件_用Java创建一个临时文件

java创建临时文件The task is to create a temporary file in Java. 任务是用Java创建一个临时文件。 Creating a temporary file 创建一个临时文件 To create a temporary file in java – we use createTempFile() method of "File" class. The createTempFile()…

十九、图像的形态学操作

一、图像形态学 图像形态学是图像处理学科的一个单独分支学科 主要针对的是灰度图和二值图像 是由数学的集合论以及数学中的拓扑几何原理发展而来 二、膨胀操作(dilate) 33的卷积核 以33为卷积核从左往右(从上往下)开始运行,若这卷积核…

X名称空间(WPF)

笔记简述 闲话x名称空间简要x名称空间的Attributex名称空间的标签扩展x名称空间的XAML指令元素闲话 本笔记参考与《深入浅出WPF》、MSDN、Some Blog… MSDN的飞机票点这里。 x名称空间简要 在VS中新建个WpfApplication都会自动生成xmlns:x"http://schemas.microsoft.com/w…

基于Bresenham和DDA算法画线段

直线:ykxb 为了将他在显示屏上显示出来,我们需要为相应的点赋值,那么考虑到计算机的乘法执行效率,我们肯定不会选择用Ykxb这个表达式求值,然后进行画线段。 我们应当是将它转化为加法运算。 下面提供两种常见的算法&am…

leetcode 106. 从中序与后序遍历序列构造二叉树 105. 从前序与中序遍历序列构造二叉树思考分析

目录1、106题目2、参考思路:递归切割数组3、105题目4、同样思路的代码1、106题目 2、参考思路:递归切割数组 代码参考:公众号:代码随想录 后序数组中序数组 以 后序数组(左右中)的最后一个元素作为切割点,先切中序数组…

按频率对元素进行排序

Prerequisite: 先决条件: Hashing data structure 散列数据结构 How to write user-defined comparator for priority queue STL in C? 如何在C 中为优先级队列STL编写用户定义的比较器? How to sort a map based on values instead of value? 如何根…

二十、分水岭算法

一、基本原理 分水岭算法主要是基于距离变换(distance transform),找到mark一些种子点,从这些种子点出发根据像素梯度变化进行寻找边缘并标记 分水岭:可以简单的理解成一座山,然后来洪水了,水开…

细数WOW里暴雪的“亲儿子”们

. 不知何时,魔兽世界的词汇中忽然出现了一个新玩意:亲儿子。虽说这个称呼现在大多是拿来调侃法爷的,但江山代有儿子出,各领风骚一两天,今天风光无限的法爷们也经历过被其他职业压得抬不起头的小媳妇生涯。那么今天…

Linux下串口ttyS2,ttyS3不能用的问题解决办法

PC104,Xlinux下,突然发现串口3,4不能用。。。 以为是硬件的问题,换成wince后,3,4工作正常,排除电路问题 在linux下查看dmesg: serial8250: ttyS0 at I/O 0x3f8 (irq 4) is a 16550Aserial8250: ttyS1 at I/O 0x2f8 (i…

安卓log.e函数打印示例_log1p()函数以及C ++中的示例

安卓log.e函数打印示例C log1p()函数 (C log1p() function) log1p() function is a library function of cmath header, it is used to get the natural logarithm (the base-e logarithm) of the one plus given value. It accepts a value (float, double, or long double) …

【C++grammar】C++类数据成员的初始化

目录1、类成员的就地初始化example2、构造函数初始化3、默认构造函数:Default Constructor4、举例5、成员的初始化方法的优先级1、类成员的就地初始化example class S { int m 7; // ok, copy-initializes m int n(7); // 错误:不允许用小括号初始化…

二十一、人脸检测

一、识别图像中的人脸 haarcascade_frontalface_alt_tree.xml lbpcascade_frontalcatface.xml GitHub上有Haar级联检测器源代码可自行下载,lbp级联检测器也一样有源码可自行下载 也一样 import cv2 as cv import numpy as npdef face_detect(image):gray cv.cvtC…

aspx特殊符号说明

http://www.cnblogs.com/GnagWang/archive/2010/07/14/1777130.html转载于:https://www.cnblogs.com/mingyongcheng/archive/2011/11/24/2261253.html

javascript运算符_JavaScript中的按位运算符

javascript运算符JavaScript按位运算符 (JavaScript Bitwise Operators) A lot of times you come across some strange operators where youre knocking your head to understand what is going on in the code. Almost all the programming languages have bitwise operators…

[置顶] Android的IPC访问控制设计与实现

3.3.1 IPC钩子函数设计与实现 IPC Binder是Android最重要的进程间通信机制,因此,必须在此实施强制访问控制。 1. 修改secuirty.h 打开终端shell,输入指令“cd /android4.0/kernel/goldfish/include/linux/vim security.h”,找到结…