用Python打印九九乘法表

(1)传统二层循环打印

for i in range(1,10):
    for j in range(1,i+1):
        print('%s*%s=%s' %(j,i,i*j),end='\t')
    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 

(2)一行打印九九乘法表

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

一行打印的分解动作如下:

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

关于str.join方法
join(self, iterable, /)
方法的作用是将str插入到iterable中的子元素之间,如果iterable是一个字符串,因为字符串也是iterable,所以会将str插入到每一个字符之间,方法返回结果为一个字符串。
Concatenate any number of strings.
The string whose method is called is inserted in between each given string.
The result is returned as a new string.
Example: ‘.’.join([‘ab’, ‘pq’, ‘rs’]) -> ‘ab.pq.rs’
注意这个方法要求iterable为字符串或者字符串数组,不能是数字列表,如下程序是错误的:

a = [ j for j in range(1,10)]
' '.join(a)

提示错误为:TypeError: sequence item 0: expected str instance, int found

注意,该方法允许在参数位置用字符串推导式来写,也是这道面试题的难点所在:

','.join('%s' %i for i in range(10))

运行结果为:‘0,1,2,3,4,5,6,7,8,9’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值