基於我實在是沒辦法讓那段文字順利運行,因此我今天的功課就是,把那段程式碼仔細解讀一遍,把該弄懂的字詞整理一遍,然後在實驗幾次,如果真的不行那我就要進行下一個項目了。
關於下一個項目,我在兩個主題中思考很久,第一個是「Pygame」,第二個是「LINEbot 機器人」我看了一下許多教程,總覺得 LINEbot,我還不成火候,可能會駕馭不了,所以還是先從「Pygame」下手吧!
關於那個大神的水仙花數
print('輸出所有水仙花數:' ) for i in range(0,100001): temp=i sum=0 a=len(str(i)) while temp: sum+=(temp%10)**a temp//=10 if sum==i: print(i,end=' ')
作者:yang元祐
連結:https://www.zhihu.com/question/21872507/answer/130662819
來源:知乎
著作權歸作者所有。商業轉載請聯繫作者獲得授權,非商業轉載請註明出處。
我想弄懂下面兩個詞:
A.tempfile
剛去谷歌的時候出現了好多「tempfile」的解釋,那就姑且看看「tempfile」的定義是什麼好了。
tempfile,其實就是「TemporaryFile」的縮寫,其實這也不難理解,就是暫時的資料夾,最主要是用來儲存臨時的文件和目錄,這個資料夾通常會在關閉後自動刪除。
跟 tempfile 綁在一起的就是 NamedTemporaryFile,兩者的差別在於 tempfile 用於僅對於一個應用程式或主機所使建立的暫時資料夾,但是後者則是對多個應用程式和主機時才需建立該種資料夾。兩者相同的地方是,在程式執行到 temp.close()
的時候,資料夾將會自動刪除。
但是,我覺得在這裡的程式碼,應該不是只暫存資料夾,比較像一個數學名詞之類的。所以,先把這個看起來很厲害的資料夾放一邊,繼續爬文。
B. 暫存變量
一般針對不同的變量都會有不同的命名方式,通常變量都會直譯成英文,像是性別(age)、姓名(name)等等。
但是,有些變量僅只是暫時用的,所以不用特意命名,這時候,就可以用 temp
代替那個變量了!
這應該比較符合上面那段程式碼中「temp」的用法。
「+=」,這個符號組合,我只有查到大陸的專有名詞說法,不知道台灣是不是也這樣稱呼它,它的名稱叫做「加法賦值運算符」,另一個說法是「變數遞增」。
其實我覺得用後面這個名稱蠻好的,舉個簡單的例子吧!
假設 a=2,a+=8
則 a+=8 可以寫成 a=a+8
a 帶入 2
則 a=2+8 等式右邊要先算
所以,a就會等於10。
另外,有加就有減,因此有「減法賦值運算符」,又稱「變數遞減」,「-=」。
中文 | 運算子 | 拆解:白話寫法 | python 語法 |
---|---|---|---|
乘 | *= | A=A*2 | A *= 2 |
浮點除法 | /= | A=A/2 | A /= 2 |
整數除法 | //= | A=A//2 | A //= 2 |
除法求餘數 | %= | A=A%2 | A %= 2 |
次方 | **= | A=A**2 | A **= 2 |
好的,運算到這裡。
我還是不能理解為什麼要發明這個運算子。
不過聽說這個運算子以後會很好用...
菜逼八目前是不太能體會啦)笑哭
好的,今日學習完畢。
就再來重新整理一次水仙花的程式碼,看看可不可以跑得動吧!
我覺得肯定是空格鍵的關係...
全部砍掉重練,重新加上縮排和空格,就不信不會動!!!
print('輸出所有水仙花數:' )
for i in range(0,100001):
temp=i
sum=0
a=len(str(i))
while temp:
sum+=(temp%10)**a
temp//=10
if sum==i:
print(i,end=' ')
測試結果:原來是前面都偷給我空半格!!!)怒
不過總算成功啦!!!
今天總算可以好好睡覺了!!!
滿足收工!!!
不過今天想來發一個超好笑的影片,就放在下方的同場加映吧!
[ 同場加映 ]
這是很早以前的影片,但是裡面的阿希根本是現在的我啊)哭笑不得
I wrote 14 lines with 14 errors.
Don't you understand!?
It took me 3 months to read the book! 5 hours to fix an error!
那個 temp
只是臨時的英文縮寫 temporary => temp
你看每執行一次迴圈就會把 temp = i
你把這支程式的 temp
換成任何一個變數都可以正常執行
你想太多了
至於 +=
A = A + B
= A += B
-=
同理
google 就有很多說明了
好,謝謝指教!!