我正在创建一个 madlibs 游戏,它接受用户输入并返回故事。我使用 %s 来存储输入。当我收到此错误时,我将之前帖子中的 %s 更改为 %%s,但错误仍然存在
print "What is your name?"
a = raw_input()
print "Hello", a, "Lets see if you like you can do MadLibs!"
print "HEAD KNIGHT OF NI: %s \n KNIGHTS OF NI : %s \n ARTHUR : Who are you ? \n HEAD KNIGHT : We are the %s who say. %s \n RANDOM : %s \n ARTHUR : No ! Not the %s who say %s \n Head Knight: The Same! \n Bedevere: Who are they? \n Head Knight: We are the keepers of the %s words : %%s %%s and %%s \n Random: %%s \n Arthur: Those who %s them seldom live to tell the tale. \n Head Knight: The %%s who say %%s demand a sacrifice \n Arthur: %s of %s we are but %s travellers who seek the % who lives beyong these woods \n Head Knight: %s \n Knights of Ni: %s \n Arthur: Ow Agh \n Head Knight: We shall say %s again to you if you don't appease us \n Arthur: Well what is it you want? \n Head Knight: We want a %%s \n Arthur: A what? \n Knights of Ni: %%s \n Arthur and Party: OWWW, AHHH \n Arthur: Please, No More! We will find you a %%s \n Head Knight: You must return here with a %%s or else, you will never pass through these woods alive. \n Arthur: O %%s of %%s you are %%s and %%s and we will return with a %%s. \n Head Knight: One that looks %%s \n Arthur: Of Course \n Head Knight: and not too %%s \n Arthur: Yes" % (raw_input("Nonsense Word"), raw_input("Nonsense Word "), raw_input("Occupation"),raw_input("Nonsense Word"),
raw_input("Nonsense Word"), raw_input("Occupation"), raw_input("Nonsense Word"), raw_input("Adjective"), raw_input("Nonsense Word"),
Run Code Online (Sandbox Code Playgroud)
错误为 ValueError:索引 466 处不支持格式字符“w”(0x77)
%你的字符串中有一个文字字符;将其加倍以防止 Python 尝试将其解释为格式字符串:
"... very long string ... who seek the %% who lives beyong ..."
Run Code Online (Sandbox Code Playgroud)
或者也许你错过了那里s:
"... very long string ... who seek the %s who lives beyong ..."
Run Code Online (Sandbox Code Playgroud)
不过,您确实想研究一下对字符串进行三重引用。Python 允许您使用"""字符串分隔符,并且在这样的文字字符串中保留换行符:
MADLIBS = """\
HEAD KNIGHT OF NI: %s
KNIGHTS OF NI : %s
ARTHUR : Who are you ?
HEAD KNIGHT : We are the %s who say. %s
RANDOM : %s
ARTHUR : No ! Not the %s who say %s
Head Knight: The Same!
Bedevere: Who are they?
Head Knight: We are the keepers of the %s words : %%s %%s and %%s
Random: %%s
Arthur: Those who %s them seldom live to tell the tale.
Head Knight: The %%s who say %%s demand a sacrifice
Arthur: %s of %s we are but %s travellers who seek the %% who lives beyong these woods
Head Knight: %s
Knights of Ni: %s
Arthur: Ow Agh
Head Knight: We shall say %s again to you if you don't appease us
Arthur: Well what is it you want?
Head Knight: We want a %%s
Arthur: A what?
Knights of Ni: %%s
Arthur and Party: OWWW, AHHH
Arthur: Please, No More! We will find you a %%s
Head Knight: You must return here with a %%s or else, you will never pass through these woods alive.
Arthur: O %%s of %%s you are %%s and %%s and we will return with a %%s.
Head Knight: One that looks %%s
Arthur: Of Course
Head Knight: and not too %%s
Arthur: Yes
"""
Run Code Online (Sandbox Code Playgroud)
这样您就可以更清楚地知道%字符串中有几个可能需要修复的双百分号。
| 归档时间: |
|
| 查看次数: |
3067 次 |
| 最近记录: |