盤點(diǎn)一道使用Python編程來實(shí)現(xiàn)高斯計(jì)算的基礎(chǔ)算術(shù)題目
回復(fù)“書籍”即可獲贈(zèng)Python從入門到進(jìn)階共10本電子書
大家好,我是Python進(jìn)階者。
一、前言
前幾天在Python鉆石交流群有個(gè)叫【dcpeng】的粉絲問了一個(gè)關(guān)于Python基礎(chǔ)的問題,這里拿出來給大家分享下,一起學(xué)習(xí)。

題目如下:求1-2+3-4+5...+99的所有數(shù)的和。提示:使用循環(huán),每次循環(huán)都把上一次計(jì)算的結(jié)果累加在一個(gè)變量里,使用Python如何實(shí)現(xiàn)?
看上去確實(shí)不太難,簡(jiǎn)單的數(shù)學(xué)運(yùn)算,有點(diǎn)數(shù)學(xué)基礎(chǔ)都可以做出來,難的是Python實(shí)現(xiàn),這里給出5個(gè)解法,大家一起學(xué)習(xí)下。
二、解決過程
方法一:【dcpeng】的解答
方法一的代碼如下所示:
odd?=?0
even?=?0
for?i?in?range(100):
????if?i?%?2?==?1:
????????odd?+=?i
????else:
????????even?+=?i
print(odd?-?even)
功能上實(shí)現(xiàn)是沒問題的,但是這里引入了兩個(gè)變量,跟題目的要求有點(diǎn)出入,要求是每次循環(huán)都把上一次計(jì)算的結(jié)果累加在一個(gè)變量里。所以在方法二中,給予了補(bǔ)充。
方法二:【dcpeng】的解答
這里給出第二種解法,代碼如下所示:
count?=?1
sum?=?0
while?count?<=?99:
????if?count?%?2?==?1:
????????sum?+=?count
????else:
????????sum?-=?count
????count?+=?1
print(sum)
這里給出的代碼就符合題意了,完美解決。
方法三:【布達(dá)佩斯的永恒】的解答
這里引入了range()函數(shù),也可以有妙用,代碼如下:
s?=?0
for?i?in?range(1,100):
????if?i?%?2?==?0:
????????s?-=?i
????else:
????????s+=i
print(s)
方法四:【月神】的解答
這里給出另外一個(gè)高大上的解答,兩行代碼就搞定了,出自【月神】之手,代碼如下:
from?itertools?import?accumulate
list(accumulate((i?if?i?%?2?else?-i?for?i?in?range(1,?100))))
其實(shí)這里可以直接用sum,不用再在list外面套個(gè)sum。
from?itertools?import?accumulate
print(sum(accumulate((i?if?i?%?2?else?-i?for?i?in?range(1,?100)))))
accumulate這個(gè)相當(dāng)于累加器。代碼一出,小伙伴們直呼好家伙。

方法五:【德善堂小兒推拿-瑜亮老師】的解答
基于【月神】的解法,【亮哥】發(fā)現(xiàn)理論上這樣也算符合題意:
print(sum(i?if?i?%?2?else?-i?for?i?in?range(1,?100)))
事實(shí)上確實(shí)如此,完美解決!
三、總結(jié)
大家好,我是Python進(jìn)階者。這篇文章基于粉絲提問,針對(duì)一道使用Python編程來實(shí)現(xiàn)高斯計(jì)算的基礎(chǔ)算術(shù)題目基礎(chǔ)題問題,給出了具體說明和演示,一共給出了5個(gè)解決方法,順利地幫助粉絲解決了問題。可以看到群里大家學(xué)習(xí)的激情還是很高的,探討激烈。如果你還要其他方法,歡迎留言或者私信我噢!
最后感謝粉絲【dcpeng】提問,感謝【dcpeng】、【布達(dá)佩斯的永恒】、【月神】和【德善堂小兒推拿-瑜亮老師】大佬給出的示例和代碼支持,感謝粉絲【Function】、【布達(dá)佩斯的永恒】、【某嘟】、【德善堂小兒推拿-瑜亮老師】、【PI】、【冫馬讠成】、【楊羊】、【鞠歡】、【東哥】、【周凡】、【D I Y】、【孤煙逐云】、【貓藥師Kelly】等人參與學(xué)習(xí)交流。

小伙伴們,快快用實(shí)踐一下吧!如果在學(xué)習(xí)過程中,有遇到任何問題,歡迎加我好友,我拉你進(jìn)Python學(xué)習(xí)交流群共同探討學(xué)習(xí)。
-------------------?End?-------------------
往期精彩文章推薦:

歡迎大家點(diǎn)贊,留言,轉(zhuǎn)發(fā),轉(zhuǎn)載,感謝大家的相伴與支持
想加入Python學(xué)習(xí)群請(qǐng)?jiān)诤笈_(tái)回復(fù)【入群】
萬(wàn)水千山總是情,點(diǎn)個(gè)【在看】行不行
/今日留言主題/
隨便說一兩句吧~
