鱼C论坛

 找回密码
 立即注册
查看: 7765|回复: 55

[已解决]小白Python练习册(14)【鱼币福利】

[复制链接]
发表于 2020-5-4 23:50:44 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
现在是11:30我都已经躺下了
但想起来今天没出题
赶紧又起来了
(冰河星云最近有事,不出意外的话最近都是我出题)
我太难了


开始出题吧:



输出乘法口诀表
(你不会以为就这么简单吧?不可能!)

今天我们不仅要输出正常的乘法口诀表,我们还要输出反向的,上效果:


==========我会帮您输出乘法口诀表==========

您要正向还是反向(正/反):反
9 * 9 = 81   9 * 8 = 72   9 * 7 = 63   9 * 6 = 54   9 * 5 = 45   9 * 4 = 36   9 * 3 = 27   9 * 2 = 18   9 * 1 = 9        
8 * 8 = 64   8 * 7 = 56   8 * 6 = 48   8 * 5 = 40   8 * 4 = 32   8 * 3 = 24   8 * 2 = 16   8 * 1 = 8
7 * 7 = 49   7 * 6 = 42   7 * 5 = 35   7 * 4 = 28   7 * 3 = 21   7 * 2 = 14   7 * 1 = 7
6 * 6 = 36   6 * 5 = 30   6 * 4 = 24   6 * 3 = 18   6 * 2 = 12   6 * 1 = 6
5 * 5 = 25   5 * 4 = 20   5 * 3 = 15   5 * 2 = 10   5 * 1 = 5
4 * 4 = 16   4 * 3 = 12   4 * 2 = 8   4 * 1 = 4
3 * 3 = 9   3 * 2 = 6   3 * 1 = 3
2 * 2 = 4   2 * 1 = 2
1 * 1 = 1
==========我会帮您输出乘法口诀表==========
您要正向还是反向(正/反):fan
您的输入有误!
请重新输入
您要正向还是反向(正/反):正
1 * 1 = 1   
2 * 1 = 2   2 * 2 = 4   
3 * 1 = 3   3 * 2 = 6   3 * 3 = 9   
4 * 1 = 4   4 * 2 = 8   4 * 3 = 12   4 * 4 = 16   
5 * 1 = 5   5 * 2 = 10   5 * 3 = 15   5 * 4 = 20   5 * 5 = 25   
6 * 1 = 6   6 * 2 = 12   6 * 3 = 18   6 * 4 = 24   6 * 5 = 30   6 * 6 = 36   
7 * 1 = 7   7 * 2 = 14   7 * 3 = 21   7 * 4 = 28   7 * 5 = 35   7 * 6 = 42   7 * 7 = 49   
8 * 1 = 8   8 * 2 = 16   8 * 3 = 24   8 * 4 = 32   8 * 5 = 40   8 * 6 = 48   8 * 7 = 56   8 * 8 = 64   
9 * 1 = 9   9 * 2 = 18   9 * 3 = 27   9 * 4 = 36   9 * 5 = 45   9 * 6 = 54   9 * 7 = 63   9 * 8 = 72   9 * 9 = 81

不能直接用print,要使用for循环啊!




回复查看参考答案啊:
游客,如果您要查看本帖隐藏内容请回复


如果喜欢,别忘了评分订阅哟(传送门)!
喜欢别忘了.gif 145241r1h8zhke8yry830p.gif
最佳答案
2020-5-5 01:05:52
本帖最后由 1469396970 于 2020-5-5 08:57 编辑
  1. print('==========我会帮您输出乘法口诀表==========')
  2. s=input('您是要反向还是正向(反/正):')
  3. if s=='正':
  4.     for i in range(1,10):
  5.         for j in range(1,i+1):
  6.             print('%s*%s=%s'%(i,j,i*j),end='     ')
  7. elif s=='反':
  8.     for i in range(9,0,-1):
  9.         for j in range(i,0,-1):
  10.             print('%s*%s=%s'%(i,j,i*j),end='     ')
  11. else:
  12.     print('您的输入有误!')
复制代码

本帖被以下淘专辑推荐:

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-5 00:41:44 | 显示全部楼层

