python开发_++i,i += 1的区分

在很多编程语言(C/C++,Java等)中我们都会碰到这样的语法:

1 int i = 0;
2 ++ i; // -- i;

这样的语法在上述编程语言中可以实现自增(减),在python中也支持这样的语法,不过在python中

这样的用法不是用来自增(减),而是实现数学中的符号运算操作:

1 i = 2
2 ++ i       #输出:2
3 +(+i)      #输出:2
4 -(+i)      #输出:-2
5 +(-i)      #输出:-2
6 -(-i)      #输出:2

在python中,如果要实现自增(减),应该这样做:

1 i = 2
2 i += 1     #实现自增
3 print(i)   #输出:3
4 i -= 1     #实现自减
5 print(i)   #输出:2

下面看看我做的demo,我想你就会明白

运行效果

=============================================================

代码部分:

=============================================================

 1 #python ++i,-+i,+-i.--i
 2 
 3 #Author   :   Hongten
 4 #Mailto   :   hongtenzone@foxmail.com
 5 #Blog     :   http://www.cnblogs.com/hongten
 6 #QQ       :   648719819
 7 #Version  :   1.0
 8 #Create   :   2013-08-30
 9 
10 #初始化所需列表
11 testA = []
12 testB = []
13 testC = []
14 testD = []
15 testE = []
16 testF = []
17 testG = []
18 testH = []
19 
20 for a in range(-5, 5, 1):
21     testA.append(++(a))   #++a
22     testB.append(-+(a))   #-+a
23     testC.append(+-(a))   #+-a
24     testD.append(--(a))   #--a
25     testE.append(+(+(a))) #+(+a)
26     testF.append(-(+(a))) #-(+a)
27     testG.append(+(-(a))) #+(-a)
28     testH.append(-(-(a))) #-(-a)
29 
30 print('++i    : {}'.format(testA))
31 print('+(+i)  : {}'.format(testE))
32 print('可以看出:++i和+(+i)输出结果是一样的,说明他们是等效的\n')
33 print('-+i    : {}'.format(testB))
34 print('-(+i)  : {}'.format(testF))
35 print('可以看出:-+i和-(+i)输出结果是一样的,说明他们是等效的\n')
36 print('+-i    : {}'.format(testC))
37 print('+(-i)  : {}'.format(testG))
38 print('可以看出:+-i和+(-i)输出结果是一样的,说明他们是等效的\n')
39 print('--i    : {}'.format(testD))
40 print('-(-i)  : {}'.format(testH))
41 print('可以看出:--i和-(-i)输出结果是一样的,说明他们是等效的\n')
42 
43 test_plus = []
44 test_sub = []
45 
46 #使用b += 1实现自增
47 for b in range(-5, 5, 1):
48     b += 1
49     test_plus.append(b)
50 
51 #使用c -= 1实现自减
52 for c in range(-5, 5, 1):
53     c -= 1
54     test_sub.append(c)
55 
56 print('#'  * 50)   
57 print('i += 1 : {}'.format(test_plus))
58 print('i -= 1 : {}'.format(test_sub))
59 print('我们可以使用:i += 1, i -= 1来实现递增,递减。')

E | hongtenzone@foxmail.com  B | http://www.cnblogs.com/hongten

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序猿

Sql Server基本函数

Sql Server基本函数 1.字符串函数 长度与分析 datalength(Char_expr) 返回字符串包含字符数,但不包含后面的空格 subs...

37670
来自专栏杨建荣的学习笔记

关于oracle中的sql数据类型(r3笔记第59天)

数据类型对于每一种编程语言而言都是数据存储的基础,对于编程语言的实现功能而言也是一个标尺,有些编程语言可能数据类型很丰富,比如java,c,在数据计算方面的支持...

29340
来自专栏NetCore

解读C#中的正则表达式

 多少年来,许多的编程语言和工具都包含对正则表达式的支持,.NET基础类库中包含有一个名字空间和一系列可以充分发挥规则表达式威力的类,而且它们也都与未...

24670
来自专栏xingoo, 一个梦想做发明家的程序员

剑指OFFER之反转链表(九度OJ1518)

题目描述: 输入一个链表,反转链表后,输出链表的所有元素。 (hint : 请务必使用链表) 输入: 输入可能包含多个测试样例,输入以EOF结束。 对于每个测试...

23090
来自专栏程序生活

Python 过滤字母和数字实例1实例 2实例 3

34220
来自专栏杂七杂八

Matlab中的括号()[]{}

Matlab中经常会用到括号去引用某Array或者是cell的内容,但三者有什么具体区别呢? [ ] 中括号用来构建向量(Vectors)或者是矩阵(Ma...

31070
来自专栏Coding迪斯尼

自制Monkey编程语言编译器:增加数组操作API和Mapsh数据类型

13730
来自专栏V站

PHP常见函数和过滤函数的深入探究

32 位系统最大带符号的 integer 范围是 -2147483648 到 2147483647。举例,在这样的系统上, intval(‘1000000000...

30090
来自专栏程序员互动联盟

【编程技巧】条条大路通罗马

问题:对于一个字节(8bit)的变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能地高。 分析与解法 大多数的读者都会有这样的反应:这个题目也太简单了...

380110
来自专栏程序员互动联盟

【答疑解惑】++前缀和后缀的区别

网友们的问题: ? 我的解答: ? 这个知识点在C、C++和Java中都是一样的,++前缀就进行自增然后再用自增后的值,++后缀则是先用这个值,然后再进行自增。...

32160

扫码关注云+社区

领取腾讯云代金券