上一節(jié)課我們寫了第一個 Python 程序,并使用了輸入和輸出函數 —— input 和 print。今天我們將進一步學習輸出函數 print 的用法,還會學習程序的控制流程,并在此基礎上讓電腦為我們打印出《九九乘法表》。
print 輸出格式
print 默認輸出是換行的,如果不想換行,需要加上 end 參數來指定結束符,就像這樣:print('Hello World', end='')
前面我們通過這種方式打印一句話和你的名字:name = input('你好,請問你叫什么名字?')
print('很高興認識你,', name)
今天我們會學習一種新的表達方式,我們暫時稱呼它為 “字符串格式化輸出”,上面這行代碼就可以改寫為:name = input('你好,請問你叫什么名字?')
print('很高興認識你,{}'.format(name))
字符串 '很高興認識你,{}' 中的花括號是占位符,意思是等一下這里要打印其他內容,先占個位。至于填充什么內容,就由字符串后的 .format( ) 中的內容決定。
如果還想讓它喊你的名字三遍,就可以預留三個坑,然后在 format 中填充。name = input('你好,請問你叫什么名字?')
print('很高興認識你,{}, {}, {}'.format(name, name, name))
我們可以給占位符編個號,表示這個坑使用 format 函數中的第幾個參數。下面代碼的執(zhí)行效果與上面是一樣的。name = input('你好,請問你叫什么名字?')
print('很高興認識你,{0}, {1}, {2}'.format(name, name, name))
也許你已經想到了,name 變量其實不需要寫三遍,這樣就行了!name = input('你好,請問你叫什么名字?')
print('很高興認識你,{0}, {0}, {0}'.format(name))
除此之外,我們還可以為不同的坑指定不同的效果,比如左對齊、右對齊、居中。name = input('你好,請問你叫什么名字?')
print('很高興認識你,{0:<8}, {0:^8}, {0:>8}'.format(name))
執(zhí)行效果如下:
占位符的序號和其需要的效果操作之間用冒號 : 隔開。
表示右對齊,^ 表示中間對齊。后面的數字8表示這里占了八個字符長度,你也可以改成你需要的長度。
關于 print 的格式化輸出,我們先了解到這里就可以了!
循環(huán)語句
前面的代碼都是順序執(zhí)行的,也就是執(zhí)行完第一行,再執(zhí)行第二行,直到最后一行結束。在程序中,我們還經常使用循環(huán)來讓代碼重復執(zhí)行,先把下面的代碼執(zhí)行一遍看看。for x in range(10):
print(x)
沒錯,你會看到屏幕上打印出0~9,一共十行數字。
函數 range(10) 幫我們創(chuàng)建了0~9這十個數字,我們通過 for ... in ... 語句將這十個數字依次取出來,放在變量 x 中,然后再使用 print 函數把它們打印出來。
需要注意的是,第二行代碼有一些空白位置,這是因為按了 Tab 鍵。在你輸入代碼的時候,你使用的編輯器可能也已經幫你添加上了。這個空白叫做代碼縮進,表示代碼之間的從屬關系,在這里就表示 print(x) 這行代碼是在 for 循環(huán)中被執(zhí)行的。
range 函數默認從0開始,如果想從1開始,則可以使用兩個參數,分別表示開始和結束。for x in range(1, 10):
print(x)
循環(huán)是可以嵌套的,也就是說,一層循環(huán)中可以包括另一層循環(huán),下一層循環(huán)中由可以包含下一層循環(huán),但建議不要嵌套太多層,不然會暈的。。。
下面的代碼中有兩層循環(huán),第一層循環(huán)5次,第二層循環(huán)10次。第3行的 print 語句屬于第二層循環(huán),第4行的 print 則屬于第一層,可以看到代碼縮進其實是在表達這種層次關系。for x in range(5):
for y in range(10):
print('*', end=' ')
print('')
執(zhí)行代碼,看看是不是打印出了5行10列的小星星。* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
除了 for in 循環(huán)語句,在 Python 中我們還可以使用 while 循環(huán)語句。同樣是打印0~9十個數字,使用 while 循環(huán)可以這樣來寫:x = 0
while x<10:
print(x)
x = x + 1
這里我們借助了 x 變量來記錄當前的數字,緊跟 while 后面的是判斷條件,比如這里的 x<10 表示當 x 小于 10 的時候,執(zhí)行循環(huán)中的代碼。換句話說,就是當 x 大于等于 10,就跳出 while 循環(huán),此時程序就結束了。
同樣,while 循環(huán)也可以嵌套,for in 循環(huán)和 while 循環(huán)之間也可以相互嵌套。
九九乘法表
學習完前面的內容,我們已經完全有能力使用 Python 來打印一張九九乘法表啦!緊不緊張,興不興奮?
你先想十分鐘,想不出來再看看我下面給的代碼。
歡迎大家加入小編創(chuàng)建的Python行業(yè)交流群,有大牛答疑,有資源共享,有企業(yè)招人!是一個非常不錯的交流基地!群號:683380553
這里使用 for in 循環(huán)來實現,打開編輯器輸入如下代碼,并保存為 99Table.py 文件。for i in range(1, 10):
for j in range(1, i+1):
print('{}*{}={:<3}'.format(j,i,i*j), end=' ')
print('')
在終端執(zhí)行 python3 99Table.py,看看小九九有沒有打印出來。
代碼說明
代碼縮進是指一行代碼開始前的空白區(qū)域,表達程序的格式框架,一個程序中可能會存在單行縮進或多行縮進??s進是程序語法的一部分,需要嚴格明確;縮進表明了代碼間的層次關系,縮進不正確會導致程序運行錯誤;通常使用1個Tab來縮進。
九九乘法表可以看做一個九行九列的表格,因此使用兩層循環(huán)可以很方便地實現。第一行代碼表示變量i的值從1到9循環(huán)執(zhí)行。
因為九九乘法表的形狀是三角形,也就是說內容是逐行增加的,所以第二行的循環(huán)范圍從1開始,到 i+1 結束,隨著第一層循環(huán)中 i 的變化,第二層循環(huán)中的長度也會發(fā)生變化。
Python 中可以直接做數值運算,所以第三行代碼使用 i * j 來得出乘法表中的各項結果,需要注意的是可能是輸出的格式。
第四行代碼屬于第一層循環(huán),它的作用是每打印完一行就換一個新行。