在Python中,换行符在返回字符串中不起作用

wd2eg0qa  于 2023-02-18  发布在  Python
关注(0)|答案(3)|浏览(280)

在下面的代码中,我尝试在函数中进行计算,然后将字符串中的所有值返回到Python的主程序体,问题是换行符\n在return语句中不起作用,原因是什么?

#create function
def program(value):
    #creat variables
   
    tip_percentage=10
    tip_amount=0
    final_bill=0

    #calculations
    tip_amount=value*tip_percentage/100
    final_bill=value+tip_amount

    #print output  
    x=("value -> \n",value," Tip -> \n",tip_amount,"Total value -> \n",final_bill)
    print(x)
    return x

#Main body
value=int(input("Enter value : "))
value=program(value)
print(value)

尝试从函数返回值。然后在return语句中作为换行符的\n不起作用。

lskq00tm

lskq00tm1#

这是因为你返回的是一个元组,而不是一个字符串。
尝试字符串连接:x = "value -> \n" + str(value) + " Tip -> \n" + str(tip_amount) + " Total value -> \n" + str(final_bill)
或者尝试如下格式:
x = "value -> \n{} Tip -> \n{} Total value -> \n{}".format(value, tip_amount, final_bill)

hmmo2u0o

hmmo2u0o2#

你返回的Tuple对象并不像x=("value -> \n",value," Tip -> \n",tip_amount,"Total value -> \n",final_bill)那样解释转义序列,它把它当作普通字符串来处理。
您可以改为返回字符串。

x= "value -> \n{}\nTip -> \n{}\nTotal value -> \n{}".format(value, tip_amount, final_bill)
nx7onnlm

nx7onnlm3#

x=("value -> \n",value," Tip -> \n",tip_amount,"Total value -> \n",final_bill)

在上一行中,你把字符串写成了元组,你必须把它转换成字符串。

相关问题