python 九九乘法表你真的會了嗎?

2021-10-02 12:32:42 字數 2367 閱讀 3465

九九乘法表基本是初學者練手的一道程式設計題目,面試時遇到這種題目簡直就是送分題,但這種送分題往往也是初入職場面試時的一道送命題,因為連這種題都不會,後面基本gg了.....尤其針對python語言往往和列表推導式聯絡一起,考察語言熟悉程度。

1.左下角乘法表(大家最熟悉的)

常規方法兩個迴圈搞定

for i in range(1,10):

for j in range(1,i+1):

print("*=".format(j,i,j*i),end=" ")

print()

但沒什麼技巧,但面試官往往更希望用列表推導式簡化**,因為python語言的乙個特點就是簡潔。於是有了第二個版本。

for i in range(1,10):

print(" ".join(["*=".format(j,i,j*i) for j in range(1,i+1)]))

能不能用一行**,讓面試官眼前一亮呢。這就要用到雙層列表推導式。於是有了第三個版本,這也是面試官最想要的版本。

print('\n'.join([' '.join(['%d*%d=%d'%(col,row,col*row) for col in range(1,row+1)]) for row in range(1,10)]))

2.左上角乘法表(簡單變異品種)

這個也很簡單,不多說。

for i in range(1,10):

for j in range(i,10):

print("*=".format(i,j,j*i),end=" ")

print()

3.右下角乘法表

這個稍微加強了點,主要考察對佔位和位置輸出,和輸出*號三角形原理一樣。

for i in range(1,10):

for k in range(1,10-i):

print(end ="       ")#這裡是7個空格

for j in range(1,i+1):

print("%d*%d=%2d"%(j,i,j*i),end=" ")

print()

這裡用了格式化佔位符%d而不是format就是為了便於對齊,否則輸出是歪的,上面的例子就可以看到中間有些地方沒對齊。為什麼第一次輸出七個空格,還是為了對齊,因為%d*%d=%2d佔6位,再加後面乙個空格所以七位,可以根據自己輸出樣式來確定對齊策略。

4.右上角乘法表

print(end ="       ")#這裡是7個空格

for j in range(i,10):

print("%d*%d=%2d"%(j,i,j*i),end=" ")

print()

5.正金子塔乘法表

這個猛一看很高階,但其實原理和上面一樣,稍加改動就好了。

for i in range(1,10):

for k in range(1,10-i):

print(end="      ")#這裡是7個空格

for j in range(1,i+1):

print("%d*%d=%2d"%(j,i,j*i),end="      ")

print()

6. 倒金子塔乘法表

python九九乘法表

之前愛人用excel寫了九九乘法表 if and column a1 row a1 row a1 10 column a1 row a1 column a1 row a1 試試用python寫乙個九九乘法表。重構a a乘法表 函式 def jjcfb a for i in range 1,a 1 f...

Python 九九乘法表

以下例項演示了如何實現九九乘法表 coding utf 8 filename test.py author by www.runoob.com 九九乘法表 通過指定end引數的值,可以取消在末尾輸出回車符,實現不換行。for i in range 1 10 for j in range 1 i 1 ...

python 九九乘法表

詳解 為了讓自己理解 for i in range 1,10 print i,end for j in range 1,i 1 print s s s i,j,i j end print 1.for i in range 1,10 這是乙個for 迴圈 語句,range 是乙個函式,for i in...