使用Python中的一个String打印文本

Ale*_*der 4 pycharm python-3.x

我正在使用Jetbrains的Pycharm学习Python.我无法通过这个问题:

用一个字符串打印出这个文字"这个冰淇淋的名字是"Sweet'n'Tasty"

我的解决方案是:

print('The name of this ice-cream is \"Sweet\'n\'Tasty\"')
Run Code Online (Sandbox Code Playgroud)

它显示正确的输出,但程序不接受是一个解决方案.

为什么不接受看似正确的答案,以及如何满足既定要求?

小智 8

我发现这个页面是因为我今天早些时候遇到了完全相同的问题.

简而言之,这是教训的逻辑在语法上挑剔,以一种非常不明确的方式.你正在为它所要求的东西键入正确的东西,而你正在键入一些没有错误解析的东西 - 但是无论如何教训都拒绝它.

冗长的答案.

任务是:

反斜杠用于转义引号,因此可以在字符串中使用,例如"它是我"和"她说""Hello""".特殊符号'\n'用于向字符串添加换行符.
用一个字符串打印出这个文字:这个冰淇淋的名字是"Sweeet'n'Tasty"

他们为您提供:

dont_worry = "Don't worry about apostrophes"
print(dont_worry)
print("The name of this ice-cream is \"Sweeet\"")
print('text')
Run Code Online (Sandbox Code Playgroud)

文本打印("文")的最后一行是为了与你的答案被替换.

这个教训似乎想告诉你,你可以用单反语和带有反斜杠的双引号来逃避.请注意第二个打印实例上的双引号,以及第三个打印实例上的单引号[他们希望您键入答案的位置]

如果更换文本打印("文")有:这个雪糕名称是\"Sweeet'n'Tasty \"

任务失败:

文件"/PycharmProjects/PythonIntroduction/lesson3/task8/character_escaping.py",第4行打印('这个冰淇淋的名字是\"Sweeet'n'Tasty \"')^ SyntaxError:语法无效

所以如果你在单引号中添加斜杠[在这个上下文中的撇号] print('这个冰淇淋的名字是\'Sweeet \'n \'Tasty \"')

即使文本在下面的控制台正确解析:

Don't worry about apostrophes
The name of this ice-cream is "Sweeet"
The name of this ice-cream is "Sweeet'n'Tasty"
Run Code Online (Sandbox Code Playgroud)

任务失败,您会收到一个令人愤怒的错误:

使用反斜杠()来转义引号

即使这就是你所做的.

如果您尝试退回单引号以替换为print('text')的双引号,则会得到:

不允许删除答案占位符

现在 - 如果您在引号旁边移动光标[或插入符号],您将获得一个灯泡提示,为您提供以下选项:

将单引号字符串转换为双引号字符串

这是他们想要你做的......但是通过一些逻辑错误,它需要你输入的答案

print('The name of this ice-cream is \"Sweeet\'n\'Tasty\"')

并且它是:

print("The name of this ice-cream is \\")

并且答案框文本的边界全部被污染并包裹到上一行 - 它看起来像课程软件本身的一个错误.

所以

你必须从一开始就做的是使用你的光标获取lighbulb提示FIRST和"将单引号字符串转换为双引号字符串"

以便打印('文本')成为打印("文本")

^^^注意从单引号到双引号的变化^^^

然后输入你正确的印刷答案 ("这个冰淇淋的名字是\"Sweeet'n'Tasty \"")

这比我想象的要长得多,想出来.作为Python的编程初学者和全新的Python,这是一个巨大的障碍.如果我在讲师指导的课程中使用它,他们可能会说"哦,这是软件中的一个错误,你可以看到我们得到了正确的答案,让我们跳过它继续前进." 但是对于自学,我确信我不对,我忽视了一些基本的东西.砰的一声撞到砖墙上令人沮丧.反复.

我想这里可教的时刻是:有时教科书是错的,你必须理解并向自己证明为什么.