鱼C论坛

 找回密码
 立即注册
楼主: 新手·ing

[技术交流] Python:每日一题 7

[复制链接]
发表于 2018-8-23 17:43:25 | 显示全部楼层
for i in range(1,10):
    for j in range(1,i+1):
        print(str(j)+"*"+str(i)+"="+str(i*j),end=" ")
    print(end="\n")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-12 17:09:57 | 显示全部楼层
# 9*9乘法表
for i in range(1,10):
    n = i+1
    for j in range(1,n):
        if j == i:
            print("%d*%d=%2d" %(j,i,j*i))
        else:
            print("%d*%d=%2d" %(j,i,j*i),end=" ")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-18 17:18:02 | 显示全部楼层
for i in range(1,10):
    for j in range(1,i+1):
        print('{}*{}={}'.format(j,i,r), end='  ')
        
    print(count)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-21 19:04:11 | 显示全部楼层
本帖最后由 Roc乘风 于 2018-10-21 19:58 编辑
for i in range(1,10):

    for j in range(1,i+1):
        z = i * j
        print('{0}*{1} = {2:<3}'.format(j,i,z),end='')

    print('',end='\n')
先贴上我的答案,再看看各位鱼油的方法

对应的列表推导式写法
print('\n'.join([''.join(['{0}*{1} = {2:<3}'.format(j,i,j*i) for j in range(1,i+1)]) for i in range(1,10)]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-24 15:45:16 | 显示全部楼层
#i是行,j是列
for j in range(1,10):
    for i in range(1,10):
        if i < j:
            print(i,'*',j,'=',i*j,end = " ")
        elif i == j:
            print(i,'*',j,'=',i*j)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-14 15:43:07 | 显示全部楼层
for i in range(1,10):
           for j in range(1,i+1):         
                           print("%2d*%2d=%-3d    "%(j,i,i*j),end="")
           print("\n")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-15 11:44:09 | 显示全部楼层
ooxx7788 发表于 2017-3-26 20:31
你赖皮哦,人家要求的是9行9列,你弄个一顺。

有点看不懂大佬的答案。
print()
是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-3 21:49:06 | 显示全部楼层
for i in range(1,10):
    for j in range(1,i+1):
        print("%d * %d = %d"%(j,i,i*j),end='\t')
    print('\n')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-21 11:01:54 | 显示全部楼层
这个题目很简单,不过仍然可以有多种方法实现。下面写了三种。供大家交流。
写完之后,看了一下之前各位鱼油所写的程序,思路想法基本都是一样的。
也有人提出一些小问题,例如,如何让口诀表对齐,其实这个对于编程初学者来说可能不太熟悉,学过其他语言编程的都应该知道,各种语言输出的时候都会有各自的对齐方式,在python中,print变量的时候可以通过控制器位宽来使其对齐。
#初始想法,乘法口诀表是由9行9列组成,每次打印一句乘法口诀,行结尾处换行
for i in range(1,10):
        for j in range(1,i+1):
                print ('%d × %d = %2d'%(j,i,i*j),end='  ')
        print()

#整张表还可以是一个多行字符串,使用两层循环,将每一句乘法口诀加到字符串中,最后一次性打印
mylist=''
for i in range(1,10):
        for j in range(1,i+1):
                mylist +='%d × %d = %2d  '%(j,i,i*j)
        mylist +='\n'
print (mylist)

'''
既然是多行字符串的拼接,那就可以用字符串操作函数进行拼接,
选择join()函数完成此操作,每一行的拼接使用换行字符'\n',
同一行的多句乘法口诀的拼接使用开个' ' 
与之前的题目一样,一行代码完成功能,虽然简洁,但是可读性就差了很多。
'''
print('\n'.join(['  '.join(["%d × %d = %2d" % (j,i,i*j)  for j in range(1,i+1)]) for i in range(1,10)]))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-27 20:34:28 | 显示全部楼层
for x in range(1,10):
       
        for i in range(1,x+1):
                print("|",end = "")
                print('%s * %s = %s' % (i,x,i * x),end= " ")

        print("|")
结果:
|1 * 1 = 1 |
|1 * 2 = 2 |2 * 2 = 4 |
|1 * 3 = 3 |2 * 3 = 6 |3 * 3 = 9 |
|1 * 4 = 4 |2 * 4 = 8 |3 * 4 = 12 |4 * 4 = 16 |
|1 * 5 = 5 |2 * 5 = 10 |3 * 5 = 15 |4 * 5 = 20 |5 * 5 = 25 |
|1 * 6 = 6 |2 * 6 = 12 |3 * 6 = 18 |4 * 6 = 24 |5 * 6 = 30 |6 * 6 = 36 |
|1 * 7 = 7 |2 * 7 = 14 |3 * 7 = 21 |4 * 7 = 28 |5 * 7 = 35 |6 * 7 = 42 |7 * 7 = 49 |
|1 * 8 = 8 |2 * 8 = 16 |3 * 8 = 24 |4 * 8 = 32 |5 * 8 = 40 |6 * 8 = 48 |7 * 8 = 56 |8 * 8 = 64 |
|1 * 9 = 9 |2 * 9 = 18 |3 * 9 = 27 |4 * 9 = 36 |5 * 9 = 45 |6 * 9 = 54 |7 * 9 = 63 |8 * 9 = 72 |9 * 9 = 81 |
[Finished in 0.1s]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-1 11:03:48 | 显示全部楼层
本帖最后由 nnxiaod 于 2019-1-1 11:16 编辑

python2.7
from __future__ import print_function


def do1():
    for i in range(1, 10):
        for j in range(1, i + 1):
            print("%dx%d=%d" % (j, i, i * j), end=" " if i * j >= 10 else "  ")
        print('')


if __name__ == '__main__':
    do1()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-1-1 21:17:56 | 显示全部楼层
如下所示:
i = 1
while i < 10:
    j = 1
    while j <= i:
        print("%d * %d = %d     "%(j,i,i*j),end='')
        if i == j:
            print('\n')
        j += 1
    i += 1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-22 13:01:40 | 显示全部楼层

for row in range(1, 10):
    for col in range(1, row+1):
        print(col, "*", row, "=", row*col, end=' ')

    print("\n")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-10 22:41:42 | 显示全部楼层
for i in range(9):
    for j in range(9):
        if j==8:
            huanhang="\n"
        else:
            huanhang=""
        print(str(i+1)+" * "+str(j+1)+" = " +str((i+1)*(j+1)),'\t',end=huanhang)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-2 15:12:59 | 显示全部楼层
i=j=1
for i in range(1,15):
    for j in range(1,15):
        if j<=i:
            print(i,'*',j,'=',i*j,' ',end='')
        j+=1
    print('')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-3 09:25:50 | 显示全部楼层
sunrise085 发表于 2018-12-21 11:01
这个题目很简单,不过仍然可以有多种方法实现。下面写了三种。供大家交流。
写完之后,看了一下之前各位鱼 ...

大佬,可以用字典的形式,做成中文版乘法口诀表吗? 我研究了一下,做不出来。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-4-26 17:19:16 | 显示全部楼层
for i in range(1, 10):
    for j in range(i, 10):
        print('{}x{}={}'. format(i, j, i*j), end=' ')
    print()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-5-5 19:41:30 | 显示全部楼层
solomonxian 发表于 2017-4-23 20:18
后面加一句就换行了啊

一行也是可以的,可读性没那么好就是了

看了楼主的答案,有感:
for i in range(1,10):
    for j in range(1,i+1):
        #if i<=j:
            print("{:2d} * {:2d} = {:2d} ".format(j,i,j*i),end=" ")
    print()

答案:
1 *  1 =  1  
1 *  2 =  2   2 *  2 =  4  
1 *  3 =  3   2 *  3 =  6   3 *  3 =  9  
1 *  4 =  4   2 *  4 =  8   3 *  4 = 12   4 *  4 = 16  
1 *  5 =  5   2 *  5 = 10   3 *  5 = 15   4 *  5 = 20   5 *  5 = 25  
1 *  6 =  6   2 *  6 = 12   3 *  6 = 18   4 *  6 = 24   5 *  6 = 30   6 *  6 = 36  
1 *  7 =  7   2 *  7 = 14   3 *  7 = 21   4 *  7 = 28   5 *  7 = 35   6 *  7 = 42   7 *  7 = 49  
1 *  8 =  8   2 *  8 = 16   3 *  8 = 24   4 *  8 = 32   5 *  8 = 40   6 *  8 = 48   7 *  8 = 56   8 *  8 = 64  
1 *  9 =  9   2 *  9 = 18   3 *  9 = 27   4 *  9 = 36   5 *  9 = 45   6 *  9 = 54   7 *  9 = 63   8 *  9 = 72   9 *  9 = 81  
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-8 00:33:40 | 显示全部楼层
# 题目:输出 9*9 乘法口诀表。
#解法1:两数1-9循环相乘,剔除掉后数大的后输出
def answer1():
    for i in range(1,10):
        for j in range(1,10):
            if i >= j:
                print("%d*%d=%d"%(j,i,i*j),end='\t')
        print('\n')
#解法2:前数循环到后数时终止。
def answer2():
    for i in range(1,10):
        for j in range(1,i+1):
            print("{}*{}={}".format(j,i,i*j),end='\t')
        print('\n')
if __name__ == '__main__':
    answer1()
    answer2()
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-18 16:37:44 | 显示全部楼层
ooxx7788 发表于 2017-3-26 20:31
你赖皮哦,人家要求的是9行9列,你弄个一顺。

老哥99乘法表是坡状的……
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-16 23:59

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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