WangJS 发表于 2020-5-4 23:50:44

小白Python练习册(14)【鱼币福利】

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

开始出题吧:


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

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

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

您要正向还是反向(正/反):反
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循环啊!{:10_256:}



回复查看参考答案啊:
**** Hidden Message *****

如果喜欢,别忘了评分订阅哟(传送门)!{:9_227:}

txxcat 发表于 2020-5-5 00:41:44

本帖最后由 txxcat 于 2020-5-5 00:45 编辑

title='==========我会帮您输出乘法口诀表=========='
while True:
    a=input(title+'\n您要正向还是反向(正/反):')
    if a.lower() in '正反q' and len(a.strip())==1:
      break
    title='您的输入有误!\n请重新输入!'
if a=='正':
    print('\n'.join([' '.join(["%2s *%2s = %2s"%(i,j,i*j) for j in range(1,i+1)]) for i in range(1,10)]))
elif a=='反':
    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)]))

1469396970 发表于 2020-5-5 01:05:52

本帖最后由 1469396970 于 2020-5-5 08:57 编辑

print('==========我会帮您输出乘法口诀表==========')
s=input('您是要反向还是正向(反/正):')
if s=='正':
    for i in range(1,10):
      for j in range(1,i+1):
            print('%s*%s=%s'%(i,j,i*j),end='   ')
elif s=='反':
    for i in range(9,0,-1):
      for j in range(i,0,-1):
            print('%s*%s=%s'%(i,j,i*j),end='   ')
else:
    print('您的输入有误!')

永恒的蓝色梦想 发表于 2020-5-5 07:20:26

提供一种思路{:10_327:}
这也用到for循环了{:10_256:}from sys import stdout
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      
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''')

Twilight6 发表于 2020-5-5 08:00:25

哈哈哈哈 楼上

yizhou 发表于 2020-5-5 08:06:14

瞧瞧

不打工的秘密 发表于 2020-5-5 08:42:48

康康

乔珂珂 发表于 2020-5-5 09:31:09

学习一下~~

moonishine 发表于 2020-5-5 09:50:03

{:10_285:}

江少 发表于 2020-5-5 10:03:04

本帖最后由 江少 于 2020-5-5 10:25 编辑

while 1:
    s = raw_input('我会帮你输入乘法表的,你是想输入正向还是反向的?:')
    if s == '正':
      for i in range(1,10):
            for j in range(1,i+1):
                print (str(i) + '*'+ str(j) + '='+ str(i*j))
      break
    elif s == '反':
      for i in range(9,0,-1):
            for j in range(i,0,-1):
                print(str(i) + '*'+ str(j) + '='+ str(i*j))
      break
    else:
      print('输入错误!请输入正或者反!')
                  

jijidebaba 发表于 2020-5-5 10:21:45

用for循环输出多行文字的大哥真的猛{:10_256:}

kkk999de 发表于 2020-5-5 10:54:40

看见以上大佬个个这么简洁,写不出了

lqh3000 发表于 2020-5-5 11:02:31

永恒的蓝色梦想 发表于 2020-5-5 07:20
提供一种思路
这也用到for循环了

纯对顶一下!{:5_109:}

一颗冰糖吖 发表于 2020-5-5 11:03:10

def timeTable(Type):
      if Type == '正':
      
            for i in range(9):
                if i != 0:
                  print('')
            
                for j in range(int(i + 1)):
                  print(str(i + 1) + ' ' + '*' +' ' + str(j + 1) + ' ' + '=' + str(int(i + 1) * int(j + 1)), end = ' ')

      elif Type == '反':

            for i in range(9):
                if i != 0:
                  print('')
                  
                for j in range(int(9 - i)):
                  print(str(9 - i) + ' ' + '*' + ' ' + str(9 - j) + ' ' + '=' + str(int(9 - i) * int(9 - j)), end = ' ')

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

   


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

while Type != '正' and Type != '反':
    Type = str(input('您要正向还是反向:'))
    timeTable(Type)
               

qweasdzxc030318 发表于 2020-5-5 11:16:51

1111111111111111111

liuzhengyuan 发表于 2020-5-5 11:39:54

占楼{:10_256:}

ba21 发表于 2020-5-5 15:32:08

def mTable(b):
    xList = list(range(1, 10))
    for x in xList if b else reversed(xList):      
      yList = list(range(1, x+1))
      for y in yList if b else reversed(yList):
            print("%d * %d = %d\t" % (x, y, x*y), end="")
      print()

mTable(True)

老兵hb 发表于 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('')

lbxx916 发表于 2020-5-5 17:12:37

本帖最后由 lbxx916 于 2020-5-5 17:14 编辑

print('==========我会帮您输出乘法口诀表==========')
chioes = input('您要正向还是反向(正/反):')

if chioes == '正':
    for num1 in range(1,10):
      num2 = 1
      while (num2 <= num1):
            print ('%dx%d=%2d' % (num1,num2,num1*num2),end = '')
            num2 += 1
      print('\n')
elif chioes == '反':
    for num1 in range(9,0,-1):
      num2 = num1
      while (num2 <= num1) and (num2 >= 1):
            print ('%dx%d=%2d' % (num1,num2,num1*num2),end = '')
            num2 -= 1
      print('\n')
else:
    print('输入有误,请输入‘正’或‘反’')

8178919 发表于 2020-5-5 18:25:38

做过{:10_256:}
页: [1] 2 3
查看完整版本: 小白Python练习册(14)【鱼币福利】