如何移除Python循环输出每行末尾的多余星号符号
问题:如何修改代码去除每行末尾多余的*符号
原始代码:
n = 3 for i in range(1, n+1): for j in range(1, n+1): print(j*i, end='*') print(end='\b\n')
运行结果:
1*2*3* 2*4*6* 3*6*9*
期望结果:
1*2*3 2*4*6 3*6*9
几种修改方案:
- 方案一:用字符串join生成整行
先把每行的元素转成字符串存入列表,再用*连接后打印,简洁直观:
n = 3 for i in range(1, n+1): row = [str(j*i) for j in range(1, n+1)] print('*'.join(row))
- 方案二:调整循环内的打印逻辑
判断当前元素是否是该行最后一个,只在非末尾元素后加*:
n = 3 for i in range(1, n+1): for j in range(1, n+1): print(j*i, end='*' if j != n else '') print()
- 方案三:利用print的sep参数
把每行的元素作为print的可变参数,指定分隔符为*,print会自动在元素间添加分隔符,末尾不会出现多余符号:
n = 3 for i in range(1, n+1): print(*(j*i for j in range(1, n+1)), sep='*')
内容的提问来源于stack exchange,提问作者Alexander Grenkov
相关产品推荐
相关产品推荐

