Python 3.x 示例代码的输出有问题 mystring='Fred进入沼泽,然后拿起%s吃东西。' food1='python' food2=‘沼泽苹果’ 打印(mystring%(food1,food2)) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 打印(mystring%(food1,food2)) TypeError:在字符串格式化过程中并非所有参数都已转换

Python 3.x 示例代码的输出有问题 mystring='Fred进入沼泽,然后拿起%s吃东西。' food1='python' food2=‘沼泽苹果’ 打印(mystring%(food1,food2)) 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 打印(mystring%(food1,food2)) TypeError:在字符串格式化过程中并非所有参数都已转换,python-3.x,Python 3.x,命令“print(mystring%(food1,food2))”我不明白为什么会显示TypeError?它不是应该打印为“Fred进入沼泽,拿起一条蟒蛇和一个沼泽苹果等会儿吃”吗?因为字符串中只有一个%s,而您正试图在其中分配两个值 mystring= 'Fred enters the swamp and picks up %s to eat later.' food1= 'python' food2 = 'swamp apples' print(mystring % (food1, food

命令“print(mystring%(food1,food2))”我不明白为什么会显示TypeError?它不是应该打印为“Fred进入沼泽,拿起一条蟒蛇和一个沼泽苹果等会儿吃”吗?

因为字符串中只有一个
%s
,而您正试图在其中分配两个值

mystring= 'Fred enters the swamp and picks up %s to eat later.'
food1= 'python'
food2 = 'swamp apples'
print(mystring % (food1, food2))
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    print(mystring % (food1, food2))
TypeError: not all arguments converted during string formatting
将其更改为:

print(mystring % (food1, food2))
它可以很好地打印出来

这样使用:

print(mystring % food1)
输出:

mystring= 'Fred enters the swamp and picks up %s to eat later.'
food1= 'python'
food2 = 'swamp apples'
print(mystring % (food1 + ' and ' + food2))

谢谢但是,嗯。。。所以我把print(mystring%s(food1,food2))放进去,它说的是一样的:(@Anny我指的是
%s
中的
%s
“Fred进入沼泽,然后拿起%s吃。”查看问题中的进一步更新,明白了!所以我把mystring=“Fred进入沼泽,然后拿起%s和%s吃。”:]耶!它起作用了!现在Fred可以吃一条蟒蛇和一个沼泽苹果了!但我仍然不明白为什么命令和打印(mystring%(food1,food2))表示类型错误?基本上,我使用了与书中相同的东西,但它没有给出相同的输出,因为您传递了两个字符串,而
mystring
中只有一个
%s
。我所做的是将两个字符串
food1
food2
以及它们之间的
添加在一起,所以现在有了只有一个字符串。明白了!非常感谢!我刚刚发现我输入了错误的变量:P它应该是mystring='Fred进入沼泽,拿起a%s和a%s吃。是的!我本来想更改你的
mystring
,但有点害怕。:P
Fred enters the swamp and picks up python and swamp apples to eat later.