回帖奖励 +2 鱼币

本帖最后由 txxcat 于 2020-5-5 00:45 编辑
  1. title='==========我会帮您输出乘法口诀表=========='
  2. while True:
  3.     a=input(title+'\n您要正向还是反向(正/反):')
  4.     if a.lower() in '正反q' and len(a.strip())==1:
  5.         break
  6.     title='您的输入有误!\n请重新输入!'
  7. if a=='正':
  8.     print('\n'.join([' '.join(["%2s *%2s = %2s"%(i,j,i*j) for j in range(1,i+1)]) for i in range(1,10)]))
  9. elif a=='反':
  10.     print('\n'.join([' '.join(["%2s *%2s = %2s"%(i,j,i*j) for j in range(i,0,-1)]) for i in range(9,0,-1)]))
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 01:05:52 | 显示全部楼层    本楼为最佳答案   

回帖奖励 +2 鱼币

本帖最后由 1469396970 于 2020-5-5 08:57 编辑
  1. print('==========我会帮您输出乘法口诀表==========')
  2. s=input('您是要反向还是正向(反/正):')
  3. if s=='正':
  4.     for i in range(1,10):
  5.         for j in range(1,i+1):
  6.             print('%s*%s=%s'%(i,j,i*j),end='     ')
  7. elif s=='反':
  8.     for i in range(9,0,-1):
  9.         for j in range(i,0,-1):
  10.             print('%s*%s=%s'%(i,j,i*j),end='     ')
  11. else:
  12.     print('您的输入有误!')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 07:20:26 | 显示全部楼层

回帖奖励 +2 鱼币

提供一种思路
这也用到for循环了
  1. from sys import stdout
  2. stdout.writeline(i for i in '''9 * 9 = 81   9 * 8 = 72   9 * 7 = 63   9 * 6 = 54   9 * 5 = 45   9 * 4 = 36   9 * 3 = 27   9 * 2 = 18   9 * 1 = 9        
  3. 8 * 8 = 64   8 * 7 = 56   8 * 6 = 48   8 * 5 = 40   8 * 4 = 32   8 * 3 = 24   8 * 2 = 16   8 * 1 = 8
  4. 7 * 7 = 49   7 * 6 = 42   7 * 5 = 35   7 * 4 = 28   7 * 3 = 21   7 * 2 = 14   7 * 1 = 7
  5. 6 * 6 = 36   6 * 5 = 30   6 * 4 = 24   6 * 3 = 18   6 * 2 = 12   6 * 1 = 6
  6. 5 * 5 = 25   5 * 4 = 20   5 * 3 = 15   5 * 2 = 10   5 * 1 = 5
  7. 4 * 4 = 16   4 * 3 = 12   4 * 2 = 8   4 * 1 = 4
  8. 3 * 3 = 9   3 * 2 = 6   3 * 1 = 3
  9. 2 * 2 = 4   2 * 1 = 2
  10. 1 * 1 = 1''')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 08:00:25 | 显示全部楼层

回帖奖励 +2 鱼币

哈哈哈哈 楼上
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 08:06:14 | 显示全部楼层

回帖奖励 +2 鱼币

瞧瞧
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-5 08:42:48 | 显示全部楼层

回帖奖励 +2 鱼币

康康
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-5 09:31:09 | 显示全部楼层

回帖奖励 +2 鱼币

学习一下~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 09:50:03 | 显示全部楼层

回帖奖励 +2 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-5 10:03:04 | 显示全部楼层

回帖奖励 +2 鱼币

本帖最后由 江少 于 2020-5-5 10:25 编辑
  1. while 1:
  2.     s = raw_input('我会帮你输入乘法表的,你是想输入正向还是反向的?:')
  3.     if s == '正':
  4.         for i in range(1,10):
  5.             for j in range(1,i+1):
  6.                 print (str(i) + '*'+ str(j) + '='+ str(i*j))
  7.         break
  8.     elif s == '反':
  9.         for i in range(9,0,-1):
  10.             for j in range(i,0,-1):
  11.                 print(str(i) + '*'+ str(j) + '='+ str(i*j))
  12.         break
  13.     else:
  14.         print('输入错误!请输入正或者反!')
  15.                   
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 10:21:45 | 显示全部楼层

