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,

输出结果是这样的

 

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

 

第三版

  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()

  

输出结果

 

 

其他参考解答

解答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日)

转载于:https://www.cnblogs.com/Nicholas0707/p/9665628.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值