Python与C++特性对比

    一直很关注手持设备上的软件设计,可是由于手持设备的操作系统繁杂,而j2me的开发因为手机开发商装备的类库不同又是大同小异 而苦恼。最近看到了一篇文章讲述微软发布了一款IronPython的开源环境,遂下载过来看了一下。感觉不错,个人认为开源才是使得软件在不同操作系统 上的界面消除的最终办法。
PS:我使用的教材是《简明Python教程》

Python和其他语言的不同
    1)变量的使用
        在Py里,变量不需要像C++或者Java或者C#中那样,需要先声明,后使用。而是在第一次使用的时候就是声明的时候。并且,类型是由被赋值的数值决定的,并且因为变量的类型是动态绑定的,所以变量可以跨类型赋值。比如:
i=5
print i
print 'type is',type(i)
i='abc'
print i
print 'now is',type(i)

运行结果:
5
type is <type 'int'>
abc now is <type 'str'>
如果想要删除一个变量,只要del它就行,比如del i. 注意Py是区分大小写的
    2)语句块的使用
        在C++或者C#,Java里,我们使用 "{", "}"大括号来分隔某一个语句块。而在Py里分隔语句块是不用大括号的,而是使用在C++等语言中修饰代码风格的缩放来分隔语句块。下面看看一段代码:
int i
    print i

        以上的写法是错误的,因为在第二句的前边空出了一个制表符。 缩进在Py里代表了两层意思:

  • 一是用来分隔语句块
  • 二是强制使用良好的代码风格
  •         以上两个特点是与经典的静态语言最大的不同,如果忽视了这两点,Py是进行不下去的。
        3)控制流的不同
           在经典的计算机语言里,控制流通常都是不可或缺的一个有机组成部分,它是结构化语言的一个特征。在Py里也不例外,它含有if,while,for语句 (没有switch,但是可以用字典来代替)。除了最后一个for语句,其余的两个语句的用法和C++大同小异,不过时刻注意的是,在Py里,是没有大括 号来用的,要时刻注意缩放的位置,其实这对于一个平时有良好编程习惯的程序员来说是一个好消息。
    在Py里,布尔型有True,False.可以理解为1或者0,但是绝对不能认为在任何情况下等同,
        if语句:

    if 布尔型变量:
        statment....
    elif 布尔型变量:
        statment....
    :
    :
    :
    else:
        statment....


           注意,在判断的最后要以冒号":"结束。记住,在Py里if是严格按照缩放匹配的,而不是C++那样按照就近原则匹配。比如如下程序:
    str1=raw_input('input str1')
    str2=raw_input('input str2')
    if str1=='a':
        if str2=='b':
            print 'ok!'
    else:
        print 'str wrong!'


            输入a c,则str wrong是不会出现的。但是输入b c,str wrong是会出现的,也就是说,这个else是按照缩放与最顶层的if匹配而不是与最近的一个if匹配,这点是较C++上的一个进步。也为用if语句块 代替switch提供了很好的理由。

        while语句:
              while 某一个布尔值
                 statment...
              else:
                 stament...


           while语句和C++差不多,只不过在最后边多了一个else语句,个人认为这个else从某种程度上是用来代替c++中do-while形式的循环的。

    for循环:
        Py中的for循环是与C++中差别最大的一个结构,它与C#中的foreach类似,即在一个集合中遍历集合中所有的元素比如:
    for i in A['A','B','C','D']:
        print i
    else:
        print 'The for loop is over'


    for的作用就是把A中的元素逐一取出然后操作。
           break和continue关键字在Python中的作用和在C++中的作用相当,不过还是那句话,要注意缩进!

    函数的不同:
        函数是一个比较重要的概念,因为它可以帮我们重用所写的代码。
    和前面说的一样,Py使用了缩放代替了以前的大括号来限定代码。
    def sayHello():
        str='Python'
        print 'Hello World!',str


    void sayHello()//C++形式
    {
        char* str="C++";
        cout<<"Hello World!"<<str;
    }

    以上就是使用了缩放限定了代码,调用的时候,直接调用它就可以了,再来对比一下他们的语法。
        返回值:Py没有指定返回值,这个很明显,因为Py对变量的类型并不敏感,包括空,所以,返回值或者不返回值,对于Py函数来说都是一样的。而C++有严格的数据类型指定。在返回值上,我们可以像C++那样,使用return返回。
        传值与传址:在C++中可以使用&或者*来达到传址的目的,可是在Py里是不能这么做的,而是使用global关键字限定某一个变量的作用域不是函数内,而是从外边传过来的,这样就起到了“传址”的目的。
        重载:在C++里,重载的依据是形参的类型和个数,因为Py里对变量的类型并不敏感,还有因为编译器实现的难度上来说,必须构造不定参数才能达到这种目的的重载。


    ===
    明天继续
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值