[hitroad杂货铺]关于python与自增减运算符(++和--)

关于python与自增减运算符

前言

看了Python猫的文章《Python 为什么不支持 i++ 自增语法,不提供 ++ 操作符?》后,也想聊一聊这件事

开始

首先,这只是我自己的观点,不代表python开发时就是这么想的。

我个人认为,自增运算符会引起一些歧义,例如:

a+++++b

这个语句,在c++中分割时分割成这样了:

a ++ ++ +b

于是引发了报错:

代码:

#include <iostream>
using namespace std;
int main(){
        int a = 10,b = 11;
        cout << a+++++b;
        return 0;
}

期望分割成:a++ + ++b,答案:22
实际:

a.cpp:5:13: error: expression is not assignable
       cout << a+++++b;
               ~~~^
1 error generated.

当然这个语句除了c++的分割方法a++ ++ +ba++ + ++b外还有:a+ ++ ++b。显然,出现了歧义。

同样a-----b也是

当然,以上部分只表明了加入自增减运算符后不能加入当作数值来计算,但是他还是解释不了python不加入自增减运算符的原因


a++a--的本意:

将a加/减1

的时候,还有什么理由呢?

我认为,在python中a++a--排不上用场:

  1. c++中a++a--的作用:

    #include <cstdio>
    using namespace std; 
    int main(){
    	for(int i = 0;i < 10;i ++){
    	   printf("%d",i);
    	}
    	return 0;
    }
    

    而在pythpn中

    for i in range(10):
    	print(i)
    

c++中a++a--的作用:

#include <cstdio>
using namespace std;
int main(){
	int sum = 0;
	for(int i = 1;i <= 10;i ++){
		sum += i;
	}
	printf("%d",sum);
	return 0;
}

而在pythpn中

print(sum([i for i in range(10)]))

------------------------------------end------------------------------------
更多精彩内容,尽在hitroad杂货铺

作者

hit-road

拜拜,下课!

hit-road不定期跟新,不见不散!

猜你喜欢

转载自blog.csdn.net/weixin_42954615/article/details/108277971