我是python的新手,我坚持一个简单的任务。我想在同一行打印一系列数字,每行之间都有一个“+”。这是迄今为止我能做到的最好的,但显然在我的行尾有一个额外的“+”。
for i in range (1,10):
print (i , end="+")
输出:
1+2+3+4+5+6+7+8+9+
答案 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