有没有办法我只能使用一个print语句,但仍能达到与下面代码相同的效果?我试图在这种情况下不能使用的结束语句,或者我使用不正确:
print ('Deposit: ' + str(deposit))
print ('Withdrawl: ' + str(withdrawl))
print ('Available amount: ' + str((deposit + withdrawl)//1))
答案 0 :(得分:5)
是的,您可以使用\n
插入换行符:
print('Deposit: {}\nWithdrawl: {}\nAvailable amount: {}'.format(
deposit, withdrawl, (deposit + withdrawl) // 1))
但是,它不一定更好。恕我直言在这里使用单独的print()
语句更具可读性。
使用字符串连接可以使它稍微好一些:
print(('Deposit: {}\n' +
'Withdrawl: {}\n' +
'Available amount: {}').format(deposit, withdrawl, (deposit + withdrawl) // 1)
再次,这不一定更好恕我直言。
我还使用format
来提高可读性;这消除了对手动str
调用的需要,并且更具可读性(它可以做更多,请参阅链接)。
我试过结束语句,其中一个在这种情况下不起作用,或者我使用不正确
我假设您使用了类似print('foo', 'bar', end='\n')
的内容,但这不会起作用,因为end
仅附加到所有参数的结尾 end ;参数之间打印sep
参数(默认为空格)
所以你想做的是:print('foo', 'bar', sep='\n')
这样做的缺点是,您需要进行3次.format
来电,或者保持您的丑陋"字符串连接。
答案 1 :(得分:3)
看起来你正在使用Python 3.x.如果是,那么您可以将print
的{{3}}设置为'\n'
,以便将每个参数分隔换行:
print('Deposit: ' + str(deposit), 'Withdrawl: ' + str(withdrawl), 'Available amount: ' + str((deposit + withdrawl)//1), sep='\n')
虽然这确实让你排长队。您可能需要考虑将其分为两行:
print('Deposit: ' + str(deposit), 'Withdrawl: ' + str(withdrawl),
'Available amount: ' + str((deposit + withdrawl)//1), sep='\n')
请注意,您也可以在选定位置删除一些换行符。这将允许您简单地写上述内容:
print('Deposit: ', deposit, '\nWithdrawl: ', withdrawl, '\nAvailable amount: ', (deposit + withdrawl)//1)
这个解决方案的好处在于它消除了对str
的所有调用(print
自动将其参数字符串化)。
最后但并非最不重要的是,如果您实际使用的是Python 2.x,则可以从sep
parameter导入Python 3.x print
函数。将此行放在代码顶部:
from __future__ import print_function
答案 2 :(得分:1)
您可以使用模板渲染,如:
template = '''Deposit: {0}
Withdrawal: {1}
Available amount: {2}'''
deposit = 1000
withdrawal = 900
print template.format(deposit, withdrawal, (deposit + withdrawal)//1)
但是我没有得到平衡公式,你能解释一下吗?
答案 3 :(得分:0)
或者你可以使用这个
print(('Deposit: %s\n' +
'Withdrawl: %s\n' +
'Available amount: %s') % (deposit, withdrawl, (deposit + withdrawl) // 1)