python 回车字符_「答案」python每日一题20201107
用python輸出 如下9*9 乘法口訣表。
#####方法一#####for i in range(1,10): for j in range(1,i+1): print("%2d*%2d=%2d"%(i,j,i*j),end="") print()【評析】
圖形打印題的分析方法,無外乎兩點:(1)外循環控制行數,解決打印幾行問題(2)內循環控制列數,解決每行打印幾個圖形(或式子)的問題。
當然,具體問題還需要具體分析,比如每行打印圖形前有沒有空格,每行打印結束還需要回車換行等等。
在python打印問題中,print函數的end參數是定義了字符串輸出后的結束字符,默認是回車。因此在每行打印的過程中,為了不產生換行,我們需要自定義這個參數,比如用空格或者tab符等等。每行輸出結束時(即內循環結束時)需要換行,可以直接用一個不帶參數的print語句解決,因為默認輸出一個回車。
#####方法二#####print(''.join([ ''.join([ "%2d*%2d=%2d"%(j,k,j*k) for k in range(1,j+1)] ) for j in range(1,10)]))【評析】
方法二用一句打印語句結束了整個工作,非常酷!
在這個解決過程中我們用到了三個知識點:
(1)字符串的格式化輸出
"%2d*%2d=%2d" % (j,k,j*k)
上面語句的意思是用j替換第一個%2d,k替換第二個,j*k替換第三個;%2d實際上是一個占位符,說明替換它的是一個整數,而且要占用2個字符位置(不足的在前面補空格);在格式字符串和實際替換值之間,用一個%間隔,并且實際替換值是多個時,要寫成一個元組(用括號括起來)。
在python中可以使用的占位符如下:
'%s'%('字符串') : 后跟字符串'%d'%整型數字 :后跟整數'%f'%浮點數 :后跟小數'%c'%ascII字符 :后跟ASCII字符'%o'%8進制 :后跟int類型數字'%x'%16進制:后跟int類型數字'%e'%科學記數法:后更數字,可以整數,也可浮點數。'%r'%('字符串') :與%s相同,不同之處是,r 輸出的是帶引號的字符串,s 輸出不帶引號的字符串。其中'%n.mf'%() :n表示后面的數字或字符串占用多少位數,m表示小數點后幾位數,如果你前面有 - 號。表示左對齊。其中 n 和 - 號對所有%起作用,m只應用與小數。(2)字符串連接函數join
字符串A.join(字符串列表)
意思是用字符串A將字符串列表中的字符連接起來。
本題中,具體乘法式子之間我們用tab符連接,所以是‘’.join(...);每行內容之間使用回車符連接,所以是''.join(...)。
(3)for語句新建列表并自動賦值
info=[a for a in range(1,6)]
實際等同于:info=[1,2,3,4,5]
但這種形式可以靈活運用,比如:info=[a**2 for a in range(1,6)]
這就產生了[1,4,9,16,25]這樣的列表。
在本題的第二種解法中更是把這種應用發揚光大,甚至用到了這種形式的嵌套。
另外,請猜一猜下面這句是什么意思?
print([i for i in range(1,100) if i%2==0])
總結
以上是生活随笔為你收集整理的python 回车字符_「答案」python每日一题20201107的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不属于python语言特点的是_电脑无法
- 下一篇: python树状节点 可拖拽_Pytho