成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Python為什么不支持 i++/i--操作

開發(fā) 后端
在python中你是如何執(zhí)行遞增操作的呢?如果你是一位C++或者Java開發(fā)人員,在接觸到python時(shí)則可能嘗試過將類似于i++/i--遞增(減)操作擴(kuò)展到python,對(duì),

 你一定想過。然而情況卻不理想,python中只能使用類似于 i++/i--等操作。

[[414723]]

python中的自增操作

下面代碼幾乎是所有程序員在python中進(jìn)行自增(減)操作的常用方法。 

  1. >>> a = 2 
  2. >>> print(a) 
  3.  
  4. >>> a += 1 
  5. >>> print(a) 
  6.  
  7. >>> a += 100 
  8. >>> print(a) 
  9. 103 
  10.  
  11. >>> b = 'Hi' 
  12. >>> b += 1 
  13. Traceback (most recent call last): 
  14.   File "<stdin>", line 1, in <module> 
  15. TypeError: can only concatenate str (not "int"to str 
  16.  
  17. >>> b += ' data' 
  18. >>> b 
  19. 'Hi data' 

上述代碼中,由于+運(yùn)算符也可以表示字符串的串聯(lián),因此我們也可以將字符串在原來(lái)的基礎(chǔ)上進(jìn)行附加。

我們可以使用a++將a遞增1嗎? 

  1. >>> a++ 
  2.   File "<stdin>", line 1 
  3.     a++ 
  4.       ^ 
  5. SyntaxError: invalid syntax 

結(jié)果是:No,根據(jù)設(shè)計(jì),Python不允許使用++“運(yùn)算符”。++術(shù)語(yǔ)在C ++ / Java中稱為增量運(yùn)算符,在Python中沒有位置。

為什么Python中不支持++操作呢?

如果您想更詳細(xì)地了解這一點(diǎn),則需要具有編程語(yǔ)言設(shè)計(jì)的背景知識(shí)。

在Python中不包括++運(yùn)算符的選項(xiàng)是設(shè)計(jì)決定。負(fù)責(zé)使用Python語(yǔ)言創(chuàng)建功能的人們認(rèn)為,無(wú)需引入CPP風(fēng)格的增量運(yùn)算符。

【注】什么是CPP?所謂的CPP其實(shí)就是C++,C++這個(gè)詞在中國(guó)大陸的程序員圈子中通常被讀做“C加加”,而西方的程序員通常讀做“C plus plus”。漲姿勢(shì)了

當(dāng)Python解釋器從我們的輸入中解析a ++符號(hào)時(shí),會(huì)用以下方式進(jìn)行解釋:

由于二進(jìn)制+運(yùn)算符是加法運(yùn)算符,因此a ++將被視為a,+和+。但是Python期望第一個(gè)+運(yùn)算符之后的數(shù)字。因此,它將在a ++上給出語(yǔ)法錯(cuò)誤,因?yàn)榈诙€(gè)+不是數(shù)字。

而++ a則會(huì)用以下方式進(jìn)行解釋:

  • Python中的一元+運(yùn)算符指的是身份運(yùn)算符。這只是返回整數(shù)。這就是為什么它是對(duì)整數(shù)的身份運(yùn)算
  • 例如,+ 5的值就是5,而+ -5的值是-5。這是一元運(yùn)算符,適用于實(shí)數(shù)
  • ++ a將被解析為+和+ a,但是第二個(gè)+ a再次被視為(+ a),因此,+(+(a))簡(jiǎn)單地計(jì)算為a。
  • 因此,即使我們想將a的值增加1,我們也無(wú)法使用++符號(hào)來(lái)實(shí)現(xiàn),因?yàn)檫@種運(yùn)算符不存在。

因此,我們必須使用+ =運(yùn)算符進(jìn)行這種增量。 

  1. a += 1 
  2. a -= 1 

+=操作是如何進(jìn)行的呢?

您可能會(huì)認(rèn)為,由于存在=符號(hào),因此它可能是賦值語(yǔ)句。但是,這不是常規(guī)的賦值語(yǔ)句。這稱為增強(qiáng)的賦值語(yǔ)句。(常規(guī)賦值操作的Plus版)

在常規(guī)賦值語(yǔ)句中,首先計(jì)算右側(cè),然后再將其賦給左側(cè)。 

  1. # 2 + 3 的結(jié)果是5,然后才將結(jié)果5分配給左邊的引用 
  2. a = 2 + 3 

但是,在增強(qiáng)的賦值語(yǔ)句中,首先操作的是左側(cè),然后計(jì)算右側(cè)。這樣做是為了使更新后的值可以就地寫入左側(cè)。(具體的賦值內(nèi)存分析后續(xù)的文章會(huì)涉及到) 

  1. # 讀取a的值,然后就地添加3 
  2. a += 3 

這是不使用a = a + 1這樣的重新分配語(yǔ)句而增加變量的唯一方法。但是,在這里,總的來(lái)說(shuō),該選項(xiàng)無(wú)關(guān)緊要,因?yàn)榻忉屍鲗⒃谶\(yùn)行時(shí)優(yōu)化代碼。

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2020-07-22 08:01:41

Python開發(fā)運(yùn)算符

2020-07-09 09:56:48

Python語(yǔ)言開發(fā)

2019-09-11 09:09:56

++ii++編程語(yǔ)言

2020-10-09 06:48:19

Pythonswitch語(yǔ)句

2021-10-27 07:15:36

Go 循環(huán)引用

2021-12-09 10:51:47

Go繼承

2021-12-15 07:49:22

Go語(yǔ)言設(shè)計(jì)

2023-01-28 08:05:32

轉(zhuǎn)換Go泛型

2022-11-16 07:52:11

ORM鏈?zhǔn)?/a>GoFrame字段

2024-01-01 08:10:40

Go語(yǔ)言map

2024-01-05 08:45:35

Go語(yǔ)言map

2024-05-28 08:55:52

2021-02-01 13:53:53

StringlongJava

2009-03-12 08:42:38

AndroidWMMTK

2021-11-08 11:02:01

Go函數(shù)重載

2021-06-11 00:03:31

鴻蒙智能手機(jī)

2021-07-13 08:09:34

微博推特評(píng)論

2009-03-11 17:32:22

聯(lián)發(fā)科WMAndroid

2024-01-31 23:47:17

i++++i編碼

2024-03-08 08:51:59

Gomain函數(shù)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: av毛片| 久久久天天 | 日韩精品中文字幕一区二区三区 | 超碰天天| 日韩h | 99久久日韩精品免费热麻豆美女 | 欧美一级免费看 | 欧美一级在线观看 | 国产亚洲精品久久久久动 | 国产99免费| 韩国毛片一区二区三区 | 国产激情在线播放 | 成人亚洲网 | 日本精品一区二区三区在线观看视频 | 欧美一区二区三区四区五区无卡码 | 亚洲国产区 | 青青久久久 | 久久久久国产一级毛片高清网站 | h视频免费观看 | 成人精品一区二区三区中文字幕 | 日韩免费在线视频 | 精品国产一区二区 | 欧美日韩在线播放 | 欧美久久久久 | 91久久夜色精品国产网站 | 亚洲午夜精品一区二区三区他趣 | 亚洲日韩中文字幕一区 | 97视频久久| 中文字幕福利视频 | 日本超碰 | 男人的天堂视频网站 | 精品国产一区二区三区成人影院 | 99精品国产一区二区青青牛奶 | 一级a爱片性色毛片免费 | 免费的av网站 | 综合二区| 国产高清无av久久 | 在线a视频 | 国内精品一区二区 | 日韩免费看片 | japanhd美女动|