我正在使用Jetbrains的Pycharm学习Python。我无法通过这个问题:
使用一个字符串打印出这个文字“这个冰淇淋的名字是”Sweet'n'Tasty“
我的解决方案是:
print('The name of this ice-cream is \"Sweet\'n\'Tasty\"')
它显示正确的输出,但程序不接受是一个解决方案。
为什么不接受看似正确的答案,以及如何满足给定的要求?
答案 0 :(得分: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')
最后一行 print('text')中的文字将替换为您的答案。
这一课似乎想告诉你,你可以用单反语和带有反斜杠的双引号来逃避。请注意第二个打印实例上的双引号,以及第三个打印实例上的单引号[他们希望您键入答案]
如果您将打印('text')中的文字替换为:此冰淇淋的名称是“Sweeet'n'Tasty \ “
任务失败了:
文件 “/PycharmProjects/PythonIntroduction/lesson3/task8/character_escaping.py” 第4行 print('这个冰淇淋的名字是'Sweeet'n'Tasty \'') ^ SyntaxError:语法无效
所以如果你在单引号中添加斜杠[在此上下文中包含撇号] 打印('这个冰淇淋的名字是'Sweeet \'n''好吃\'')
即使文本 在下面的控制台中正确解析:
Don't worry about apostrophes
The name of this ice-cream is "Sweeet"
The name of this ice-cream is "Sweeet'n'Tasty"
任务失败,您会收到一个令人愤怒的错误:
使用反斜杠()来转义引号
即使这就是你所做的。
如果您尝试退回单引号以替换为 print('text')的双引号,则会得到:
不允许删除答案占位符
现在 - 如果您在引号旁边移动光标[或插入符号],您会得到一个灯泡提示,为您提供以下选项:
将单引号字符串转换为双引号字符串
这是他们希望你做的......但是通过一些逻辑错误,它需要你输入的
<强> print('The name of this ice-cream is \"Sweeet\'n\'Tasty\"')
强>
并将其发布到:
<强> print("The name of this ice-cream is \\")
强>
并且答案框文本的边界全部被搞砸并包裹到上一行 - 它看起来像是课程软件本身的错误。
SO
你必须从头开始做的是使用你的光标获取lighbulb提示FIRST和“将单引号字符串转换为双引号字符串”
以便打印('文字')变为打印(“文字”)
^^^注意从单引号到双引号的变化^^^
然后输入正确答案 打印(“这个冰淇淋的名字是”Sweeet'n'Tasty \“”)
这比我想要的时间长得多,弄清楚了。作为Python的编程初学者和全新的Python,这是一个巨大的障碍。如果我在讲师指导的课程中使用它,他们可能会说“哦,这是软件中的一个错误,你可以看到我们得到了正确的答案,让我们跳过它继续前进。”但是对于自学,我确信我不对,我忽视了一些基本的东西。砰的一声撞到砖墙上令人沮丧。反复。
我想这里受教的时刻是: 有时教科书是错误的,你必须理解&amp;为自己证明原因。
答案 1 :(得分:1)
如果你在外面使用单引号,你也可以尝试在python中使用,然后在String中允许使用双引号。
`print('The name of this ice-cream is "Sweet\'n\'Tasty"')`
另外,为了更多参考,您可以查看here
我希望有所帮助。