Python第一印象

  最近在学python,发现它有许多新颖的地方。我之前学过一些C++,发现Python与C++在些地方很相似,有些地方大相径庭。许多Python的概念,C++中都有相似的。

目前遇到的有几个:

1. “万物皆对象”

  Python中,a = 10, b = 10, 则a,b同引用同一个对象10, 这个“10”被储存在内存某个地方(可以通过id(10)来查看地址)

  在C++中, a = 10, b = 10 中, 10是一个右值, 没有地址(?)。

  另外,在python中, function也是对象,function object + instance object = method object,程序每一个组件都被视为对象,拥有自己的属性和方法

2.类

  1. python类的method第一个参数为self, 类似于C++的this指针,用来指代调用method的对象。

  2. 类有class variable 和 instance variable 两种 data attribute, 前者类似C++的 static data member, 是属于类的,被全员共享的;后者是属于某个instance的,只能被这个instance访问;

最令我惊讶的是:同一个类的instance的instance varible可以数量不同。可以在运行时给某个instance添加某个属性,也可以del掉。而在C++中,类的data member数量是固定的统一的。

  3. 类内也可以定义类,这个跟C++一样

3.赋值

  Python支持多个变量同时赋值:

a, b = b, a  # 将a,b交换

  

4.函数

  最明显的差异是, Python中函数内可以定义函数, 这一个在C++中是禁止的;

5. 推导式

  Python有列表推导式,字典推导式等。在语法上它们更加接近英语,在实践中也能简化代码,提高可读性。

(未完)

6.迭代

  Python没有C/C++风格的迭代(即以以索引变量的改变去遍历序列),只有类似for_each的迭代:

for i in range(1, 22):         # Python 迭代
         ------

for ( int i = 0; i < num; ++i)    # C++风格的迭代
         ------

7. 生成器和惰性计算

  Python中使用yield语句来生产生成器,来返回一个迭代器。它的好处是可以实现惰性计算,即只有被需要的时候,程序才计算结果,而不用事先计算好结果存起来,这样就减少了空间占用。生成器巧妙之处在于,每次执行到yield语句,就返回结果,同时记录变量和语句执行的状态。下一次运行将从上一次的yield语句后的语句开始执行。

(未完)

原文地址:https://www.cnblogs.com/Tsuko/p/9345704.html

时间: 2024-11-06 12:34:31

Python第一印象的相关文章

Python第一印象,大法好!

为了用flask开发web应用,这两天就开始看了一点点Python.还没看到用Python写网站后台的那部分,就被其强大的数据处理能力和语法的灵活性吸引.肯定是我少见多怪,不过看到人家灵活使用Python的这些特性,写出一些奇技淫巧般的代码时,忍不住大赞.下面写一两个例子,一来加深自己的记忆,二来赞美一下Python.(代码借鉴了大神们的思想) 1.剔除1到1000内不是回文数的数,然后打印. 判断一个数是不是回文数,想必学过编程的都写过.当我还在想着取整数的每一位,再倒序加起来和原数比较是否相

值得赞扬的尝试与进步——CSDN开源夏令营第一印象

注:写这篇文章时我并未參加CSDN开源夏令营,也不确定是否会參加以及是否能參加上. 欣闻CSDN举办了"CSDN开源夏令营"活动.第一感觉是CSDN作为活动的组织者是很值得称赞的.作为參加了Google Summer of Code的人,这里对照下CSDN开源夏令营和Google Summer of Code.纯粹是个人见解,仅供參考. 开源组织 在了解有这个活动后,第一反应是这不就是中国的GSoC吗,先给CSDN大大的一个赞.但冷静一想:国内有合格的开源组织吗?这里不是贬低国内开源活

Couchbase第一印象(架构特性)

Couchbase第一印象(架构特性) 面向文档 保存的字节流总有一个 DOCUMENT ID(Object_ID) 高并发性,高灵活性,高拓展性,容错性好 面向文档的集群存储系统 每个文档用一个唯一的Doc ID 均衡负载 Buckets vs vBuckets 1. Buckets couchbase的存储逻辑单元叫Bucket 每个bucket有个名字 couchbase 一个节点当前限制10及以下buckets bucket 有两种类型 couchbase和memcached bucke

python~~第一天

人生短暂,我用python~ print('人生短暂,我用python')  #第一句编程 printf(5+1) #结果是6 , n1 = 5 n2 = 1 printf(n1 + n2)  #结果当然也是6 这就是python中的变量了,变量的作用:昵称,其代指内存里某个地址中保存的内容(我自己的理解就是和现实中 每个人都需要有一个名字一样,hh),命名当然也有规则-- 变量名只能是 字母.数字或下划线的任意组合 变量名的第一个字符不能是数字 以下关键字不能声明为变量名['and', 'as

让你提前认识软件开发(45):代码的第一印象

第3部分 软件研发工作总结 代码的第一印象 我们都很注重给别人的第一印象,也有很多书籍教我们怎样给别人留下一个美好印象的.确实,如果我们第一眼看到某个人,就觉得很不爽,那么一定会在心理上产生抵触,以后再见到他,会有一种疏远的感觉.也正因为如此,当今社会交往中的"面子工程"很重要,不管怎样,先撑足了自己的脸面再说. 代码也一样,也会给别人留下或好或差的印象.当我们看到优美的代码时,会有一种想继续研究下去的欲望,甚至会有一种觉得很享受的感觉.相反,当我们看到丑陋的代码时,就会咬牙切齿,因为

学习python第一天

学习Python第一天 Python小白,做Linux运维5年,纯系统运维已经不能满足日常工作需要,所以学习Linux运维开发入门级语言python 前言: Python, 是一种面向对象.解释型计算机程序设计语言,由Guido van Rossum于1989年发明,第一个公开发行版发行于1991年. Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议. Python语法简洁清晰,特色之一是强制用空白符(white

Python第一周基础篇

<感言:首先感谢alex老师精彩课程,第一周的第一天,随着金角大王的豪言壮语般的心灵鸡汤完美收场.此刻坐在电脑前的我仍是热血澎湃,下定决心好好跟着大王一起学好python> ----祝老师教师节快乐                                      Python第一周基础篇 博文结构: --1--python2.*与python3.*主要区别 --2--python安装与配置 --3--PyCharm开发工具的安装与配置 --4--变量的定义 --5--注释的使用 --

python第一篇

python第一篇 1.python简介 python是一门简单易学而且功能强大的编程语言,它有高效的内置数据结构,并且能够用简洁的语法进行面向对象编程.python简洁的语法和良好的编译解释性,使得它能够成为大多数领域的使用语言,如web开发,科学运算,人工智能,系统运维,金融分析,图形GUI等,很多领域都可以看到python的影子.既然python这么厉害,那为什么不学起来呢?come body!  life is short ,you need python! 2.基本数据类型 首先介绍的

简学Python第一章__进入PY的世界

#cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff; height: 55px width:100% -moz-border-radius: 3px; padding: 3px; margin: 10px 0px; font-family: "微软雅黑", "宋体", "黑体", Arial } P