繁体   English   中英

如何摆脱print语句中的额外+符号,Python

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM