Python:每日一题007

时间:2023-03-10 05:01:12
Python:每日一题007

题目:

输出 9*9 乘法口诀表。

程序分析:

分行与列考虑,共9行9列,i控制行,j控制列。

个人思路及代码:

第一版:

  for i in range(1,10):
for j in range(1,10):
print(" %s*%s=%s"%(i,j,i*j),end='')

  

第二版

  for i in range(1,10):
for j in range(1,10):
print("%d*%d=%2d " % (j, i, i * j),end="") #注意这里的i,j调换了位置
print() #这里换行表示每取完一个i值后进行换行,print自带换行

  

分析:for i in range(1,10)表示i可以取值到1-9,

当i=1时,j可以取值到1-9,

当i=2时,j可以取值到1-9,

当i=3时,j可以取值到1-9,

...

当i=9时,j可以取值到1-9,

输出结果是这样的

Python:每日一题007

Python:每日一题007

这里可以加入判断条件限制输出

第三版

  for i in range(1,10):
for j in range(1,10):
if j <= i:
print("%d*%d=%2d " % (j, i, i * j),end="")
print()

  

输出结果

Python:每日一题007

Python:每日一题007

其他参考解答

解答1:

  
  for i in range (1,10):
for j in range(1,10):
print(j,"x",i,"=",i*j,"\t",end="")
if i==j:
print("")
break #注意这里的break的使用

  

分析:当i=1时,j只能取值到1,之后换行,当i=2时,j只能取值到2,依次类推,输出乘法表。

解答2

  
  for i in range(1,10):
for j in range(1,i+1):
print("%d*%d=%2d "%(j,i,i*j),end="")
print()

  

分析:这里的j取值是根据i来进行取值的,即当i = 1时,j只能取值1,当i=2时,j可以取值1、2,与上面的代码的核心是控制j的取值范围。

解答3

  
  print ('\n'.join([' '.join(['%s*%s=%-2s' % (j,i,i*j) for j in range(1,i+1)]) for i in range(1,10)]))

  

分析:将上面的解答2转成列表解析式的形式一行输出。

解答4

  i=0
j=0
while i<9:
i+=1
while j<9:
j+=1
print(j,"x",i,"=",i*j,"\t",end="")
if i==j:
j=0
print("")
break

  

(本文编号007,首发于2018年9月17日,修改于2018年9月18日)