码迷,mamicode.com
首页 > 编程语言 > 详细

细数Python与C++的区别(更新中……)

时间:2015-08-18 14:10:17      阅读:123      评论:0      收藏:0      [点我收藏+]

标签:c++   python   

Python与C/C++有不少区别,其中一些很容易疏忽,导致程序出错。这里列了一些,供大家参考。持续更新中……

Python没有自增自减运算符

C/C++中有++i、i++、--i、i--。而Python则没有这些运算符。C/C++的一个常见循环是:

for (int i = 0; i < 10; ++i)
{
    std::cout << i << endl;
}
而Python对应的循环为:
for i in range(10):
    print (i)
也许这是Python不提供自增自减运算符的一个重要原因:没有这么常见的use case。如果真的需要,大多数情况下可以用i += 1,i -= 1来代替。

注意,虽然Python不支持++运算符,但++i并不会报错。++i被解释为+(+(i))。

>>>> i = 3
>>> ++i
3
>>> i++
SyntaxError: invalid syntax

Python函数的隐式返回

C/C++中一个常见错误:"Not all control paths return a value"。如果有任何一条路径没有返回值,会报错。

// Error: not all control paths returns
int f(bool flag)
{
    if (flag)
    {
        return 1;
    }
}
但对应的Python程序没有任何问题:

def f(flag):
    if flag:
        return 1

>>> print (f(True))
>>> 1
>>> print (f(False))
>>> None

虽然Python不会报错,但还是建议在函数有返回值的情况下显式return None。这样,其他人看到这段代码时不会困惑:作者的本意到底是要依赖隐式的return来返回None呢,还是忘了return一个值?


更新中……

版权声明:本文为博主原创文章,未经博主允许不得转载。

细数Python与C++的区别(更新中……)

标签:c++   python   

原文地址:http://blog.csdn.net/tonywearme/article/details/47750395

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!