回帖奖励 +2 鱼币

用for循环输出多行文字的大哥真的猛
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 10:54:40 | 显示全部楼层
看见以上大佬个个这么简洁,写不出了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 0 反对 1

使用道具 举报

发表于 2020-5-5 11:02:31 | 显示全部楼层
永恒的蓝色梦想 发表于 2020-5-5 07:20
提供一种思路
这也用到for循环了

纯对顶一下!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 11:03:10 | 显示全部楼层
  1. def timeTable(Type):
  2.         if Type == '正':
  3.         
  4.             for i in range(9):
  5.                 if i != 0:
  6.                     print('')
  7.             
  8.                 for j in range(int(i + 1)):
  9.                     print(str(i + 1) + ' ' + '*' +' ' + str(j + 1) + ' ' + '=' + str(int(i + 1) * int(j + 1)), end = ' ')

  10.         elif Type == '反':

  11.             for i in range(9):
  12.                 if i != 0:
  13.                     print('')
  14.                     
  15.                 for j in range(int(9 - i)):
  16.                     print(str(9 - i) + ' ' + '*' + ' ' + str(9 - j) + ' ' + '=' + str(int(9 - i) * int(9 - j)), end = ' ')

  17.         else:
  18.             print('您的输入有误!\n请重新输入')

  19.    


  20. print('==========我会帮您输出乘法口诀表==========')
  21. Type = ' '

  22. while Type != '正' and Type != '反':
  23.     Type = str(input('您要正向还是反向:'))
  24.     timeTable(Type)
  25.                
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 11:16:51 | 显示全部楼层
1111111111111111111
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 11:39:54 | 显示全部楼层
占楼
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-5-5 15:32:08 | 显示全部楼层
  1. def mTable(b):
  2.     xList = list(range(1, 10))
  3.     for x in xList if b else reversed(xList):      
  4.         yList = list(range(1, x+1))
  5.         for y in yList if b else reversed(yList):
  6.             print("%d * %d = %d\t" % (x, y, x*y), end="")
  7.         print()

  8. mTable(True)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 16:28:41 | 显示全部楼层
print('==========我会帮您输出乘法口诀表==========')
temp = input('你是要正向的,还是要反向的?\n 1.正向 \n 2.反向\n 3.都要' )

if int(temp)==1:
   for i in range(1,10):
      for j in range(1,i+1):
        print('%s*%s=%s'%(i,j,i*j),end=" ")
      print('')
elif int(temp)==2:
   for i in range(1,10)[::-1]:
       for j in range(1, i + 1):
           print('%s*%s=%s' % (i, j, i * j), end=" ")
       print('')
else:
   print('正向:')
   for i in range(1,10):
      for j in range(1,i+1):
        print('%s*%s=%s'%(i,j,i*j),end=" ")
      print('')
   print('反向:')
   for i in range(1,10)[::-1]:
       for j in range(1, i + 1):
           print('%s*%s=%s' % (i, j, i * j), end=" ")
       print('')
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 17:12:37 | 显示全部楼层
本帖最后由 lbxx916 于 2020-5-5 17:14 编辑
  1. print('==========我会帮您输出乘法口诀表==========')
  2. chioes = input('您要正向还是反向(正/反):')

  3. if chioes == '正':
  4.     for num1 in range(1,10):
  5.         num2 = 1
  6.         while (num2 <= num1):
  7.             print ('%dx%d=%2d' % (num1,num2,num1*num2),end = '  ')
  8.             num2 += 1
  9.         print('\n')
  10. elif chioes == '反':
  11.     for num1 in range(9,0,-1):
  12.         num2 = num1
  13.         while (num2 <= num1) and (num2 >= 1):
  14.             print ('%dx%d=%2d' % (num1,num2,num1*num2),end = '  ')
  15.             num2 -= 1
  16.         print('\n')
  17. else:
  18.     print('输入有误,请输入‘正’或‘反’')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-5 18:25:38 | 显示全部楼层
做过
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-19 01:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表