关于#python#的问题,请各位专家解答!

刚开始学python,用的3.8版本,我想请教一下这是怎么出错,怎么解决,是版本分歧吗,我看书上演示都没有错误

img

img

该回答引用GPTᴼᴾᴱᴺᴬᴵ
图一,这段代码有几个问题:

  1. 行首的 "7››" 是什么意思?这应该是编辑器中的行号,不应该出现在代码中。
  2. 第一行的括号有问题,需要修改为:for magician in magicians:。
  3. 第二行的字符串中,有多余的空格。修改为:print(f"{magician.title()}, that was a great trick!")
  4. 第三行的代码没有对应的 if 语句,需要将其删除。
  5. 第四行的字符串中,有多余的空格。修改为:print(f"I can't wait to see your next trick, {magician.title()}. In")
  6. 第五行的代码有拼写错误,应该是 print 而不是 brint。

修改后的代码应该为:

for magician in magicians:
    print(f"{magician.title()}, that was a great trick!")
    print(f"I can't wait to see your next trick, {magician.title()}. In")
print("Thank you, everyone. That was a great magic show!")
print("Done")

图二,这个错误可能是因为您在格式化字符串时使用了非法的语法。具体来说,\magician 和 (magician. title ()} 都不是合法的字符串格式化语法。
您可以尝试修改代码,例如:

for magician in magicians:
    print(f"{magician.title()}, that was a great trick!")
    print(f"I can't wait to see your next trick, {magician.title()}.")
print("Thank you, everyone. That was a great magic show!")
print("Done")

这个代码中使用了字符串格式化语法来打印魔术师的名字和一些提示信息。同时,我也更正了打印函数名称中的拼写错误,将 brint 改为 print。

你这是在控制台Shell输入的命令,书上是在IDLE里输入的代码。两者环境不一样。
Shell里不同代码块的代码不能写在一起执行,print("Done")不属于for...else...代码块。
你可以把所有代码写在文本里,然后一起执行。