如何在打印时用“+”分隔范围函数的值?

时间:2017-10-06 20:40:16

标签: python printing

我是python的新手,我坚持一个简单的任务。我想在同一行打印一系列数字,每行之间都有一个“+”。这是迄今为止我能做到的最好的,但显然在我的行尾有一个额外的“+”。

for i in range (1,10):
    print (i , end="+")

输出:

1+2+3+4+5+6+7+8+9+ 

3 个答案:

答案 0 :(得分:5)

简单的单行解决方案:

result = "+".join(str(i) for i in range(1, 10))

您可以使用内置的join()方法在列表中的每个项目之间插入分隔符。在这种情况下,分隔符是+。我们传递range生成的迭代作为参数,通过循环结构将每个数字转换为字符串。

编辑:如果你需要使用迭代,我会采用以下方法:

result = ""
for i in range(1, 10):
    result += str(i) + "+"
print(result[:-1])

基本上我们创建一个空字符串,将每个数字和+符号附加到它上,然后使用切片删除最后一个字符。

如果你不能使用任何列表相关的,那么最简单的方法是在最终号码之前停止循环并手动添加。

result = ""
for i in range(1, 9):
    result += str(i) + "+"
print(result + "9")

答案 1 :(得分:1)

如果您只需要打印值,可以unpack range()返回的序列,并将自定义分隔符传递给print()

>>> print(*range(1, 10), sep="+")                     
1+2+3+4+5+6+7+8+9

答案 2 :(得分:0)

我能想到的最短且可以说是最具可读性的代码片段:

print('+'.join(map(str, range(1, 10))))  # -> 1+2+3+4+5+6+7+8+9