[英]How to get rid of extra + sign in print statement, Python
print('2**', n, ' + ', sep='', end='')
嗨上面的print语句是循环的,所以输出结束了
2 ** 10 + 2 ** 7 + 2 ** 6 + 2 ** 4 + 2 ** 1 +
我需要摆脱声明中的最后一个加号,但不知道如何去做。
如果您将指数分开,可能就像使用str.join()
:
>>> exponents = (10, 7, 6, 4, 1)
>>> print(' + '.join('2**{}'.format(n) for n in exponents))
2**10 + 2**7 + 2**6 + 2**4 + 2**1
这将适用于Python 2和3.您还可以将print()
函数与sep
参数一起使用:
>>> print(*('2**{}'.format(n) for n in exponents), sep=' + ')
2**10 + 2**7 + 2**6 + 2**4 + 2**1
这是非常“常见”的“问题”,通常使用'.join方法解决。 我假设你有一个整数列表,所以你需要做的就是:
powers = [10, 7, 6, 4]
print(' + '.join(['2 ** {n}'.format(n= n) for n in powers]))
您可以将要打印的字符串存储在循环中的变量中,然后在循环结束后,通过使用to_print[:len(to_print)-1]
切片来删除额外的加号,然后打印to_print。 这里to_print是你需要存储在循环中的文本而不是打印它然后在切片之后打印它,如上所示。
检查您是否在最后一个元素并使用不同的print语句(没有最后的'+'
),或者首先在列表中构造输出并在打印前加入列表。
output = []
some_loop:
output.append('2**%i' % n)
print(' + '.join(output))
您可以执行以下操作,并使其适应您的循环长度
n = 1
for i in range(0,10):
if i < 9:
print('2**', n, ' + ', sep='', end = '')
else:
print('2**', n, sep='', end = '')
在这种情况下, join()有很多帮助:
exponents = [10, 7, 6, 4, 1]
out = []
for n in exponents:
out.append('2 ** %d' % n)
print ' + '.join(out)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.