使用python3进行字符串格式化

时间:2015-12-07 20:11:39

标签: python-3.4

好的,基本上我有以下代码:

name=raw_input("What is your name?")
quest=raw_input("What is your quest?")

print ("As so your name is %s, your quest is %s ") %(name,quest)

这在Python 2.7.9中完美运行

我试图在Python 3.4.2中运行这个完全相同的代码并且它不起作用(图),所以我修改它认为它可以工作:

name=input("What is your name?")
quest=input("What is your quest?")

print ("As so your name is %s, your quest is %s ") %(name,quest)

而且:

name=input("What is your name?")
quest=input("What is your quest?")

print ("As so your name is {}, your quest is {} ") .format(name,quest)

当然这也不起作用,我已经搜索了一个多小时的现在多个网站,我在这里缺少什么?你如何在Python 3.4.2中做到这一点,我一直得到的是网站和答案向你展示第一种方式(我列出),它所做的就是在旧版python 2上工作。

由于

2 个答案:

答案 0 :(得分:0)

print是Python 3中的一个函数。因此,print(...).format(...)有效地尝试格式化print()调用的返回值,即None

在您要格式化的字符串上调用.format()

print("As so your name is {}, your quest is {} ".format(name,quest))

答案 1 :(得分:0)

您修改的代码几乎是正确的,您只需移动括号以将%运算符应用于字符串而不是打印函数结果。

所以改变这个:

print ("As so your name is %s, your quest is %s ") % (name, quest)

到此:

print ("As so your name is %s, your quest is %s " % (name, quest))

它在Python 3中运行良好。