Python 中的简单代码中不使用逗号的“SyntaxError:无效语法”背后的原因

运行此代码时,我收到 SyntaxError:无效语法:


total = int(input("compra total: "))


if total  > 700000: totald = total - total*0.2

elif total > 300000: totald = total - total*0.15

elif total > 150000: totald = total -total*0.10

else: totald = total*1


print("Centro Comercial Unaleño\n" "Compra Más y Gasta Menos\n" "NIT: 899.999.063\n" "Total:$"+str(int(totald)) "En esta compra tu descuento fue $"+str(int(total-totald)))

我意识到错误不是在这里放置逗号或求和符号:


......"Total: $"+str(int**(totald)), "\nEn** esta compra tu descuento fue $"+str(int(total-totald)))

但我不明白必须放置这两个选项中任何一个的原因。为什么我不能像其他字符串一样放置一个空格,这两个符号的目的是什么?


谢谢您的帮助!!


繁星coding
浏览 126回答 3
3回答

慕容708150

total = int(input("compra total: "))if total  > 700000: totald = total - total*0.2elif total > 300000: totald = total - total*0.15elif total > 150000: totald = total -total*0.10else: totald = total*1print("Centro Comercial Unaleño\n" "Compra Más y Gasta Menos\n" "NIT: 899.999.063\n" "Total:$"+str(int(totald)) + "En esta compra tu descuento fue $"+str(int(total-totald)))当您在 print 语句中连接字符串时,您遗漏了一个 + 。

肥皂起泡泡

因为您依赖于字符串文字串联来获取由字符串分隔的文字。这仅适用于字符串文字。编译器无法将字符串连接到由空格分隔的任意表达式,只能连接到文字。>>> "foo" "bar"'foobar'>>> 'foo' frobnicate()  File "<stdin>", line 1    'foo' frobnicate()                   ^SyntaxError: invalid syntax这发生在编译时,>>> import dis>>> dis.dis("'foo' 'bar'")  1           0 LOAD_CONST               0 ('foobar')              2 RETURN_VALUE所以它不能依赖运行时结果。逗号之所以有效,是因为它只是成为 的另一个参数print。例如>>> print('hello')hello>>> print('hello', 'world')hello world

qq_花开花谢_0

我建议像这样设置文本格式:print("Centro Comercial Unaleño\r\nCompra Más y Gasta Menos\r\nNIT: 899.999.063\r\nTotal:${} En esta compra tu descuento fue ${}".format(totald, totald))
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python