好的,基本上我有以下代码:
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上工作。
由于
答案 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中运行良好。