本文首發於微信公衆號:"算法與編程之美",歡迎關注,及時瞭解更多此係列文章。
前言
標題,假如朋友圈分享了這篇文章,如何吸引朋友點擊打開這篇文章。
問題描述
我們剛學習Python的時候,就就看到老師學長用for循環做了一個九九乘法表也就是如下:
輸出:
1*1=1
1*2=22*2=4
1*3=32*3=63*3=9
1*4=42*4=83*4=124*4=16
1*5=52*5=103*5=154*5=205*5=25
1*6=62*6=123*6=184*6=245*6=306*6=36
1*7=72*7=143*7=214*7=285*7=356*7=427*7=49
1*8=82*8=163*8=244*8=325*8=406*8=487*8=568*8=64
1*9=92*9=183*9=274*9=365*9=456*9=547*9=638*9=729*9=81
當我們換一下思路用while呢?
解決方案
讓我們先來理一理for循環九九乘法表的過程:我們先把九九乘法表中a*b改變一下位置也就是b*a。
1*1=1
2*1=2 2*2=4
3*1=3 3*2=6 3*3=9
……
也就是第一層是:1乘(1到1),第二層是:2乘(1到2),第三層是3:乘(1到3)……
在Python中也就是for循環中:上層a循環1到9,下層b循環1到上層,也就會出現a=1時b=1,a=2時b=1 b=2,a=3時b=1 b=2 b=3……
當用while時也一樣,定義變量a=1,while循環條件a<10,再在循環內加a=a+1,就可以得到1到9了 ,在用相同方法定義b=1,while循環1到a再在循環內加b=b+1就可以得到與for相同的答案,其餘的參考for循環。
代碼清單 1 DFS求解1到100求和問題Python代碼
a=1 while a<10: b=1 while b<a+1: c=a*b print(“%d*%d=%d”% (b,a,c),end=”\t”) b=b+1 a=a+1 print() |
結語
這周翻看大一上學期書時,發現了這個用Python寫九九乘法表用,然後認真分析了其中的for循環的內容,然後又想了想如果用while?其實while循環我寫的比較潦草,不是很清楚。
實習編輯:王曉姣
作者:張雨平、裴曉松、劉湘
稿件來源:深度學習與文旅應用實驗室(DLETA)
本文分享自微信公衆號 - 算法與編程之美(algo_coding)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。