C程序员眼里的Python
注释
Phython的注释和C语言非常不同,第一种 #开头的注释,类似于C的//开头,而"""对 包围注释,类似于C的/* */,以及xml类的<!-- -->。#号注释也就算了,"""实在无语,不知道这种另辟蹊径有什么好,徒增学习成本。
函数
Python的函数(类方法)的定义比较奇葩,以def开头,接着函数名,参数列表,冒号,函数体内容需缩进,如下,对于C、Java系统出身的人,没有花括号,真是不习惯啊
def funcname (params) : ...... ...... return ...
函数能返回多个值
在看Python代码时经常发现函数返回多个结果值的情况,翻了资料才知道,其实也是单值返回,只是返回的就是数组而已,唯一的差别在于Python可以定义多个变量接收返回值,这个确实方便
下划线
有的时候看到函数返回值用_接收,或 for _ in range的语句,查了资料,_表示临时性的变量等,我们不关心此变量的值,但语法上又不能缺少,大致如此,不求甚解
[:num]及[num:]写法
其中num是数组索引,如果是负数则从尾巴上数,-1表示最后一个元素,冒号表示分割,冒号在前,表示取索引前的所有元素,冒号在后,表示取索引所在位置及后面的所有元素。
举例:
>>> '123'[2:]
'3'
>>> '123'[:2]
'12'
类成员函数self参数
python类成员函数与普通函数形式一致,但要求第一个参数为self,在C程序员眼里这个真是非常无聊的事情,默认提供一个this关键字不是更好吗
字符串格式
python的字符串格式,使用%操作符,举例说明:
>>> a=1
>>> b=2
>>> '%d:%d' % (a, b)
'1:2'
非常简单,好用!
函数的关键字参数
函数的调用可以根据位置顺序来指定参数即位置参数,也可以根据参数名字来指定参数即关键字参数,使用关键字参数时,参数的位置无关,类似于JSON中的key;如果混合位置参数和关键字参数,那么,位置参数必须在前面,举例:
>>> def myprint(name, age):
... print 'name=%s age=%d' % (name, age)
...
>>>
>>> myprint('tom', 8)
name=tom age=8
>>> myprint(age=8, name='tom')
name=tom age=8
>>> myprint('tom', age=8)
name=tom age=8
在JavaScript编码中,经常会使用Object来传递参数,好处是参数非常灵活,Python的这种调用方式,在此基础上更跨一步。
函数的属性变量
在Python中一切皆对象,函数也是,所以可以通过函数名.变量名的方式来定义变量,如下:
>>> def billux():
... print 'hello'
...
>>> billux()
hello
>>> billux.v = 4.5
>>> billux.v
4.5
C程序员眼里的Python的更多相关文章
- [python]通过微信公众号“Python程序员”,编写python代码
今天发现微信公众号中,居然可以编写python代码,很是惊喜,觉得蛮有趣的. 步骤如下: 1.关注微信公众号“Python程序员” 2.关注成功后,点击右下角的“潘多拉”->"Pyth ...
- 资深程序员:学Python我推荐你用这几款编辑器
Python使用什么编辑比较好,Python编辑器推荐 各位 Pythoner 好啊!在这个烦躁的时代,相聚就是缘分,很高兴各位 Pythoner 能相聚于此,希望接下来的路,我们一起走下去,使用 P ...
- java程序员快速掌握python系列——概述
这一系列主要是总结学习python过程中的方方面面(已经学完,时间大概是一周左右).当然限于个人水平java也就是够用,python短时间内也不可能深入到哪里去.所以这次的分享的目的是能够快速使用py ...
- 程序员的冷笑话 python版本
在伯乐在线上看到了个冷笑话,感觉很有意思. void tellStory() { printf("从前有座山\n"); printf("山上有座庙\n"); p ...
- 程序员眼里IE浏览器是什么样的
主流浏览器之争从上个世纪开就开始,已经持续了很长的时间.就在几年前,IE还是最主流的web浏览器.但现在形势完全不同了,人们都在笑话IE,纷纷转向其它浏览器.今天,我向大家分享一下针对IE的搞笑图片, ...
- Python超级程序员使用的开发工具
我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题: 当前你的主要开发任务是什么? 你在项目中使用的电脑是怎样的? 你使用什么IDE开发? 你将来的计划是什么? 有什么给Py ...
- 程序员带你十天快速入门Python,玩转电脑软件开发(三)
声明:本次教程主要适用于已经习得一门编程语言的程序员.想要学习第二门语言.有梦想,立志做全栈攻城狮的你 . 如果是小白,也可以学习本教程.不过可能有些困难.如有问题在文章下方进行讨论.或者添加QQ群5 ...
- 给Lisp程序员的Python简介
给Lisp程序员的Python简介 作者:Peter Norvig,译者:jineslong<zzljlu@gmail.com> 这是一篇为Lisp程序员写的Python简介(一些Pyth ...
- 程序员,Python 这次彻底上位了!
在 2018 年底,我们迎来了编程语言的最后一波洗礼.近期 TIOBE 公布了 12 月编程语言排行榜,前三名变为: Java.C.Python. 而在 PYPL 榜单上 Python 在今年 5 月 ...
随机推荐
- java Domj4读取xml文件加强训练案例
需求:给出一段xml文件.要求按照鸳鸯输出. xml文件代码如下: <?xml version="1.0" encoding="utf-8"?> & ...
- 精通mysql之精通EXPLAIN
EXPLAIN列的解释: table:显示这一行的数据是关于哪张表的 type:这是重要的列,显示连接使用了何种类型.从最好到最差的连接类型为const.eq_reg.ref.range.indexh ...
- Android图片加载库Fresco
在Android设备上面,快速高效的显示图片是极为重要的.过去的几年里,我们在如何高效的存储图像这方面遇到了很多问题.图片太大,但是手机的内存却很小.每一个像素的R.G.B和alpha通道总共要占用4 ...
- Dynamics CRM 同一实体多个Form显示不同的Ribbon按钮
自CRM2011引入多FORM窗体,并且对不同的窗体引入了角色控制,给我们的客制化开发带来了多样化,既然有了多窗体也就理所当然的有了在不同的窗体显示不同的Ribbon按钮的需求,具体怎么做见下面的博客 ...
- 数据的压缩存储与解压缩算法实现(C语言)
在一些嵌入式的项目设计中,空间是相当宝贵的,因为一个CPU的存储是有限的,所以此时我们在保存数据的时候,喜欢来进行压缩保存,著名的有哈夫曼树算法,专门用来做压缩的算法,当然,本节我们不讨论这些稍微高级 ...
- Linux管道编程实例
/*管道 可以把管道想象为两个实体之间的单向连接器.注意,管道是半双工的, 如果需要全双工通讯,应该转而考虑套接字. 匿名管道又称管道,提供了一个进程与它的兄弟进程通讯的方法,只存在于父进程中: 命名 ...
- android 常用方法集合
private static Contextcontext; privatestatic Displaydisplay; private static String TAG = "MyToo ...
- Boosting 和梯度Boosting
Boosting方法: Boosting这其实思想相当的简单,大概是,对一份数据,建立M个模型(比如分类),一般这种模型比较简单,称为弱分类器(weak learner)每次分类都将上一次分错的数据权 ...
- ITU-T G.1081 IPTV性能监测点 (Performance monitoring points for IPTV)
ITU-T 建议书 G.1081 IPTV性能监测点 Performance monitoring points for IPTV Summary Successful deployment of I ...
- Android性能优化典例(一)
在Android开发过程中,很多时候往往因为代码的不规范.api使用不恰当.控件的使用场景考虑不全面和用户不恰当的操作等都能引发一系列性能问题的,下面就是我目前整理的一些Android开发过程中需要注 ...